Hi All,
Kindly review the attached patch for bug #6404286 - "xscreensaver fails
to start due to unsuccessful reply from XGrabPointer(3X11) on metacity".
Attached patch (metacity-11-wireframe-timeout-grab.diff) is applicable
for SNV spec-files branch 2.20, trunk and as well as the latest
community sources.
Problem:- xscreensaver fails to start due to unsuccessful reply from
xgrabpointer(3X11) on metacity.
Steps to simulate:-
1) access Preferences -> Desktop Preferences -> Display ->
Screen Saver
Set Screen Blanking to 1 minute
Set Lock to 1 minute
or
From the command prompt, launch "xscreensaver-demo"
2) Restart xscreensaver daemon.
3) Start resizing a window (Alt + F8) and leave it
unattended(do not complete move/resize operation).
Result:-xscreensaver does not start and hence the screen dosen't lock.
Analysis and Solution:-
In wireframe mode, metacity does an XGrabServer
to avoid screen dirt. This grab is not released until the move/resize
operation is completed. Here in this case, user started off the
move/resize operation using keyboard and never completed the same. So
the server grab is not released. Hence screensaver fails to start.
Hence the solution is to release the server grab after a timeout. So we
put a timer to release the server grab when a user starts move/resize of
a window in wireframe mode using keyboard and leaves it unattended for a
particular timeout period (60 seconds).
Thanks,
Pallavi
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: metacity-11-wireframe-timeout-grab.diff
URL:
<http://mail.opensolaris.org/pipermail/jds-review/attachments/20080318/875e4b85/attachment.ksh>