This variable should be set appropriately by plugins rotating the cube. --- include/cube.h | 9 +++++++++ plugins/cube.c | 2 ++ plugins/rotate.c | 12 ++++++++++++ 3 files changed, 23 insertions(+), 0 deletions(-) diff --git a/include/cube.h b/include/cube.h index 00e5b47..4010b6b 100644 --- a/include/cube.h +++ b/include/cube.h @@ -77,6 +77,13 @@ typedef enum _PaintOrder FTB } PaintOrder; +typedef enum _RotationState +{ + RotationNone = 0, + RotationChange, + RotationManual +} RotationState; + typedef struct _CubeScreen { PreparePaintScreenProc preparePaintScreen; DonePaintScreenProc donePaintScreen; @@ -98,6 +105,8 @@ typedef struct _CubeScreen { int xRotations; PaintOrder paintOrder; + RotationState rotationState; + GLfloat distance; GLushort color[3]; GLfloat tc[12]; diff --git a/plugins/cube.c b/plugins/cube.c index 7c4df03..0162e0d 100644 --- a/plugins/cube.c +++ b/plugins/cube.c @@ -1859,6 +1859,8 @@ cubeInitScreen (CompPlugin *p, cs->bg = NULL; cs->nBg = 0; + cs->rotationState = RotationNone; + memset (cs->cleared, 0, sizeof (cs->cleared)); cubeUpdateOutputs (s); diff --git a/plugins/rotate.c b/plugins/rotate.c index 7aecd56..fdd9442 100644 --- a/plugins/rotate.c +++ b/plugins/rotate.c @@ -346,6 +346,9 @@ rotatePreparePaintScreen (CompScreen *s, else tx = (s->hsize * xrot / 360.0f) + 0.5f; + /* flag end of rotation */ + cs->rotationState = RotationNone; + moveScreenViewport (s, tx, 0, TRUE); rs->xrot = 0.0f; @@ -559,6 +562,7 @@ rotateInitiate (CompDisplay *d, if (s) { ROTATE_SCREEN (s); + CUBE_SCREEN (s); if (s->hsize < 2) return FALSE; @@ -577,6 +581,14 @@ rotateInitiate (CompDisplay *d, rs->moving = FALSE; rs->slow = FALSE; + /* Set the rotation state for cube - if action is non-NULL, + we set it to manual (as we were called from the 'Initiate + Rotation' binding. Otherwise, we set to to Change. */ + if (action) + cs->rotationState = RotationManual; + else + cs->rotationState = RotationChange; + if (!rs->grabIndex) { rs->grabIndex = pushScreenGrab (s, s->invisibleCursor, "rotate"); -- 1.5.0.6 --=-BN45f9l1EBDZU+GMKjya Content-Disposition: attachment; filename=0003-Add-cube-transparency.patch Content-Type: application/mbox; name=0003-Add-cube-transparency.patch Content-Transfer-Encoding: 7bit