X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fguicast%2Fbctextbox.C;h=15ece1c5aef641ab0c92ce7cd9f160b1917dcedb;hb=cdeb29aeaca2be9141f4c1d82f3aa36fcb51ab12;hp=cecd249294da015d75bae7a3209d6ca782fc629a;hpb=155cea9e8f0f6a59f3e713230575603da305d47e;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/guicast/bctextbox.C b/cinelerra-5.1/guicast/bctextbox.C index cecd2492..15ece1c5 100644 --- a/cinelerra-5.1/guicast/bctextbox.C +++ b/cinelerra-5.1/guicast/bctextbox.C @@ -2085,11 +2085,8 @@ void BC_TextBox::select_word(int &letter1, int &letter2, int ibeam_letter) if( letter1 > wtext_len ) letter1 = wtext_len; if( letter2 > wtext_len ) letter2 = wtext_len; if( !wtext_len ) return; - - while( letter1 > 0 && iswalnum(wtext[letter1]) ) --letter1; - if( letter1 < wtext_len && iswspace(wtext[letter1]) ) ++letter1; - - while( letter2 < wtext_len && iswalnum(wtext[letter2]) ) ++letter2; + for( int i=letter1; i>=0 && iswalnum(wtext[i]); --i ) letter1 = i; + for( int i=letter2; i 0 && wtext[letter1] != '\n' ); - if( wtext[letter1] == '\n' ) letter1++; - -// Advance to next linefeed - do { - if( wtext[letter2] != '\n' ) letter2++; - } while( letter2 < wtext_len && wtext[letter2] != '\n' ); - if( letter2 < wtext_len && wtext[letter2] == '\n') letter2++; - - if(letter1 < 0) letter1 = 0; - if(letter2 < 0) letter2 = 0; - if(letter1 > wtext_len) letter1 = wtext_len; - if(letter2 > wtext_len) letter2 = wtext_len; + if( letter1 < 0 ) letter1 = 0; + if( letter2 < 0 ) letter2 = 0; + if( letter1 > wtext_len ) letter1 = wtext_len; + if( letter2 > wtext_len ) letter2 = wtext_len; + if( !wtext_len ) return; + for( int i=letter1; i>=0 && wtext[i]!='\n'; --i ) letter1 = i; + for( int i=letter2; itext->wset_selection(char1, char2, ibeam); } +int BC_ScrollTextBox::get_ibeam_letter() +{ + return this->text->get_ibeam_letter(); +} +