# HG changeset patch # User ib # Date 1324398878 0 # Node ID b02b6ad1b7fb2eb598e94ae73dbc284b344b539e # Parent 995cbc4b5884259e13dbe50dfe38fc7f9b6d3eb4 Remember the lastly selected file in file selector. Don't move the focus / selection from that file. diff -r 995cbc4b5884 -r b02b6ad1b7fb gui/ui/gtk/fileselect.c --- a/gui/ui/gtk/fileselect.c Tue Dec 20 00:11:26 2011 +0000 +++ b/gui/ui/gtk/fileselect.c Tue Dec 20 16:34:38 2011 +0000 @@ -59,6 +59,8 @@ int fsType = 0; +static gint fsCurrFNameListSelected, fsLastFNameListSelected; + char * fsVideoFilterNames[][2] = { { "ASF files (*.asf)", "*.asf" }, @@ -243,7 +245,6 @@ globfree( &gg ); gtk_clist_set_column_width( GTK_CLIST( list ),0,17 ); - gtk_clist_select_row( GTK_CLIST( list ),0,1 ); gtk_widget_show( list ); } @@ -359,6 +360,9 @@ gtk_combo_set_popdown_strings( GTK_COMBO( fsCombo4 ),fsTopList_items ); gtk_widget_grab_focus( fsFNameList ); + ((GtkCList *)fsFNameList)->focus_row = fsLastFNameListSelected; + gtk_clist_select_row( GTK_CLIST( fsFNameList ),fsLastFNameListSelected,1 ); + fsLastFNameListSelected = 0; gtk_window_set_modal( GTK_WINDOW( fsFileSelect ),modal ); @@ -371,6 +375,7 @@ gtk_widget_hide( fsFileSelect ); gtk_widget_destroy( fsFileSelect ); fsFileSelect=NULL; + fsLastFNameListSelected = fsCurrFNameListSelected; } static void fs_PersistantHistory( char * subject ) @@ -484,6 +489,7 @@ fsSelectedFile=fsThatDir; CheckDir( fsFNameList ); gtk_entry_set_text( GTK_ENTRY( fsPathCombo ),(unsigned char *)get_current_dir_name_utf8() ); + gtk_widget_grab_focus( fsFNameList ); return; } @@ -534,6 +540,7 @@ static void fs_fsFNameList_select_row( GtkWidget * widget, gint row, gint column, GdkEventButton *bevent, gpointer user_data) { + fsCurrFNameListSelected = row; gtk_clist_get_text( GTK_CLIST(widget ),row,1,&fsSelectedFile ); g_free( fsSelectedFileUtf8 ); fsSelectedFileUtf8 = g_filename_from_utf8( fsSelectedFile, -1, NULL, NULL, NULL ); @@ -558,7 +565,6 @@ break; case GDK_Return: gtk_button_released( GTK_BUTTON( fsOk ) ); - gtk_widget_grab_focus( fsFNameList ); break; case GDK_BackSpace: gtk_button_released( GTK_BUTTON( fsUp ) );