From 77059fb092a44f1a9c8c5c5e888899028458ff10 Mon Sep 17 00:00:00 2001 From: Stefano Karapetsas Date: Thu, 2 May 2013 17:25:48 +0200 Subject: Allow to set panel orientation only for expanded panels Also fix initial position of non-expanded panels --- mate-panel/panel-properties-dialog.c | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) (limited to 'mate-panel/panel-properties-dialog.c') diff --git a/mate-panel/panel-properties-dialog.c b/mate-panel/panel-properties-dialog.c index 6c0f7a24..596ab062 100644 --- a/mate-panel/panel-properties-dialog.c +++ b/mate-panel/panel-properties-dialog.c @@ -144,6 +144,24 @@ panel_properties_dialog_orientation_changed (PanelPropertiesDialog *dialog, item->orientation); } +static void +panel_properties_dialog_setup_orientation_combo_sensitivty (PanelPropertiesDialog *dialog, GtkToggleButton *n) +{ + gboolean expand; + expand = panel_profile_get_toplevel_expand (dialog->toplevel); + + if (! panel_profile_key_is_writable (dialog->toplevel, PANEL_TOPLEVEL_ORIENTATION_KEY)) { + gtk_widget_set_sensitive (dialog->orientation_combo, FALSE); + gtk_widget_set_sensitive (dialog->orientation_label, FALSE); + gtk_widget_show (dialog->writability_warn_general); + } + else { + /* enable orientation only for non-expanded panels */ + gtk_widget_set_sensitive (dialog->orientation_combo, expand); + gtk_widget_set_sensitive (dialog->orientation_label, expand); + } +} + static void panel_properties_dialog_setup_orientation_combo (PanelPropertiesDialog *dialog, GtkBuilder *gui) @@ -189,11 +207,7 @@ panel_properties_dialog_setup_orientation_combo (PanelPropertiesDialog *dialog, G_CALLBACK (panel_properties_dialog_orientation_changed), dialog); - if (! panel_profile_key_is_writable (dialog->toplevel, PANEL_TOPLEVEL_ORIENTATION_KEY)) { - gtk_widget_set_sensitive (dialog->orientation_combo, FALSE); - gtk_widget_set_sensitive (dialog->orientation_label, FALSE); - gtk_widget_show (dialog->writability_warn_general); - } + panel_properties_dialog_setup_orientation_combo_sensitivty (dialog, NULL); } static void @@ -868,6 +882,9 @@ panel_properties_dialog_new (PanelToplevel *toplevel, panel_properties_dialog_setup_hidebuttons_toggle (dialog, gui); panel_properties_dialog_setup_arrows_toggle (dialog, gui); + g_signal_connect_swapped (dialog->expand_toggle, "toggled", + G_CALLBACK (panel_properties_dialog_setup_orientation_combo_sensitivty), dialog); + panel_properties_update_arrows_toggle_visible ( dialog, GTK_TOGGLE_BUTTON (dialog->hidebuttons_toggle)); g_signal_connect_swapped (dialog->hidebuttons_toggle, "toggled", -- cgit v1.2.1