From d7fc04826d71dc810d5b72847b12fe2fd0a82161 Mon Sep 17 00:00:00 2001 From: Eric Koegel Date: Tue, 9 Dec 2014 19:25:41 +0300 Subject: [PATCH] Add a zoom_desktop xfconf setting (Bug #11367) This way the user can toggle the zooming feature at will. --- defaults/defaults | 1 + src/compositor.c | 8 ++++++++ src/settings.c | 7 +++++++ src/settings.h | 1 + 4 files changed, 17 insertions(+) diff --git a/defaults/defaults b/defaults/defaults index 78c15a5..5f05833 100644 --- a/defaults/defaults +++ b/defaults/defaults @@ -70,4 +70,5 @@ wrap_layout=true wrap_resistance=10 wrap_windows=true wrap_workspaces=false +zoom_desktop=true diff --git a/src/compositor.c b/src/compositor.c index 1bf3322..59d72e9 100644 --- a/src/compositor.c +++ b/src/compositor.c @@ -3041,6 +3041,10 @@ void compositorZoomIn (ScreenInfo *screen_info, XButtonEvent *ev) { #ifdef HAVE_COMPOSITOR + /* don't do anything if the user disabled the zoom feature */ + if (!screen_info->params->zoom_desktop) + return; + screen_info->transform.matrix[0][0] -= 4096; screen_info->transform.matrix[1][1] -= 4096; @@ -3072,6 +3076,10 @@ void compositorZoomOut (ScreenInfo *screen_info, XButtonEvent *ev) { #ifdef HAVE_COMPOSITOR + /* don't do anything if the user disabled the zoom feature */ + if (!screen_info->params->zoom_desktop) + return; + if(screen_info->zoomed) { screen_info->transform.matrix[0][0] += 4096; diff --git a/src/settings.c b/src/settings.c index 5622ba7..f9aebb0 100644 --- a/src/settings.c +++ b/src/settings.c @@ -741,6 +741,7 @@ loadSettings (ScreenInfo *screen_info) {"wrap_resistance", NULL, G_TYPE_INT, TRUE}, {"wrap_windows", NULL, G_TYPE_BOOLEAN, TRUE}, {"wrap_workspaces", NULL, G_TYPE_BOOLEAN, TRUE}, + {"zoom_desktop", NULL, G_TYPE_BOOLEAN, TRUE}, {NULL, NULL, G_TYPE_INVALID, FALSE} }; @@ -839,6 +840,8 @@ loadSettings (ScreenInfo *screen_info) getBoolValue ("use_compositing", rc); screen_info->params->wrap_workspaces = getBoolValue ("wrap_workspaces", rc); + screen_info->params->zoom_desktop = + getBoolValue ("zoom_desktop", rc); screen_info->params->wrap_layout = getBoolValue ("wrap_layout", rc); @@ -1262,6 +1265,10 @@ cb_xfwm4_channel_property_changed(XfconfChannel *channel, const gchar *property_ screen_info->params->wrap_workspaces = g_value_get_boolean (value); placeSidewalks (screen_info, screen_info->params->wrap_workspaces); } + else if (!strcmp (name, "zoom_desktop")) + { + screen_info->params->zoom_desktop = g_value_get_boolean (value); + } else if (!strcmp (name, "wrap_windows")) { screen_info->params->wrap_windows = g_value_get_boolean (value); diff --git a/src/settings.h b/src/settings.h index a5038c8..e480332 100644 --- a/src/settings.h +++ b/src/settings.h @@ -236,6 +236,7 @@ struct _XfwmParams gboolean wrap_layout; gboolean wrap_windows; gboolean wrap_workspaces; + gboolean zoom_desktop; }; gboolean loadSettings (ScreenInfo *); -- 2.2.0