r38320 - trunk/gui/dialog/fileselect.c
Author: ib Date: Tue Oct 5 12:55:31 2021 New Revision: 38320 Log: Realize canceling the file sector dialog through an accelerator group. Let the accelerator group handle the escape key instead of handling the key press event ourselves. Accelerator groups are already used for this purpose in all other dialogs. This way, the escape key is now also recognized everywhere in the file selector dialog and not only in the file list. Modified: trunk/gui/dialog/fileselect.c Modified: trunk/gui/dialog/fileselect.c ============================================================================== --- trunk/gui/dialog/fileselect.c Tue Oct 5 12:51:40 2021 (r38319) +++ trunk/gui/dialog/fileselect.c Tue Oct 5 12:55:31 2021 (r38320) @@ -701,13 +701,6 @@ static gboolean fs_key_release_event(Gtk (void)user_data; switch (event->key.keyval) { - case GDK_Escape: - - if (GTK_IS_SCROLLED_WINDOW(widget)) - gtk_button_clicked(GTK_BUTTON(fsCancel)); - - break; - case GDK_Return: if (GTK_IS_SCROLLED_WINDOW(widget)) @@ -746,6 +739,7 @@ static void fs_Destroy(void) static GtkWidget *CreateFileSelect(void) { gint x, y; + GtkAccelGroup *accel_group; GtkWidget *vbox4; GtkWidget *hbox4; GtkWidget *vseparator1; @@ -756,6 +750,8 @@ static GtkWidget *CreateFileSelect(void) GtkWidget *upimage; GdkPixbuf *uppixbuf; + accel_group = gtk_accel_group_new(); + FileSelector = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_widget_set_usize(FileSelector, 512, 440); gtk_window_set_title(GTK_WINDOW(FileSelector), MSGTR_GUI_SelectFile); @@ -834,6 +830,8 @@ static GtkWidget *CreateFileSelect(void) fsOk = gtkAddButton(MSGTR_GUI_Ok, hbuttonbox3); fsCancel = gtkAddButton(MSGTR_GUI_Cancel, hbuttonbox3); + gtk_widget_add_accelerator(fsCancel, "clicked", accel_group, GDK_Escape, 0, GTK_ACCEL_VISIBLE); + gtk_signal_connect(GTK_OBJECT(FileSelector), "destroy", GTK_SIGNAL_FUNC(fs_Destroy), NULL); gtk_signal_connect(GTK_OBJECT(fsFNameListWindow), "key-release-event", GTK_SIGNAL_FUNC(fs_key_release_event), NULL); @@ -850,6 +848,8 @@ static GtkWidget *CreateFileSelect(void) gtk_signal_connect(GTK_OBJECT(fsFNameList), "select-row", (GtkSignalFunc)fs_fsFNameList_select_row, NULL); gtk_signal_connect(GTK_OBJECT(fsFNameList), "event", (GtkSignalFunc)fs_fsFNameList_event, NULL); + gtk_window_add_accel_group(GTK_WINDOW(FileSelector), accel_group); + return FileSelector; }
participants (1)
-
ib