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 | 
