X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fswindow.C;h=5764aeae49875e09f8ad924cb86a2fbc951cd72a;hb=eecf057a9d6b8c8cffc7d0001bff89bc9cac7b05;hp=1d33f4b15224e166b8f3293a2c3e649391e8d55a;hpb=3ac8199743f244669cc87ceef9c3cd23710552f3;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/swindow.C b/cinelerra-5.1/cinelerra/swindow.C index 1d33f4b1..5764aeae 100644 --- a/cinelerra-5.1/cinelerra/swindow.C +++ b/cinelerra-5.1/cinelerra/swindow.C @@ -356,6 +356,7 @@ void SWindowGUI::set_script_pos(int64_t entry_no, int text_no) int SWindowGUI::load_selection(int pos, int row) { + if( pos < 0 || pos >= script.size() ) return 1; ScriptLines *texts = script[pos]; char *rp = texts->get_text_row(row); if( !rp || *rp == '=' || *rp == '*' || *rp=='\n' ) return 1; @@ -742,7 +743,7 @@ void ScriptEntry::set_text(char *text, int isz) int ScriptEntry::handle_event() { - if( sw_gui->get_button_down() && + if( ttext && sw_gui->get_button_down() && sw_gui->get_buttonpress() == 1 && sw_gui->get_triple_click() ) { int ibeam = get_ibeam_letter(), row = 0; @@ -794,6 +795,8 @@ void SWindowGUI::load_script() return; } load_script(fp); + script_text_no = -1; + load_selection(script_entry_no=0, 0); } void SWindowGUI::load_script(FILE *fp) @@ -815,7 +818,6 @@ void SWindowGUI::load_script(FILE *fp) script_scroll->update_length(script.size(), script_entry_no, hw, 0); script_position->update(script_entry_no); script_position->set_boundaries((int64_t)0, (int64_t)script.size()-1); - fclose(fp); } @@ -834,9 +836,11 @@ void SWindowGUI::save_spumux_data() for( Track *track=tracks->first; track; track=track->next ) { if( track->data_type != TRACK_SUBTITLE ) continue; if( !track->record ) continue; - char *cp = track_title; - for( char *bp=track->title; *bp; ++bp,++cp ) - *cp = !isalnum(*bp) ? '_' : *bp; + char *cp = track_title, *ep = cp+sizeof(track_title)-6; + for( const char *bp=track->title; cp