diff options
Diffstat (limited to 'mate-panel/panel-properties-dialog.c')
-rw-r--r-- | mate-panel/panel-properties-dialog.c | 38 |
1 files changed, 18 insertions, 20 deletions
diff --git a/mate-panel/panel-properties-dialog.c b/mate-panel/panel-properties-dialog.c index e9216bec..0475bc72 100644 --- a/mate-panel/panel-properties-dialog.c +++ b/mate-panel/panel-properties-dialog.c @@ -349,8 +349,11 @@ panel_properties_dialog_setup_color_button (PanelPropertiesDialog *dialog, panel_profile_get_background_color (dialog->toplevel, &color); + if (!gdk_screen_is_composited (gdk_screen_get_default ())) + color.alpha = 1.0; + gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (dialog->color_button), - &color); + &color); g_signal_connect_swapped (dialog->color_button, "color_set", G_CALLBACK (panel_properties_dialog_color_changed), @@ -416,7 +419,6 @@ static void panel_properties_dialog_opacity_changed (PanelPropertiesDialog *dialog) { gdouble percentage; - guint16 opacity; percentage = gtk_range_get_value (GTK_RANGE (dialog->opacity_scale)); @@ -425,16 +427,14 @@ panel_properties_dialog_opacity_changed (PanelPropertiesDialog *dialog) else if (percentage <= 2) percentage = 0; - opacity = (percentage / 100) * 65535; - - panel_profile_set_background_opacity (dialog->toplevel, opacity); + panel_profile_set_background_opacity (dialog->toplevel, percentage); } static void panel_properties_dialog_setup_opacity_scale (PanelPropertiesDialog *dialog, GtkBuilder *gui) { - guint16 opacity; + gboolean slider_active; gdouble percentage; dialog->opacity_scale = PANEL_GTK_BUILDER_GET (gui, "opacity_scale"); @@ -444,32 +444,30 @@ panel_properties_dialog_setup_opacity_scale (PanelPropertiesDialog *dialog, dialog->opacity_legend = PANEL_GTK_BUILDER_GET (gui, "opacity_legend"); g_return_if_fail (dialog->opacity_legend != NULL); - opacity = panel_profile_get_background_opacity (dialog->toplevel); + slider_active = gdk_screen_is_composited (gdk_screen_get_default ()); - percentage = (opacity * 100.0) / 65535; + if (slider_active) { + percentage = panel_profile_get_background_opacity (dialog->toplevel); + } else { + percentage = 100.0; + } gtk_range_set_value (GTK_RANGE (dialog->opacity_scale), percentage); - g_signal_connect_swapped (dialog->opacity_scale, "value_changed", - G_CALLBACK (panel_properties_dialog_opacity_changed), - dialog); - - gboolean slider_active = TRUE; - - if ( ! gdk_screen_is_composited(gdk_screen_get_default())) { - slider_active = FALSE; - } - - if ( ! panel_profile_background_key_is_writable (dialog->toplevel, "opacity")) { + if (!panel_profile_background_key_is_writable (dialog->toplevel, "opacity")) { slider_active = FALSE; gtk_widget_show (dialog->writability_warn_background); } - if ( ! slider_active) { + if (!slider_active) { gtk_widget_set_sensitive (dialog->opacity_scale, FALSE); gtk_widget_set_sensitive (dialog->opacity_label, FALSE); gtk_widget_set_sensitive (dialog->opacity_legend, FALSE); } + + g_signal_connect_swapped (dialog->opacity_scale, "value_changed", + G_CALLBACK (panel_properties_dialog_opacity_changed), + dialog); } static void |