GNOME Bugzilla – Bug 102660
WIndow menu shouldn't be affected by pointer position when popped up from keyboard
Last modified: 2011-02-04 16:12:10 UTC
From a recent review by a Sun beta tester: "If Alt-Space is used to display the window menu and the pointer happens to be placed where the menu opens, focus is assigned to that option. This behavior affects users (e.g. those who are blind) who rely on focus being at a consistent location whenever the menu opens." This doesn't seem to affect regular menubar menus so I'm guessing metacity is doing something funky here.
I don't think metacity is doing anything funky, though I suppose it's possible there's some weird side effect of the menu being inside the WM.
Have you tested with other menus? This is supposed to work, and did work the last time I looked at it. (A month or two ago)
I double-checked it on my (couple of week old) build from head before I filed the bug... regular application dropdown and popup menus seemed to correctly ignore the pointer when popped up from the keyboard, but window menus didn't.
metacity will have a keyboard grab when the window menu comes up probably, from the XGrabKey(). Maybe that's related, dunno.
keyboard grabs won't matter... hmm: /* If we are popping up the menu from something other than, a button * press then, as a heuristic, we ignore enter events for the menu * until we get a MOTION_NOTIFY. */ current_event = gtk_get_current_event (); if (current_event) { if ((current_event->type != GDK_BUTTON_PRESS) && (current_event->type != GDK_ENTER_NOTIFY)) menu_shell->ignore_enter = TRUE; gdk_event_free (current_event); } Possibly ignore_enter should be set in the !current_event case.
Updating status_whiteboard field to reflect A11Y team's assessment of accessibility impact.
Apologies for spam... marking as GNOMEVER2.3 so it appears on the official GNOME bug list :)
That gtk fix looks plausible; metacity is popping up the menu from an event filter so I guess there's no current event.
Created attachment 20719 [details] [review] Proposed patch
The proposed patch seems to fix the problem.
Patch looks fine to apply, gtk-2-2 and HEAD.
Patch applied to gtk-2-2 branch and HEAD.