User Agent: Mozilla/5.0 (X11; Linux i686; rv:13.0a1) Gecko/20120212 Firefox/13.0a1
Build ID: 20120212031149
Steps to reproduce:
This bug appears when accessing the “Clear recent history” window with the keyboard shortcut (ctrl+shift+del) or via the “Privacy” tabs in the preference panel. It does _not_ happen when opening the window through the menu.
The “Time range to clear” select menu is frozen to the last used option, making impossible to choose a time range.
The menu should be naturally openable and selectable, exactly like it worked before or when the window is accessed via the menu.
Mozilla/5.0 (X11; Linux x86_64; rv:13.0a1) Gecko/20120212 Firefox/13.0a1
Mozilla/5.0 (X11; Linux i686; rv:13.0a1) Gecko/20120209 Firefox/13.0a1 ID:20120209031242
Mozilla/5.0 (X11; Linux i686; rv:13.0a1) Gecko/20120207 Firefox/13.0a1 ID:20120207125604
Mozilla/5.0 (X11; Linux i686; rv:13.0a1) Gecko/20120207 Firefox/13.0a1 ID:20120207174850
b45785802731 Karl Tomlinson — b=724966 make sure to set sRetryGrabTime for retrying grabs r=roc
Sorry error in Comment 2
Mozilla/5.0 (X11; Linux i686; rv:13.0a1) Gecko/20120212 Firefox/13.0a1 ID:20120212031149
I can also reproduce on x86_64 Ubuntu 10.04 LTS + GNOME 2.30.2
Mozilla/5.0 (X11; Linux x86_64; rv:13.0a1) Gecko/20120212 Firefox/13.0a1 ID:20120212031149
gtk_get_current_event_time is returning the time of an old event due to a nested event loop in ShowModal. The last event in the inner loop (button press) has popped off the current event list and the grab is run off a nsXULPopupShowingEvent. At that point, the event remaining on the current event list is the button release that opened the modal window.
A button press has happened since that button release event. Each button press induces an implicit pointer grab, which i assume updates the last-pointer-grab time and so the old time is not new enough for a new grab. I'll write something to come up with a better time than gtk_get_current_event_time.
Created attachment 596561 [details] [diff] [review]
rework last event time calculation
Thanks for putting this together. I built TB with this patch, and it seemed to fix the problem.
However, I'm getting the following error when attempting to do a try build:
/buildbot/try-comm-cen-lnx/build/mozilla/widget/gtk2/nsWindow.cpp: In function 'void UpdateLastInputEventTime(const void*)':
/buildbot/try-comm-cen-lnx/build/mozilla/widget/gtk2/nsWindow.cpp:388:69: error: invalid conversion from 'const GdkEvent*' to 'GdkEvent*'
/buildbot/try-comm-cen-lnx/build/mozilla/widget/gtk2/nsWindow.cpp:388:69: error: initializing argument 1 of 'guint32 gdk_event_get_time(GdkEvent*)'
Is the wrong type being passed somehow?
Created attachment 596576 [details] [diff] [review]
rework last event time calculation v1.1
The gdk_event_get_time on the build machines needs a GdkEvent* instead of const GdkEvent*.
This patch seems to fix bug 726410 - however, we're seeing the same popup test failures as before (bug 725685).
*** Bug 726410 has been marked as a duplicate of this bug. ***