diff options
-rw-r--r-- | mate-panel/panel-run-dialog.c | 42 |
1 files changed, 35 insertions, 7 deletions
diff --git a/mate-panel/panel-run-dialog.c b/mate-panel/panel-run-dialog.c index 6e45a272..0cc31018 100644 --- a/mate-panel/panel-run-dialog.c +++ b/mate-panel/panel-run-dialog.c @@ -1115,6 +1115,7 @@ static void panel_run_dialog_update_content (PanelRunDialog *dialog, gboolean show_list) { + if (!panel_profile_get_enable_program_list ()) { GtkWidget *parent; @@ -1126,15 +1127,42 @@ panel_run_dialog_update_content (PanelRunDialog *dialog, gtk_window_set_resizable (GTK_WINDOW (dialog->run_dialog), FALSE); gtk_widget_grab_focus (dialog->combobox); - } else if (show_list) { - gtk_window_resize (GTK_WINDOW (dialog->run_dialog), 100, 300); - gtk_window_set_resizable (GTK_WINDOW (dialog->run_dialog), TRUE); - gtk_widget_grab_focus (dialog->program_list); + } else { - } else if (!show_list) { - gtk_window_set_resizable (GTK_WINDOW (dialog->run_dialog), FALSE); - gtk_widget_grab_focus (dialog->combobox); + /* the following two conditions occur, when the user clicks the expander in the dialog + * if the list is closed and the user wants to see it */ + if (show_list && gtk_expander_get_expanded (GTK_EXPANDER (dialog->list_expander))) { + + /* open the expander, this shows the list */ + gtk_expander_set_expanded (GTK_EXPANDER (dialog->list_expander), TRUE); + + gtk_window_resize (GTK_WINDOW (dialog->run_dialog), 100, 300); + gtk_window_set_resizable (GTK_WINDOW (dialog->run_dialog), TRUE); + gtk_widget_grab_focus (dialog->program_list); + + /* if the list is open and the user wants to close it */ + } else if (!show_list && !gtk_expander_get_expanded (GTK_EXPANDER (dialog->list_expander))) { + + /* close the expander, this hides the list */ + gtk_expander_set_expanded (GTK_EXPANDER (dialog->list_expander), FALSE); + + gtk_window_set_resizable (GTK_WINDOW (dialog->run_dialog), FALSE); + gtk_widget_grab_focus (dialog->combobox); + } + + /* the following two conditions occur, when the user changes the expander setting in GSettings */ + if (show_list && !gtk_expander_get_expanded (GTK_EXPANDER (dialog->list_expander))) { + + /* open the expander, this shows the list */ + gtk_expander_set_expanded (GTK_EXPANDER (dialog->list_expander), TRUE); + + /* if the list is open and the user wants to close it */ + } else if (!show_list && gtk_expander_get_expanded (GTK_EXPANDER (dialog->list_expander))) { + + /* close the expander, this hides the list */ + gtk_expander_set_expanded (GTK_EXPANDER (dialog->list_expander), FALSE); } + } } static void |