--- ../beryl/beryl-plugins/src/rotate.c 2006-12-06 05:42:51.000000000 -0700 +++ beryl-plugins/src/rotate.c 2006-12-06 06:25:18.000000000 -0700 @@ -971,6 +971,11 @@ xid = getIntOptionNamed(option, nOption, "root", 0); s = findScreenAtDisplay(d, xid); + + Bool zoom = IPCS_GetBoolND (IPCS_OBJECT (s), "ZOOM_IS_ACTIVE", FALSE); + if (state & CompActionStateInitButton && zoom) + return FALSE; + if (s) { ROTATE_SCREEN(s); --- ../beryl/beryl-plugins/src/inputzoom.c 2006-12-06 05:42:51.000000000 -0700 +++ beryl-plugins/src/inputzoom.c 2006-12-06 06:23:15.000000000 -0700 @@ -131,6 +131,8 @@ Bool showScaled; Bool hideNormal; + int ipcs_active_atom; + float maxTranslate; } ZoomScreen; @@ -642,9 +644,13 @@ xid = getIntOptionNamed(option, nOption, "root", 0); s = findScreenAtDisplay(d, xid); + if (s) { ZOOM_SCREEN(s); + if (screenGrabExist(s, "cube", "rotate", 0)) + return FALSE; + zs->active = TRUE; if (zd->fixesSupported && !zs->cursorInfoSelected @@ -665,6 +671,12 @@ if (zs->newScale > zs->maxScale) zs->newScale = zs->maxScale; + if(zs->newScale != 1.0) + IPCS_SetBool (IPCS_OBJECT (s), zs->ipcs_active_atom, TRUE); + else + IPCS_SetBool (IPCS_OBJECT (s), zs->ipcs_active_atom, FALSE); + + damageScreen(s); } @@ -707,6 +719,12 @@ if (zs->newScale < 1.0) zs->newScale = 1.0; + if(zs->newScale != 1.0) + IPCS_SetBool (IPCS_OBJECT (s), zs->ipcs_active_atom, TRUE); + else + IPCS_SetBool (IPCS_OBJECT (s), zs->ipcs_active_atom, FALSE); + + damageScreen(s); } @@ -929,6 +947,9 @@ zs->showScaled = ZOOM_SHOW_SCALED_CURSOR_DEFAULT; zs->hideNormal = ZOOM_HIDE_NORMAL_CURSOR_DEFAULT; + zs->ipcs_active_atom = IPCS_GetAtom (IPCS_OBJECT (s), IPCS_BOOL, "ZOOM_IS_ACTIVE", TRUE); + + return TRUE; }