Open
Bug 1269166
Opened 9 years ago
Updated 2 years ago
All UI Overlays Broken - popup windows are not shown
Categories
(Core :: Widget: Gtk, defect, P3)
Tracking
()
NEW
People
(Reporter: frioux, Unassigned)
References
(Blocks 1 open bug)
Details
(Keywords: regression, Whiteboard: tpi:+)
User Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:46.0) Gecko/20100101 Firefox/46.0
Build ID: 20160425114621
Steps to reproduce:
Right click anywhere, type in the Location Bar, or click the hamburger menu.
I can't figure out where else to add this extra info, so I'm adding it here: I'm on Ubuntu 16.04, using the awesome window manager.
Actual results:
Menu doesn't show up, Location Bar suggestions don't show up, hamburger menu doesn't show up.
Expected results:
Menu should show up, Location Bar suggestions should show up, hamburger menu should show up.
FF46 supports Gtk3 now. Do you have Gtk3 on your machine?
Component: Untriaged → Widget: Gtk
Flags: needinfo?(frioux)
Product: Firefox → Core
Reporter | ||
Comment 2•9 years ago
|
||
Yes; I mean, would firefox even run if I didn't have gtk3? I installed Firefox from the apt-repos; I cannot imagine that the deps would be so broken that I could even install it without having gtk3 installed.
OS: Unspecified → Linux
Hardware: Unspecified → x86_64
Reporter | ||
Comment 3•9 years ago
|
||
This is bizarre; I logged into my computer this morning and the menus work again. I haven't rebooted, simply come out of suspend and docked my machine. I wonder if there is a problem with gtk3 and the multi-monitor support?
Reporter | ||
Comment 4•9 years ago
|
||
Ok yeah, I can verify that when I am not plugged into my dock the right-click menu (etc) doesn't show up for firefox. When I run
xrandr --output DP2-1 --left-of eDP1 --off \
--output DP2-2 --right-of eDP1 --off
it fixes the problem. That's a workaround for now, but less experienced users would likely not be able to figure that out.
Comment 5•9 years ago
|
||
Putting NSPR_LOG_MODULES=Widget:5 in the environment would provide some logging.
It should indicate whether and where the popup windows are shown.
Do mouse clicks behave as the popups are shown or not?
i.e. after attempting to open a context menu, does the first click on a button in another app register or not?
Summary: All UI Overlays Broken → All UI Overlays Broken - popup windows are not shown
Reporter | ||
Comment 6•9 years ago
|
||
Yes they are registering. Here's a rightclick:
-1227741376[7f03b589f580]: OnEnterNotify: 7f038c954000
-1227741376[7f03b589f580]: GetScreenBounds 1920,19 | 1920x1061
-1227741376[7f03b589f580]: Button 3 press on 7f038c954000
-1227741376[7f03b589f580]: CaptureRollupEvents 7f0365fe0000 1
-1227741376[7f03b589f580]: GrabPointer time=0x01b2fc0a retry=0
-1227741376[7f03b589f580]: GrabPointer: window not visible
-1227741376[7f03b589f580]: nsWindow::Move [7f0365fe0000] 1685.000000 374.000000
-1227741376[7f03b589f580]: nsWindow::Show [7f0365fe0000] state 1
-1227741376[7f03b589f580]: GrabPointer time=0x01b2fc0a retry=1
-1227741376[7f03b589f580]: GrabPointer: window not visible
-1227741376[7f03b589f580]: nsWindow::OnWindowStateEvent [7f0365fe0000] changed 1 new_window_state 128
-1227741376[7f03b589f580]: nsWindow::OnWindowStateEvent [7f0365fe0000] changed 1 new_window_state 128
-1227741376[7f03b589f580]: GrabPointer time=0x01b2fc0a retry=1
-1227741376[7f03b589f580]: configure event [7f0365fe0000] 1685 374 235 407
-1227741376[7f03b589f580]: GetScreenBounds 1685,374 | 235x407
-1227741376[7f03b589f580]: Button 3 release on 7f038c954000
-1227741376[7f03b589f580]: key_press_event_cb
-1227741376[7f03b589f580]: CaptureRollupEvents 7f0365fe0000 0
-1227741376[7f03b589f580]: ReleaseGrabs
-1227741376[7f03b589f580]: OnLeaveNotify: 7f0365fe0000
-1227741376[7f03b589f580]: OnEnterNotify: 7f038c954000
-1227741376[7f03b589f580]: nsWindow::Show [7f0365fe0000] state 0
-1227741376[7f03b589f580]: nsWindow::OnWindowStateEvent [7f0365fe0000] changed 1 new_window_state 129
-1227741376[7f03b589f580]: nsWindow::OnWindowStateEvent [7f0365fe0000] changed 1 new_window_state 129
-1227741376[7f03b589f580]: key_release_event_cb
-1227741376[7f03b589f580]: key_press_event_cb
-1227741376[7f03b589f580]: OnLeaveNotify: 7f038c954000
Here's pressing the hamburger menu:
-1227741376[7f03b589f580]: OnEnterNotify: 7f038c954000
-1227741376[7f03b589f580]: GetScreenBounds 1920,19 | 1920x1061
-1227741376[7f03b589f580]: key_release_event_cb
-1227741376[7f03b589f580]: OnLeaveNotify: 7f038c954000
-1227741376[7f03b589f580]: OnEnterNotify: 7f038c954000
-1227741376[7f03b589f580]: OnEnterNotify: 7f038c954000
-1227741376[7f03b589f580]: Button 1 press on 7f038c954000
-1227741376[7f03b589f580]: nsWindow [7f0367d9d800]
-1227741376[7f03b589f580]: mShell 7f0367d9e230 mContainer 7f03664955f0 mGdkWindow 7f03652fe1d0 0x1600b64
-1227741376[7f03b589f580]: CaptureRollupEvents 7f0367d9d800 1
-1227741376[7f03b589f580]: GrabPointer time=0x01b3cc45 retry=0
-1227741376[7f03b589f580]: GrabPointer: window not visible
-1227741376[7f03b589f580]: nsWindow::NativeMoveResize [7f0367d9d800] 1600 78 320 685
-1227741376[7f03b589f580]: nsWindow::Show [7f0367d9d800] state 1
-1227741376[7f03b589f580]: size_allocate [7f0367d9d800] 0 0 320 685
-1227741376[7f03b589f580]: GrabPointer time=0x01b3cc45 retry=1
-1227741376[7f03b589f580]: GrabPointer: window not visible
-1227741376[7f03b589f580]: nsWindow::OnWindowStateEvent [7f0367d9d800] changed 129 new_window_state 128
-1227741376[7f03b589f580]: nsWindow::OnWindowStateEvent [7f0367d9d800] changed 129 new_window_state 128
-1227741376[7f03b589f580]: GrabPointer time=0x01b3cc45 retry=1
-1227741376[7f03b589f580]: configure event [7f0367d9d800] 1600 78 320 685
-1227741376[7f03b589f580]: GetScreenBounds 1600,78 | 320x685
-1227741376[7f03b589f580]: nsWindow::NativeResize [7f0367d9d800] 320 694
-1227741376[7f03b589f580]: size_allocate [7f0367d9d800] 0 0 320 694
-1227741376[7f03b589f580]: configure event [7f0367d9d800] 1600 78 320 694
-1227741376[7f03b589f580]: GetScreenBounds 1600,78 | 320x694
-1227741376[7f03b589f580]: Button 1 release on 7f038c954000
-1227741376[7f03b589f580]: CaptureRollupEvents 7f0367d9d800 0
-1227741376[7f03b589f580]: ReleaseGrabs
-1227741376[7f03b589f580]: CaptureRollupEvents 7f0367d9d800 1
-1227741376[7f03b589f580]: GrabPointer time=0x01b3cd04 retry=0
-1227741376[7f03b589f580]: CaptureRollupEvents 7f0367d9d800 0
-1227741376[7f03b589f580]: ReleaseGrabs
-1227741376[7f03b589f580]: CaptureRollupEvents 7f0367d9d800 1
-1227741376[7f03b589f580]: GrabPointer time=0x01b3cd04 retry=0
-1227741376[7f03b589f580]: key_press_event_cb
-1227741376[7f03b589f580]: CaptureRollupEvents 7f0367d9d800 0
-1227741376[7f03b589f580]: ReleaseGrabs
-1227741376[7f03b589f580]: OnLeaveNotify: 7f0367d9d800
-1227741376[7f03b589f580]: OnEnterNotify: 7f038c954000
-1227741376[7f03b589f580]: nsWindow::Show [7f0367d9d800] state 0
-1227741376[7f03b589f580]: nsWindow::OnWindowStateEvent [7f0367d9d800] changed 1 new_window_state 129
-1227741376[7f03b589f580]: nsWindow::OnWindowStateEvent [7f0367d9d800] changed 1 new_window_state 129
-1227741376[7f03b589f580]: key_release_event_cb
-1227741376[7f03b589f580]: key_press_event_cb
-1227741376[7f03b589f580]: OnLeaveNotify: 7f038c954000
And here's typing 'frew' in the awesomebar:
-1227741376[7f03b589f580]: OnEnterNotify: 7f038c954000
-1227741376[7f03b589f580]: GetScreenBounds 1920,19 | 1920x1061
-1227741376[7f03b589f580]: key_press_event_cb
-1227741376[7f03b589f580]: key_press_event_cb
-1227741376[7f03b589f580]: nsWindow [7f03645e9000]
-1227741376[7f03b589f580]: mShell 7f0364eade30 mContainer 7f036525fa30 mGdkWindow 7f035a8f9be0 0x1600d98
-1227741376[7f03b589f580]: CaptureRollupEvents 7f03645e9000 1
-1227741376[7f03b589f580]: GrabPointer time=0x01b45b56 retry=0
-1227741376[7f03b589f580]: GrabPointer: window not visible
-1227741376[7f03b589f580]: key_release_event_cb
-1227741376[7f03b589f580]: nsWindow::NativeMoveResize [7f03645e9000] 337 81 1583 50
-1227741376[7f03b589f580]: nsWindow::Show [7f03645e9000] state 1
-1227741376[7f03b589f580]: size_allocate [7f03645e9000] 0 0 1583 50
-1227741376[7f03b589f580]: GrabPointer time=0x01b45b56 retry=1
-1227741376[7f03b589f580]: GrabPointer: window not visible
-1227741376[7f03b589f580]: nsWindow::OnWindowStateEvent [7f03645e9000] changed 129 new_window_state 128
-1227741376[7f03b589f580]: nsWindow::OnWindowStateEvent [7f03645e9000] changed 129 new_window_state 128
-1227741376[7f03b589f580]: GrabPointer time=0x01b45b56 retry=1
-1227741376[7f03b589f580]: key_press_event_cb
-1227741376[7f03b589f580]: configure event [7f03645e9000] 337 81 1583 50
-1227741376[7f03b589f580]: GetScreenBounds 337,81 | 1583x50
-1227741376[7f03b589f580]: key_press_event_cb
-1227741376[7f03b589f580]: key_release_event_cb
-1227741376[7f03b589f580]: nsWindow::NativeResize [7f03645e9000] 1583 96
-1227741376[7f03b589f580]: size_allocate [7f03645e9000] 0 0 1583 96
-1227741376[7f03b589f580]: configure event [7f03645e9000] 337 81 1583 96
-1227741376[7f03b589f580]: GetScreenBounds 337,81 | 1583x96
-1227741376[7f03b589f580]: nsWindow::NativeResize [7f03645e9000] 1583 280
-1227741376[7f03b589f580]: size_allocate [7f03645e9000] 0 0 1583 280
-1227741376[7f03b589f580]: configure event [7f03645e9000] 337 81 1583 280
-1227741376[7f03b589f580]: GetScreenBounds 337,81 | 1583x280
-1227741376[7f03b589f580]: key_release_event_cb
-1227741376[7f03b589f580]: key_release_event_cb
-1227741376[7f03b589f580]: key_press_event_cb
-1227741376[7f03b589f580]: key_press_event_cb
-1227741376[7f03b589f580]: CaptureRollupEvents 7f03645e9000 0
-1227741376[7f03b589f580]: ReleaseGrabs
-1227741376[7f03b589f580]: CaptureRollupEvents 7f03645e9000 1
-1227741376[7f03b589f580]: GrabPointer time=0x01b46992 retry=0
-1227741376[7f03b589f580]: CaptureRollupEvents 7f03645e9000 0
-1227741376[7f03b589f580]: ReleaseGrabs
-1227741376[7f03b589f580]: nsWindow::Show [7f03645e9000] state 0
-1227741376[7f03b589f580]: nsWindow::OnWindowStateEvent [7f03645e9000] changed 1 new_window_state 129
-1227741376[7f03b589f580]: nsWindow::OnWindowStateEvent [7f03645e9000] changed 1 new_window_state 129
-1227741376[7f03b589f580]: OnLeaveNotify: 7f03645e9000
-1227741376[7f03b589f580]: OnEnterNotify: 7f038c954000
-1227741376[7f03b589f580]: key_release_event_cb
-1227741376[7f03b589f580]: key_release_event_cb
-1227741376[7f03b589f580]: key_press_event_cb
-1227741376[7f03b589f580]: OnLeaveNotify: 7f038c954000
Again: I saw none of the overlays.
Flags: needinfo?(frioux)
Comment 7•9 years ago
|
||
Thanks. In each case, there are keyboard events immediately before the popup windows are closed. Do you know what these are?
Keyboard events don't usually cause popups to close, but they will if they trigger a focus change.
xev would give interesting output if there are spurious key events.
NSPR_LOG_MODULES=Widget:5,WidgetFocus:5 includes focus changes in the logging.
Reporter | ||
Comment 8•9 years ago
|
||
Yes, I had to change focus each time to copy paste the output of the logging, and I use my keyboard for that. I guess next time this happens I'll get you logging including the focus change.
Reporter | ||
Comment 9•9 years ago
|
||
Ok here's the added trace info:
-441092288[7faae469f580]: OnContainerFocusInEvent [7faabb612000]
-441092288[7faae469f580]: SetFocus 0 [7faabb612000]
-441092288[7faae469f580]: widget now has focus in SetFocus() [7faabb612000]
-441092288[7faae469f580]: GetScreenBounds 1920,19 | 1920x1061
-441092288[7faae469f580]: Events sent from focus in event [7faabb612000]
-441092288[7faae469f580]: OnEnterNotify: 7faabb612000
-441092288[7faae469f580]: Button 3 press on 7faabb612000
-441092288[7faae469f580]: CaptureRollupEvents 7faaa0349400 1
-441092288[7faae469f580]: GrabPointer time=0x04797889 retry=0
-441092288[7faae469f580]: GrabPointer: window not visible
-441092288[7faae469f580]: nsWindow::NativeMoveResize [7faaa0349400] 1685 570 235 373
-441092288[7faae469f580]: nsWindow::Show [7faaa0349400] state 1
-441092288[7faae469f580]: size_allocate [7faaa0349400] 0 0 235 373
-441092288[7faae469f580]: GrabPointer time=0x04797889 retry=1
-441092288[7faae469f580]: GrabPointer: window not visible
-441092288[7faae469f580]: nsWindow::OnWindowStateEvent [7faaa0349400] changed 1 new_window_state 128
-441092288[7faae469f580]: nsWindow::OnWindowStateEvent [7faaa0349400] changed 1 new_window_state 128
-441092288[7faae469f580]: GrabPointer time=0x04797889 retry=1
-441092288[7faae469f580]: configure event [7faaa0349400] 1685 570 235 373
-441092288[7faae469f580]: GetScreenBounds 1685,570 | 235x373
-441092288[7faae469f580]: configure event [7faaa0349400] 1685 570 235 373
-441092288[7faae469f580]: GetScreenBounds 1685,570 | 235x373
-441092288[7faae469f580]: Button 3 release on 7faabb612000
-441092288[7faae469f580]: Button 1 press on 7faaa0349400
-441092288[7faae469f580]: CaptureRollupEvents 7faaa0349400 0
-441092288[7faae469f580]: ReleaseGrabs
-441092288[7faae469f580]: nsWindow::Show [7faaa0349400] state 0
-441092288[7faae469f580]: nsWindow::OnWindowStateEvent [7faaa0349400] changed 1 new_window_state 129
-441092288[7faae469f580]: nsWindow::OnWindowStateEvent [7faaa0349400] changed 1 new_window_state 129
-441092288[7faae469f580]: OnLeaveNotify: 7faaa0349400
-441092288[7faae469f580]: OnContainerFocusOutEvent [7faabb612000]
-441092288[7faae469f580]: Done with container focus out [7faabb612000]
Comment 10•9 years ago
|
||
That all looks as expect thanks. This time, the window is shown, becomes viewable, and captures pointer events. The window is hidden when mouse button 1 is pressed.
I don't know why the window is not visible.
Would you expect a 235x373 size window at 1685,570 to be visible, given the screen layout?
Reporter | ||
Comment 11•9 years ago
|
||
Yeah that should be visible. Firefox is the only window visible, and the monitor is 1920x1080.
Comment 12•9 years ago
|
||
There is another monitor though, I assume, because there is a window (The Firefox main window, I guess) of size 1920x1061 at 1920,19.
Seems the main window is on the right monitor, but the popup is on the left?
Reporter | ||
Comment 13•9 years ago
|
||
I think I mentioned this in some of the earlier comments, but maybe it wasn't clear because I didn't quite realize it myself at that time.
Basically, I have three monitors; the left, the right, and the center. The center has firefox on it, and the center is the screen built into the laptop. When I take the laptop out of the dock, I suddenly only have one monitor, but everything (except this) works just fine. So there absolutely shouldn't be another monitor. My *guess* is that firefox on gtk3 doesn't detect the events from X and displays the popup on the disconnected monitor. When I manually disable the missing monitors (see command above) firefox goes back to working.
If it's not clear, this absolutely is a regression and didn't happen before the gtk3 port.
Reporter | ||
Comment 14•9 years ago
|
||
My coworker pointed out that this could actually be a nouveau bug and that gtk3 might just be tickling it slightly differently than gtk2 would have. I am not sure where to go with that or how to debug it or who even to tell about it; but if that's the case, sorry for the noise?
Comment 15•9 years ago
|
||
The position of the Firefox main window seems to indicate that the other monitors may still be "virtually" there. Is the mouse constrained to laptop monitor after undocking?
Still puzzling that the popup should be positioning incorrectly only after undocking. Can you paste the output of xrandr before and after undocking, please?
What window manager is in use?
(Some WMs use a large virtual screen for virtual desktops.)
Updated•9 years ago
|
Blocks: gtk3
Keywords: regression
Reporter | ||
Comment 16•9 years ago
|
||
xrandr before undock:
Screen 0: minimum 8 x 8, current 5760 x 1080, maximum 32767 x 32767
eDP1 connected primary 1920x1080+1920+0 (normal left inverted right x axis y axis) 309mm x 174mm
1920x1080 60.02*+ 59.93
1680x1050 59.95 59.88
1600x1024 60.17
1400x1050 59.98
1600x900 60.00
1280x1024 60.02
1440x900 59.89
1280x960 60.00
1368x768 60.00
1360x768 59.80 59.96
1152x864 60.00
1280x720 60.00
1024x768 60.00
1024x576 60.00
960x540 60.00
800x600 60.32 56.25
864x486 60.00
640x480 59.94
720x405 60.00
640x360 60.00
DP1 disconnected (normal left inverted right x axis y axis)
DP2 disconnected (normal left inverted right x axis y axis)
DP2-1 connected 1920x1080+3840+0 (normal left inverted right x axis y axis) 527mm x 296mm
1920x1080 60.00*+ 50.00 59.94
1680x1050 59.88
1280x1024 75.02 72.05 60.02
1440x900 59.90
1152x864 75.00
1280x720 60.00 50.00 59.94
1024x768 75.08 70.07 60.00
800x600 72.19 75.00 60.32
720x576 50.00
720x480 60.00 59.94
640x480 75.00 72.81 66.67 60.00 59.94
720x400 70.08
DP2-2 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 510mm x 287mm
1920x1080 60.00*+ 50.00 59.94
1680x1050 59.95
1280x1024 75.02 60.02
1440x900 74.98 59.89
1280x800 59.81
1152x864 75.00
1280x720 60.00 50.00 59.94
1024x768 75.08 70.07 60.00
800x600 72.19 75.00 60.32
720x576 50.00
720x480 60.00 59.94
640x480 75.00 72.81 60.00 59.94
720x400 70.08
DP2-3 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)
VGA1 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)
xrandr after:
Screen 0: minimum 8 x 8, current 5760 x 1080, maximum 32767 x 32767
eDP1 connected primary 1920x1080+1920+0 (normal left inverted right x axis y axis) 309mm x 174mm
1920x1080 60.02*+ 59.93
1680x1050 59.95 59.88
1600x1024 60.17
1400x1050 59.98
1600x900 60.00
1280x1024 60.02
1440x900 59.89
1280x960 60.00
1368x768 60.00
1360x768 59.80 59.96
1152x864 60.00
1280x720 60.00
1024x768 60.00
1024x576 60.00
960x540 60.00
800x600 60.32 56.25
864x486 60.00
640x480 59.94
720x405 60.00
640x360 60.00
DP1 disconnected (normal left inverted right x axis y axis)
DP2 disconnected (normal left inverted right x axis y axis)
DP2-1 disconnected (normal left inverted right x axis y axis)
DP2-2 disconnected (normal left inverted right x axis y axis)
DP2-3 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)
VGA1 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)
Window Manager is awesomewm. Mouse is indeed constrained to the one screen.
Comment 17•9 years ago
|
||
(In reply to Arthur Axel "fREW" Schmidt from comment #16)
> xrandr after:
>
> Screen 0: minimum 8 x 8, current 5760 x 1080, maximum 32767 x 32767
> eDP1 connected primary 1920x1080+1920+0 (normal left inverted right x axis y
> axis) 309mm x 174mm
Thanks. The screen still covers all the monitors, and awesomewm knows that
some are now disconnected, but Firefox has chosen to show the popup on one of
the disconnected monitors. That is a bug of course.
I guess the workaround of comment 4 removed the screen space for the
disconnected monitors.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Updated•8 years ago
|
Priority: -- → P3
Whiteboard: tpi:+
Updated•8 years ago
|
Blocks: gtk3-pre-3.20
Updated•2 years ago
|
Severity: normal → S3
You need to log in
before you can comment on or make changes to this bug.
Description
•