diff options
-rw-r--r-- | defaults/defaults | 1 | ||||
-rw-r--r-- | src/compositor.c | 8 | ||||
-rw-r--r-- | src/settings.c | 7 | ||||
-rw-r--r-- | src/settings.h | 1 |
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 *); |