summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS1
-rw-r--r--defaults/defaults1
-rw-r--r--src/compositor.c10
-rw-r--r--src/settings.c21
-rw-r--r--src/settings.h1
-rw-r--r--themes/default/themerc1
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