[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#514036: xserver-xorg: screensaver doesn't start when a menu is open



On Wed, 2009-02-04 at 08:58 +0100, Noèl Köthe wrote:
> Am Dienstag, den 03.02.2009, 20:31 +0100 schrieb Brice Goglin:
> 
> > > when you open a menu of e.g. KDE konqueror, GNOME nautilus or firefox
> > > then the screensaver wouldn't start in my tests. First I thought its
> > > a KDE bug http://bugs.kde.org/show_bug.cgi?id=176637 but the same behaviour
> > > can be reproduced with gnome.
> > > Or if you open a pull down menu on a website with firefox/iceweasel the
> > > screensaver will not start.
> 
> > I can reproduce in Gnome with both gnome-screensaver and xscreensaver
> > when opening firefox or gnome-terminal menus.
> > 
> > xscreensaver reported the following lines when the timeout expired:
> > xscreensaver: 20:16:02: couldn't grab keyboard!  (AlreadyGrabbed)
> > xscreensaver: 20:16:06: couldn't grab keyboard!  (AlreadyGrabbed)
> > xscreensaver: 20:16:10: couldn't grab pointer!  (AlreadyGrabbed)
> > xscreensaver: 20:16:10: unable to grab keyboard or mouse!  Blanking aborted.
> 
> The source code comment says:
> 
> xscreensaver-5.07/driver/xscreensaver.c
> ...
>       if (! blank_screen (si))
>         {
>           /* We were unable to grab either the keyboard or mouse.
>              This means we did not (and must not) blank the screen.
>              If we were to blank the screen while some other program
>              is holding both the mouse and keyboard grabbed, then
>              we would never be able to un-blank it!  We would never
>              see any events, and the display would be wedged.
> 
>              So, just go around the loop again and wait for the
>              next bout of idleness.  (If the user remains idle, we
>              will next try to blank the screen again in no more than
>              60 seconds.)
>           */
> ...
> 
> I don't know if opening a menu in an application grabs mouse and
> keyboard.

It does; it's the only way the menu can receive input events while the
pointer is outside of it. AFAIK this is a pretty deep X11 design issue,
so I'm afraid this can't be fixed easily. Feel free to bring it up
upstream though.


-- 
Earthling Michel Dänzer           |                http://www.vmware.com
Libre software enthusiast         |          Debian, X and DRI developer



Reply to: