diff --git a/metadata/rotate.xml.in b/metadata/rotate.xml.in
index 83e4f03..4618795 100644
--- a/metadata/rotate.xml.in
+++ b/metadata/rotate.xml.in
@@ -269,6 +269,11 @@
2.0
0.1
+
diff --git a/plugins/rotate.c b/plugins/rotate.c
index 396f98e..e723b8a 100644
--- a/plugins/rotate.c
+++ b/plugins/rotate.c
@@ -95,7 +95,8 @@ typedef struct _RotateDisplay {
#define ROTATE_SCREEN_OPTION_SPEED 4
#define ROTATE_SCREEN_OPTION_TIMESTEP 5
#define ROTATE_SCREEN_OPTION_ZOOM 6
-#define ROTATE_SCREEN_OPTION_NUM 7
+#define ROTATE_SCREEN_OPTION_ZOOM_MANUAL_ONLY 7
+#define ROTATE_SCREEN_OPTION_NUM 8
typedef struct _RotateScreen {
PreparePaintScreenProc preparePaintScreen;
@@ -411,7 +412,8 @@ rotatePreparePaintScreen (CompScreen *s,
}
}
- if (rs->moving && cs->invert == 1 && !cs->unfolded)
+ if (rs->moving && cs->invert == 1 && !cs->unfolded &&
+ !rs->opt[ROTATE_SCREEN_OPTION_ZOOM_MANUAL_ONLY].value.b)
{
if (fabs(rs->xrot + rs->baseXrot + rs->moveTo) <=
(360.0 / (s->hsize * 2.0)))
@@ -1752,7 +1754,8 @@ static const CompMetadataOptionInfo rotateScreenOptionInfo[] = {
{ "snap_top", "bool", 0, 0, 0 },
{ "speed", "float", "0.1", 0, 0 },
{ "timestep", "float", "0.1", 0, 0 },
- { "zoom", "float", 0, 0, 0 }
+ { "zoom", "float", 0, 0, 0 },
+ { "zoom_manual_only", "bool", 0, 0, 0 }
};
static Bool