Bug 1466377 - [Wayland] noautohide popups issues (position, not mouse transparent)
Summary: [Wayland] noautohide popups issues (position, not mouse transparent)
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: firefox
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Martin Stransky
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: ffwayland
TreeView+ depends on / blocked
 
Reported: 2017-06-29 13:46 UTC by Martin Stransky
Modified: 2017-07-04 08:15 UTC (History)
6 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2017-07-03 12:12:09 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
Fix undefined reference for gtk_widget_input_shape_combine_region (765 bytes, patch)
2017-07-04 01:14 UTC, Hiroshi Hatake
no flags Details | Diff

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.


Note You need to log in before you can comment on or make changes to this bug.