From ccafefb483e10eb027f29690c66909d4bfc72828 Mon Sep 17 00:00:00 2001 From: Olivier Fourdan <fourdan.olivier@wanadoo.fr> Date: Mon, 12 Feb 2007 20:25:12 +0000 Subject: [PATCH] Add an option to show/hide shadows on dock-type windows (Old svn revision: 24964) --- defaults/defaults | 1 + mcs-plugin/wmtweaks_plugin.c | 9 +++++++++ src/compositor.c | 11 +++++++++-- src/settings.c | 14 ++++++++++++++ src/settings.h | 1 + themes/default/themerc | 8 ++++---- themes/largeprint/themerc | 8 ++++---- 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" @@ -575,6 +577,12 @@ create_dialog (McsPlugin * mcs_plugin) 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 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); @@ -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 -- GitLab