summaryrefslogtreecommitdiff
path: root/mate-panel/panel-properties-dialog.c
diff options
context:
space:
mode:
Diffstat (limited to 'mate-panel/panel-properties-dialog.c')
-rw-r--r--mate-panel/panel-properties-dialog.c38
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