summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mate-panel/panel-run-dialog.c42
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