summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--defaults/defaults1
-rw-r--r--mcs-plugin/wmtweaks_plugin.c9
-rw-r--r--src/compositor.c11
-rw-r--r--src/settings.c14
-rw-r--r--src/settings.h1
-rw-r--r--themes/default/themerc8
-rw-r--r--themes/largeprint/themerc8
7 files changed, 42 insertions, 10 deletions
diff --git a/defaults/defaults b/defaults/defaults
index 3fa8e662c..6fa5ed70c 100644
--- a/defaults/defaults
+++ b/defaults/defaults
@@ -34,6 +34,7 @@ shadow_delta_width=0
shadow_delta_x=0
shadow_delta_y=0
show_app_icon=false
+show_dock_shadow=true
show_frame_shadow=false
show_popup_shadow=false
snap_resist=false
diff --git a/mcs-plugin/wmtweaks_plugin.c b/mcs-plugin/wmtweaks_plugin.c
index 214301ad5..2f6bfe63d 100644
--- a/mcs-plugin/wmtweaks_plugin.c
+++ b/mcs-plugin/wmtweaks_plugin.c
@@ -60,6 +60,7 @@ static gboolean cycle_minimum = TRUE;
static gboolean cycle_hidden = TRUE;
static gboolean cycle_workspaces = FALSE;
static gboolean focus_hint = TRUE;
+static gboolean show_dock_shadow = FALSE;
static gboolean show_frame_shadow = FALSE;
static gboolean show_popup_shadow = FALSE;
static gboolean prevent_focus_stealing = FALSE;
@@ -99,6 +100,7 @@ static char *easy_click = "Alt";
"Xfwm/RestoreOnMove"
"Xfwm/ScrollWorkspaces"
"Xfwm/ScrollWorkspaces"
+ "Xfwm/ShowDockShadow"
"Xfwm/ShowFrameShadow"
"Xfwm/ShowPopupShadow"
"Xfwm/SnapResist"
@@ -576,6 +578,12 @@ create_dialog (McsPlugin * mcs_plugin)
gtk_widget_show (check_button);
check_button =
+ create_gboolean_button (mcs_plugin, _("Show shadows under dock windows"),
+ "Xfwm/ShowDockShadow", &show_dock_shadow);
+ gtk_box_pack_start (GTK_BOX (compositor_options_vbox), check_button, FALSE, TRUE, 0);
+ gtk_widget_show (check_button);
+
+ check_button =
create_gboolean_button (mcs_plugin, _("Show shadows under regular windows"),
"Xfwm/ShowFrameShadow", &show_frame_shadow);
gtk_box_pack_start (GTK_BOX (compositor_options_vbox), check_button, FALSE, TRUE, 0);
@@ -744,6 +752,7 @@ xfwm4_create_channel (McsPlugin * mcs_plugin)
init_gboolean_setting (mcs_plugin, "Xfwm/CycleHidden", &cycle_hidden);
init_gboolean_setting (mcs_plugin, "Xfwm/CycleWorkspaces", &cycle_workspaces);
init_gboolean_setting (mcs_plugin, "Xfwm/FocusHint", &focus_hint);
+ init_gboolean_setting (mcs_plugin, "Xfwm/ShowDockShadow", &show_dock_shadow);
init_gboolean_setting (mcs_plugin, "Xfwm/ShowFrameShadow", &show_frame_shadow);
init_gboolean_setting (mcs_plugin, "Xfwm/ShowPopupShadow", &show_popup_shadow);
init_gboolean_setting (mcs_plugin, "Xfwm/PreventFocusStealing", &prevent_focus_stealing);
diff --git a/src/compositor.c b/src/compositor.c
index 7a50abff9..adb46a53a 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -69,7 +69,8 @@
!FLAG_TEST (cw->c->flags, CLIENT_FLAG_FULLSCREEN))
#define WIN_NO_SHADOW(cw) ((cw->c) && \
(FLAG_TEST (cw->c->flags, CLIENT_FLAG_FULLSCREEN | CLIENT_FLAG_BELOW) || \
- (cw->c->type & (WINDOW_DOCK | WINDOW_DESKTOP))))
+ (cw->c->type & WINDOW_DESKTOP)))
+#define WIN_IS_DOCK(cw) (WIN_HAS_CLIENT(cw) && (cw->c->type & WINDOW_DOCK))
#define WIN_IS_OVERRIDE(cw) (cw->attr.override_redirect)
#define WIN_IS_ARGB(cw) (cw->argb)
#define WIN_IS_OPAQUE(cw) (((cw->opacity == NET_WM_OPAQUE) && !WIN_IS_ARGB(cw)) || (cw->screen_info->overlays))
@@ -933,7 +934,13 @@ win_extents (CWindow *cw)
(screen_info->params->show_frame_shadow &&
!WIN_IS_OVERRIDE(cw) &&
!WIN_NO_SHADOW(cw) &&
- (WIN_HAS_FRAME(cw) || !(WIN_IS_ARGB(cw) || WIN_IS_SHAPED(cw))))))
+ !WIN_IS_DOCK(cw) &&
+ (WIN_HAS_FRAME(cw) || !(WIN_IS_ARGB(cw) || WIN_IS_SHAPED(cw)))) ||
+ (screen_info->params->show_dock_shadow &&
+ WIN_IS_DOCK(cw) &&
+ !WIN_NO_SHADOW(cw) &&
+ !WIN_IS_OVERRIDE(cw) &&
+ (!(WIN_IS_ARGB(cw) || WIN_IS_SHAPED(cw))))))
{
XRectangle sr;
diff --git a/src/settings.c b/src/settings.c
index 654803c9c..aa273ef54 100644
--- a/src/settings.c
+++ b/src/settings.c
@@ -408,6 +408,11 @@ notify_cb (const char *name, const char *channel_name, McsAction action, McsSett
{
screen_info->params->placement_ratio = setting->data.v_int;
}
+ else if (!strcmp (name, "Xfwm/ShowDockShadow"))
+ {
+ screen_info->params->show_dock_shadow = setting->data.v_int;
+ reloadScreenSettings (screen_info, UPDATE_FRAME);
+ }
else if (!strcmp (name, "Xfwm/ShowFrameShadow"))
{
screen_info->params->show_frame_shadow = setting->data.v_int;
@@ -795,6 +800,12 @@ loadMcsData (ScreenInfo *screen_info, Settings *rc)
setIntValueFromInt ("popup_opacity", setting->data.v_int, rc);
mcs_setting_free (setting);
}
+ if (mcs_client_get_setting (screen_info->mcs_client, "Xfwm/ShowDockShadow", CHANNEL5,
+ &setting) == MCS_SUCCESS)
+ {
+ setBooleanValueFromInt ("show_dock_shadow", setting->data.v_int, rc);
+ mcs_setting_free (setting);
+ }
if (mcs_client_get_setting (screen_info->mcs_client, "Xfwm/ShowFrameShadow", CHANNEL5,
&setting) == MCS_SUCCESS)
{
@@ -1330,6 +1341,7 @@ loadSettings (ScreenInfo *screen_info)
{"shadow_delta_x", NULL, TRUE},
{"shadow_delta_y", NULL, TRUE},
{"show_app_icon", NULL, TRUE},
+ {"show_dock_shadow", NULL, TRUE},
{"show_frame_shadow", NULL, TRUE},
{"show_popup_shadow", NULL, TRUE},
{"snap_resist", NULL, TRUE},
@@ -1473,6 +1485,8 @@ loadSettings (ScreenInfo *screen_info)
abs (TOINT (getValue ("placement_ratio", rc)));
screen_info->params->show_app_icon =
!g_ascii_strcasecmp ("true", getValue ("show_app_icon", rc));
+ screen_info->params->show_dock_shadow =
+ !g_ascii_strcasecmp ("true", getValue ("show_dock_shadow", rc));
screen_info->params->show_frame_shadow =
!g_ascii_strcasecmp ("true", getValue ("show_frame_shadow", rc));
screen_info->params->show_popup_shadow =
diff --git a/src/settings.h b/src/settings.h
index fbfb67dc5..5ea15296a 100644
--- a/src/settings.h
+++ b/src/settings.h
@@ -210,6 +210,7 @@ struct _XfwmParams
gboolean raise_with_any_button;
gboolean scroll_workspaces;
gboolean show_app_icon;
+ gboolean show_dock_shadow;
gboolean show_frame_shadow;
gboolean show_popup_shadow;
gboolean snap_to_border;
diff --git a/themes/default/themerc b/themes/default/themerc
index ad6ed398c..054ee6d9a 100644
--- a/themes/default/themerc
+++ b/themes/default/themerc
@@ -3,10 +3,10 @@ button_offset=-1
button_spacing=0
full_width_title=false
maximized_offset=0
-shadow_delta_height=-2
-shadow_delta_width=-2
-shadow_delta_x=-2
-shadow_delta_y=-2
+shadow_delta_height=2
+shadow_delta_width=0
+shadow_delta_x=0
+shadow_delta_y=0
show_app_icon=true
title_horizontal_offset=1
title_shadow_active=frame
diff --git a/themes/largeprint/themerc b/themes/largeprint/themerc
index ad6ed398c..9cd678d75 100644
--- a/themes/largeprint/themerc
+++ b/themes/largeprint/themerc
@@ -3,10 +3,10 @@ button_offset=-1
button_spacing=0
full_width_title=false
maximized_offset=0
-shadow_delta_height=-2
-shadow_delta_width=-2
-shadow_delta_x=-2
-shadow_delta_y=-2
+shadow_delta_height=4
+shadow_delta_width=1
+shadow_delta_x=1
+shadow_delta_y=1
show_app_icon=true
title_horizontal_offset=1
title_shadow_active=frame