summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--defaults/defaults1
-rw-r--r--src/compositor.c8
-rw-r--r--src/settings.c7
-rw-r--r--src/settings.h1
4 files changed, 17 insertions, 0 deletions
diff --git a/defaults/defaults b/defaults/defaults
index 78c15a514..5f0583307 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 1bf332211..59d72e94a 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 1eb98da8d..37cbcff17 100644
--- a/src/settings.c
+++ b/src/settings.c
@@ -745,6 +745,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}
};
@@ -843,6 +844,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);
@@ -1266,6 +1269,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 a5038c8a1..e480332ef 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 *);