Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.

Bug 1464916

Summary: [Wayland] toolbar menu is not shown after some time
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-14 07:34:12 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    

Description Martin Stransky 2017-06-26 08:52:42 UTC
Description of problem:

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

When pop up menu is opened repeatedly it's not shown. May be caused by missing parent gdk surface (gdk_wayland_window_get_wl_surface() returns null) and when background surface is transparent (after pop-up transparency fix).

Comment 1 Martin Stransky 2017-07-10 20:17:13 UTC
It may be caused by calling wl_surface_damage() to buffer which is released afterward and a new buffer is attached with zero damage area so nothing is rendered:

[3841717.306]  -> wl_surface(0, 0, 532, 429)
>>>> **************** <<<<
[3841724.027] wl_buffer()
[3841724.041] wl_callback(8433000)
[3841724.048]  -> wl_surface(new id wl_callback@124)
[3841724.054]  -> wl_surface(wl_buffer@53, 0, 0)
[3841724.061]  -> wl_surface()

Comment 2 Martin Stransky 2017-07-10 20:18:08 UTC
So looks like we need to call wl_surface_damage after wl_surface_attach.

Comment 3 Martin Stransky 2017-07-12 09:14:10 UTC
Fix is committed to commit 32899bf0d996dbe1008bd9abd79724a8217fb6b8 but it's seem incomplete - I still see the missing popups.

Comment 4 Martin Stransky 2017-07-13 10:42:35 UTC
Hm, that does not fix that. The real problem here is that we wait for wl_surface frame callback to draw but the wl_surface is not visible. So the frame callback is not going to be called and we don't know that.