From 48dd8293d1225c2f9b2dccdedd0d8f22014d3a68 Mon Sep 17 00:00:00 2001 From: Olivier Fourdan <fourdan.olivier@wanadoo.fr> Date: Mon, 6 Oct 2008 19:48:39 +0000 Subject: [PATCH] Make shadow opacity configurable (bug #4447) (Old svn revision: 28059) --- NEWS | 1 + defaults/defaults | 1 + src/compositor.c | 10 +++------- src/settings.c | 21 ++++++++++----------- src/settings.h | 1 + themes/default/themerc | 1 + 6 files changed, 17 insertions(+), 18 deletions(-) diff --git a/NEWS b/NEWS index d049215e3..3c20163d9 100644 --- a/NEWS +++ b/NEWS @@ -36,6 +36,7 @@ frames at once. - Use timeout for frame redraw, check actual WM name changes to work around apps that falsely update their WM name property (Bug #2810). +- Make shadow opacity configurable (bug #4447). - Uodate Hungarian translation - Update Catalan translation - Update Italian translation diff --git a/defaults/defaults b/defaults/defaults index 182ab9cac..586813fec 100644 --- a/defaults/defaults +++ b/defaults/defaults @@ -37,6 +37,7 @@ shadow_delta_height=0 shadow_delta_width=0 shadow_delta_x=0 shadow_delta_y=0 +shadow_opacity=66 show_app_icon=false show_dock_shadow=true show_frame_shadow=false diff --git a/src/compositor.c b/src/compositor.c index 0c3339b43..edf55d389 100644 --- a/src/compositor.c +++ b/src/compositor.c @@ -53,10 +53,6 @@ #define SHADOW_RADIUS 6 #endif /* SHADOW_RADIUS */ -#ifndef SHADOW_OPACITY -#define SHADOW_OPACITY 0.66 -#endif /* SHADOW_OPACITY */ - #ifndef SHADOW_OFFSET_X #define SHADOW_OFFSET_X (SHADOW_RADIUS * -3 /2) #endif /* SHADOW_OFFSET_X */ @@ -955,9 +951,9 @@ win_extents (CWindow *cw) { double shadow_opacity; shadow_opacity = (double) screen_info->params->frame_opacity - * SHADOW_OPACITY - * cw->opacity - / (NET_WM_OPAQUE * 100.0); + * (screen_info->params->shadow_opacity / 100.0) + * cw->opacity + / (NET_WM_OPAQUE * 100.0); cw->shadow = shadow_picture (screen_info, shadow_opacity, cw->attr.width + 2 * cw->attr.border_width, diff --git a/src/settings.c b/src/settings.c index 58997774a..bacaf3c37 100644 --- a/src/settings.c +++ b/src/settings.c @@ -699,6 +699,7 @@ loadSettings (ScreenInfo *screen_info) {"shadow_delta_width", NULL, G_TYPE_INT, TRUE}, {"shadow_delta_x", NULL, G_TYPE_INT, TRUE}, {"shadow_delta_y", NULL, G_TYPE_INT, TRUE}, + {"shadow_opacity", NULL, G_TYPE_INT, TRUE}, {"show_app_icon", NULL, G_TYPE_BOOLEAN, TRUE}, {"show_dock_shadow", NULL, G_TYPE_BOOLEAN, TRUE}, {"show_frame_shadow", NULL, G_TYPE_BOOLEAN, TRUE}, @@ -841,17 +842,19 @@ loadSettings (ScreenInfo *screen_info) screen_info->params->restore_on_move = getBoolValue ("restore_on_move", rc); screen_info->params->frame_opacity = - getIntValue ("frame_opacity", rc); + CLAMP (getIntValue ("frame_opacity", rc), 0, 100); screen_info->params->inactive_opacity = - getIntValue ("inactive_opacity", rc); + CLAMP (getIntValue ("inactive_opacity", rc), 0, 100); screen_info->params->move_opacity = - getIntValue ("move_opacity", rc); + CLAMP (getIntValue ("move_opacity", rc), 0, 100); screen_info->params->resize_opacity = - getIntValue ("resize_opacity", rc); + CLAMP (getIntValue ("resize_opacity", rc), 0, 100); screen_info->params->popup_opacity = - getIntValue ("popup_opacity", rc); + CLAMP (getIntValue ("popup_opacity", rc), 0, 100); screen_info->params->placement_ratio = - getIntValue ("placement_ratio", rc); + CLAMP (getIntValue ("placement_ratio", rc), 0, 100); + screen_info->params->shadow_opacity = + CLAMP (getIntValue ("shadow_opacity", rc), 0, 100); screen_info->params->show_app_icon = getBoolValue ("show_app_icon", rc); screen_info->params->show_dock_shadow = @@ -907,11 +910,7 @@ loadSettings (ScreenInfo *screen_info) if (screen_info->workspace_count < 0) { gint workspace_count; - workspace_count = getIntValue ("workspace_count", rc); - if (workspace_count < 0) - { - workspace_count = 0; - } + workspace_count = MAX (getIntValue ("workspace_count", rc), 0); workspaceSetCount (screen_info, workspace_count); } diff --git a/src/settings.h b/src/settings.h index 8e9d17108..5e68eba78 100644 --- a/src/settings.h +++ b/src/settings.h @@ -183,6 +183,7 @@ struct _XfwmParams int shadow_delta_width; int shadow_delta_x; int shadow_delta_y; + int shadow_opacity; int snap_width; int title_alignment; int title_horizontal_offset; diff --git a/themes/default/themerc b/themes/default/themerc index e2efe0571..3cd9d6fc6 100644 --- a/themes/default/themerc +++ b/themes/default/themerc @@ -7,6 +7,7 @@ shadow_delta_height=4 shadow_delta_width=1 shadow_delta_x=1 shadow_delta_y=1 +shadow_opacity=90 show_app_icon=true title_horizontal_offset=1 title_shadow_active=frame -- GitLab