<html>
<head>
<base href="https://bugs.freedesktop.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW --- - [bug] Weston won't "wake up" after two touch events"
href="https://bugs.freedesktop.org/show_bug.cgi?id=69719#c3">Comment # 3</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW --- - [bug] Weston won't "wake up" after two touch events"
href="https://bugs.freedesktop.org/show_bug.cgi?id=69719">bug 69719</a>
from <span class="vcard"><a class="email" href="mailto:neil@linux.intel.com" title="Neil Roberts <neil@linux.intel.com>"> <span class="fn">Neil Roberts</span></a>
</span></b>
<pre>Created <span class=""><a href="attachment.cgi?id=86846" name="attach_86846" title="Set new state before emitting wake signal in weston_compsitor_wake">attachment 86846</a> <a href="attachment.cgi?id=86846&action=edit" title="Set new state before emitting wake signal in weston_compsitor_wake">[details]</a></span> <a href='page.cgi?id=splinter.html&bug=69719&attachment=86846'>[review]</a>
Set new state before emitting wake signal in weston_compsitor_wake
The wake handler set up by the shell will try to unlock the screen
which works by setting up an animation which fades in the display. The
animation is started by first scheduling a repaint. Subsequent
repaints are scheduled whenever the previous frame is finished.
However in the case of the wake up signal the state is still
WESTON_COMPOSITOR_SLEEPING when the animation is started.
weston_output_schedule_repaint() ignores attempts to schedule a
repaint if the compositor is sleeping which means the animation never
gets run and will never complete.
The animation gets unstuck and continues if anything else schedules a
repaint after the state has been changed so the bug only gets hit in
certain conditions. The first wake up creates the lock surface which
causes a redraw when the first buffer is attached so the first wake up
is always ok. A redraw can be triggered in the subsequent wake ups
just by moving the mouse.
A good way to trigger the bug is to try to wake up the compositor by
pressing the shift key. If you let the compositor go back to sleep
after waking it up without unlocking it, the second press of the shift
key will not cause a redraw so the animation will not run and it won't
fade in.</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>