Bug 1466377

Summary: [Wayland] noautohide popups issues (position, not mouse transparent)
Product: [Fedora] Fedora Reporter: Martin Stransky <stransky>
Component: firefoxAssignee: Martin Stransky <stransky>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: cosmo0920.oucc, extras-qa, gecko-bugs-nobody, jhorak, kengert, pjasicek
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-07-03 12:12:09 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1054334    
Attachments:
Description Flags
Fix undefined reference for gtk_widget_input_shape_combine_region none

Description Martin Stransky 2017-06-29 13:46:04 UTC
Description of problem:

https://github.com/stransky/gecko-dev

Hamburger popup menu opened from tutorial (after firefox nightly first launch) is misplaced and crashes browser/gnome-shell when clicked.

Comment 1 Martin Stransky 2017-07-03 07:20:26 UTC
The popup is created as noautohide which is created as GTK_WINDOW_TOPLEVEL on X11. We need to use GTK_WINDOW_POPUP for all popups on Wayland.

Comment 2 Martin Stransky 2017-07-03 08:27:45 UTC
https://github.com/stransky/gecko-dev/commit/6dd374336a60c59ca69abe23c1be7525ec541028 fixes window position but the underlying window still can't be clicked.

Comment 3 Martin Stransky 2017-07-03 10:49:41 UTC
The click issue is caused by wrong handling of nsWindow::mMouseTransparent flag.

Comment 4 Martin Stransky 2017-07-03 12:12:09 UTC
Mouse transparency is fixed by
https://github.com/stransky/gecko-dev/commit/407da29d3c58cb40e8846c3b3c1abbc3e22ffacf

Comment 5 Hiroshi Hatake 2017-07-04 01:14:06 UTC
Created attachment 1294016 [details]
Fix undefined reference for gtk_widget_input_shape_combine_region

Perhaps, this patch is needed to fix undefined reference?

Otherwise, I've got the following error (Sorry for contaminated Japanese message):

 1:27.00     INPUT("StaticXULComponentsEnd/StaticXULComponentsEnd.o")
 1:27.00 
 1:27.00 ../../widget/gtk/nsWindow.o: 関数 `nsWindow::Create(nsIWidget*, void*, mozilla::gfx::IntRectTyped<mozilla::LayoutDevicePixel> const&, nsWidgetInitData*)' 内:
 1:27.00 /home/hhatake/GitHub/gecko-dev-stransky/widget/gtk/nsWindow.cpp:3853: `gtk_widget_input_shape_combine_region' に対する定義されていない参照です
 1:27.00 collect2: error: ld returned 1 exit status
 1:27.16 /home/hhatake/GitHub/gecko-dev-stransky/config/rules.mk:719: ターゲット 'libxul.so' のレシピで失敗しました

Comment 6 Hiroshi Hatake 2017-07-04 03:14:16 UTC
(In reply to Martin Stransky from comment #3)
> The click issue is caused by wrong handling of nsWindow::mMouseTransparent
> flag.

I've confirmed that the click issue remains on Weston 1.12.0 with GTK+3 3.22 and Wayland 1.12.0.
Using GNOME on Wayland solves the click issue?

Comment 7 Martin Stransky 2017-07-04 05:59:03 UTC
Yes, you're correct, I missed the mozgtk.c part of the fix. Thanks. I'll check the Weston for the bug.

Comment 8 Martin Stransky 2017-07-04 06:56:24 UTC
Added the missing linkage as commit de7ad4e633e6acb32a2a0d1403ef1a8c0539ad95.

(In reply to Hiroshi Hatake from comment #6)
> Using GNOME on Wayland solves the click issue?

Yes, I'm testing on gnome-shell. Weston usually contains various bugs and does not follow specifications (does not send focus on popup grab for instance or automatically invalidates wl_surface on buffer switch).

Comment 9 Martin Stransky 2017-07-04 07:03:00 UTC
(In reply to Hiroshi Hatake from comment #6)
> I've confirmed that the click issue remains on Weston 1.12.0 with GTK+3 3.22
> and Wayland 1.12.0.

I tested on weston-2.0.0-1.fc26.x86_64 and gtk3-3.22.16-1.1.fc26.x86_64 and the clicking works for me.

Comment 10 Hiroshi Hatake 2017-07-04 08:15:40 UTC
Thanks for confirming it.
I still got the clicking not to work.
I tested on weston 1.12.0-3 and libgtk-3-0 3.22.11-1 in Debian Stretch.

But I've also confirmed that using libgtk-3-0 3.22.16 which is built by myself is works for me.
Thanks for the confirm environment version information.
It is very helpful for us.