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