summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/locker.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/locker.cpp b/src/locker.cpp
index 8702540..8ce230d 100644
--- a/src/locker.cpp
+++ b/src/locker.cpp
@@ -114,6 +114,9 @@ SimpleLockerWindow::paint (const GLMatrix &transform)
{
/* Paint a white box in the center of the screen */
+ if (!mShowing)
+ return;
+
glPushMatrix ();
glLoadMatrixf (transform.getMatrix ());
@@ -207,6 +210,9 @@ SimpleLockerBackground::paint (const GLMatrix &transform)
{
/* Paint a multicolored box in the center of the screen */
+ if (!mShowing)
+ return;
+
glPushMatrix ();
glLoadMatrixf (transform.getMatrix ());
@@ -473,6 +479,8 @@ bool
LockerScreen::unlock ()
{
LockTrigger *trigger = LockTrigger::Default ();
+ LockerLockWindow *lockWindow = LockerLockWindow::Default ();
+ LockerLockBackground *lockBackground = LockerLockBackground::Default ();
if (mAnimationState != AnimationStateUnlocking ||
mAnimationState != AnimationStateIdle)
@@ -484,6 +492,9 @@ LockerScreen::unlock ()
mGrabIndex = 0;
}
+ lockWindow->hide ();
+ lockBackground->hide ();
+
trigger->unlocked ();
return false;
@@ -666,7 +677,8 @@ LockerScreen::LockerScreen (CompScreen *s) :
gScreen (GLScreen::get (screen)),
mAnimationProgress (0.0f),
mAnimatedWindows (0),
- mAnimationState (AnimationStateIdle)
+ mAnimationState (AnimationStateIdle),
+ mGrabIndex (0)
{
Lockable::mLockerWindow = new SimpleLockerWindow ();
Lockable::mLockerBackground = new SimpleLockerBackground ();