kenz-gelsoft / gecko-dev

Read-only Git mirror of the Mercurial gecko repositories at https://hg.mozilla.org. How to contribute: https://firefox-source-docs.mozilla.org/contributing/contribution_quickref.html
https://firefox-source-docs.mozilla.org/setup/index.html
Other
16 stars 2 forks source link

Make firefox support of wayland-server published #76

Open kenz-gelsoft opened 5 days ago

kenz-gelsoft commented 5 days ago

blocks #71

I'm sharing a build of https://github.com/X547/wayland-server/commit/ceea7c3655a4059c02bc2c1461a2278481a363fc

Make required fix (or changes) merged in wayland-server's master, and publish it in HaikuDeport.

kenz-gelsoft commented 5 days ago

https://github.com/X547/wayland-server/pull/7/files/d78c71738293b13761137768155f6cacce4a4260

Without this change, mouse down itself is handled here

1 HaikuSeatGlobal::MessageReceived HaikuSeat.cpp        505 0x1b605493969  
2 WaylandView::MessageReceived     HaikuCompositor.cpp  174 0x1b60548909a  
3 WaylandWindow::DispatchMessage   HaikuXdgToplevel.cpp 95  0x1b60548f858  
4 BWindow::task_looper()                                    0xaa789c7879   
5 BLooper::_task0_(void *)                                  0xaa78908761   
6 thread_entry                                              0xccb3cbc0d9   
7 ??                                                        0x7f4614605258 
8 ??                                                                       

I wonder why it works with firefox if this hit fPointerFocus, root surface shouldn't be fPointerFocus, so it won't be handled.

I don't know yet how wayland mouse down event sent here will be handled in application logic.

It must be transformed to a gdk event anywhere, so debugging gdk/gtk event handling code may help?

kenz-gelsoft commented 4 days ago

I couldn't understand what is wrong by debugging wayland-server only. It seems not a bug about coordinate calculation but mistargetting or consuming wayland event.

Next I will try debugging gtk or gtk event handling in those apps.

kenz-gelsoft commented 2 days ago

Hmm, it looks there is only one HaikuPointer, our code send button and frame events to its pointer, what is the difference between works on firefox or not?

kenz-gelsoft commented 2 days ago

https://github.com/wmww/wayland-debug/blob/master/readme.md

This tool or at least WAYLAND_DEBUG=1 will work?

kenz-gelsoft commented 2 days ago

Firefox without patch for firefox

[1490359.279] wl_surface@34.frame(new id wl_callback@36[1490359.300] wl_display@1.delete_id()
45[1490359.324] wl_surface@34.commit()
)
[1490363.010]  -> wl_callback@36.done(296104459)
[1490363.026]  -> wl_display@1.delete_id(36[1490363.032] wl_callback@36.done()
296104459)
[1490363.074] wl_display@1.delete_id(36)
[1490613.451]  -> wl_pointer@8.button(6, 296104710, 272, 1)
[1490613.497]  -> wl_pointer@8.frame()
[1490613.506] wl_pointer@8.button(6, 296104710, 272, 1)
[1490613.552] wl_pointer@8.frame()
[1490701.143]  -> wl_pointer@8.button(7, 296104797, 272, 0)
[1490701.182]  -> wl_pointer@8.frame()
[1490701.190] wl_pointer@8.button(7, 296104797, 272, 0)
[1490701.233] wl_pointer@8.frame()
[1490764.992]  -> wl_pointer@8.motion(296104861, 563.00000000, 520.00000000)
[1490765.023]  -> wl_pointer@8.frame()

with patch

[3937646.617] wl_surface@34.frame(new id wl_callback@49)
[3937646.671] wl_surface@34.commit()
[3937646.763] wl_display@1.delete_id(47)
[3937650.427]  -> wl_callback@49.done(1480747)
[3937650.439]  -> wl_display@1.delete_id(49)
[3937650.446] wl_callback@49.done(1480747)
[3937650.474] wl_display@1.delete_id(49)
[3937986.137]  -> wl_pointer@8.button(4, 1481083, 272, 1)
[3937986.179]  -> wl_pointer@8.frame()
[3937986.186] wl_pointer@8.button(4, 1481083, 272, 1)
[3937986.232] wl_pointer@8.frame()
[3937987.161]  -> wl_surface@34.frame(new id wl_callback@49)
[3937987.200]  -> wl_surface@34.commit()
[3937987.207] wl_surface@34.frame(new id wl_callback@49)
[3937987.249] wl_surface@34.commit()
[3937991.912]  -> wl_callback@49.done(1481089)
[3937991.948]  -> wl_display@1.delete_id(49)
[3937992.894] wl_display@1.delete_id(49)
[3937992.919] wl_callback@49.done(1481089)
[3937992.930]  -> wl_surface@34.frame(new id wl_callback@49)
[3937992.954]  -> wl_surface@34.commit()
[3937992.960] wl_surface@34.frame(new id wl_callback@49)
[3937993.004] wl_surface@34.commit()
[3937994.150]  -> wl_surface@34.damage_buffer(0, 0, 1265, 113)
[3937994.205]  -> wl_surface@34.attach(wl_buffer@43, 0, 0)
[3937994.226]  -> wl_surface@34.commit()
[3937996.263] wl_surface@34.damage_buffer(0, 0, 1265, 113)
[3937997.052]  -> wl_callback@49.done(1481094)
[3937997.073]  -> wl_display@1.delete_id(49)
[3937997.078] wl_callback@49.done([3937997.089] wl_surface@34.attach(1481094wl_buffer@43)
, [3937997.139]  -> wl_surface@34.frame(0new id wl_callback@, 470)
)
[3937997.214]  -> wl_surface@34.commit([3937997.219] wl_surface@34.commit()
)
[3937997.254]  -> wl_buffer@39.release()
[3937997.268] wl_surface@34.frame(new id wl_callback@47)
[3937997.285] wl_buffer@39.release([3937997.293] wl_surface@34.commit()
)
[3937997.333] wl_display@1.delete_id(49)
[3937999.276]  -> wl_surface@34.damage_buffer(512, 369, 512, 251)
[3937999.311]  -> wl_surface@34.attach(wl_buffer@39, 0, 0)
[3937999.330]  -> wl_surface@34.commit()
[3938000.737] wl_surface@34.damage_buffer(512, 369, 512, 251)
[3938001.483]  -> wl_callback@47.done(1481098)
[3938001.503]  -> wl_display@1.delete_id(47)
[3938001.511] wl_callback@47.done([3938001.520] wl_surface@34.attach(1481098wl_buffer@39)
, [3938001.569]  -> wl_surface@34.frame(0new id wl_callback@, 490)
)
[3938001.646]  -> wl_surface@34.commit([3938001.651] wl_surface@34.commit()
)
[3938001.685]  -> wl_buffer@43.release()
[3938001.694] wl_display@1.delete_id([3938001.699] wl_surface@34.frame(47new id wl_callback@)
49[3938001.742] wl_buffer@43.release()
)
[3938001.770] wl_surface@34.commit()
[3938005.524]  -> wl_callback@49.done(1481102)
[3938005.538]  -> wl_display@1.delete_id(49)
[3938005.544] wl_callback@49.done(1481102)
[3938005.569]  -> wl_surface@34.frame(new id wl_callback@47)
[3938005.587]  -> wl_surface@34.commit()
[3938005.592] wl_surface@34.frame(new id wl_callback@47[3938005.611] wl_display@1.delete_id()
49[3938005.656] wl_surface@34.commit()
)
[3938009.444]  -> wl_callback@47.done(1481106)
[3938009.456]  -> wl_display@1.delete_id(47)
[3938009.464] wl_callback@47.done(1481106)
[3938009.485]  -> wl_surface@34.frame(new id wl_callback@49)
[3938009.504]  -> wl_surface@34.commit([3938009.507] wl_surface@34.frame()
new id wl_callback@49)
[3938009.545] wl_display@1.delete_id([3938009.550] wl_surface@34.commit(47)
)
[3938013.308]  -> wl_callback@49.done(1481110)
[3938013.321]  -> wl_display@1.delete_id(49[3938013.326] wl_callback@49.done()
1481110)
[3938013.358]  -> wl_surface@34.frame(new id wl_callback@47)
[3938013.375]  -> wl_surface@34.commit()
[3938013.379] wl_surface@34.frame(new id wl_callback@47[3938013.397] wl_display@1.delete_id()
49[3938013.426] wl_surface@34.commit()
)
[3938017.136]  -> wl_callback@47.done(1481114)
[3938017.149]  -> wl_display@1.delete_id(47)
[3938017.156] wl_callback@47.done(1481114)
[3938017.178]  -> wl_surface@34.frame(new id wl_callback@49)
[3938017.196]  -> wl_surface@34.commit()
[3938017.200] wl_surface@34.frame(new id wl_callback@49[3938017.219] wl_display@1.delete_id()
47[3938017.246] wl_surface@34.commit()
)
[3938020.927]  -> wl_callback@49.done(1481118)
[3938020.939]  -> wl_display@1.delete_id(49)
[3938020.946] wl_callback@49.done(1481118)
[3938020.970]  -> wl_surface@34.frame(new id wl_callback@47)
[3938020.989]  -> wl_surface@34.commit()
[3938020.992] wl_surface@34.frame(new id wl_callback@47[3938021.012] wl_display@1.delete_id()
49[3938021.039] wl_surface@34.commit()
)
[3938024.694]  -> wl_callback@47.done(1481121)
[3938024.706]  -> wl_display@1.delete_id(47[3938024.712] wl_callback@47.done()
1481121)
[3938024.744]  -> wl_surface@34.frame(new id wl_callback@49)
[3938024.761]  -> wl_surface@34.commit([3938024.765] wl_surface@34.frame()
new id wl_callback@49)
[3938024.804] wl_display@1.delete_id([3938024.810] wl_surface@34.commit(47)
)
[3938028.468]  -> wl_callback@49.done(1481125)
[3938028.481]  -> wl_display@1.delete_id(49)
[3938028.487] wl_callback@49.done(1481125)
[3938028.510]  -> wl_surface@34.frame(new id wl_callback@47)
[3938028.529]  -> wl_surface@34.commit([3938028.532] wl_surface@34.frame()
new id wl_callback@47)
[3938028.572] wl_display@1.delete_id([3938028.578] wl_surface@34.commit(49)
)
[3938032.220]  -> wl_callback@47.done(1481129)
[3938032.232]  -> wl_display@1.delete_id(47)
[3938032.239] wl_callback@47.done(1481129)
[3938032.261]  -> wl_surface@34.frame(new id wl_callback@49)
[3938032.279]  -> wl_surface@34.commit([3938032.282] wl_surface@34.frame()
new id wl_callback@49)
[3938032.320] wl_display@1.delete_id([3938032.326] wl_surface@34.commit(47)
)
[3938035.966]  -> wl_callback@49.done(1481133)
[3938035.978]  -> wl_display@1.delete_id(49)
[3938035.985] wl_callback@49.done(1481133)
[3938036.007]  -> wl_surface@34.frame(new id wl_callback@47)
[3938036.025]  -> wl_surface@34.commit([3938036.028] wl_surface@34.frame()
new id wl_callback@47)
[3938036.063] wl_display@1.delete_id([3938036.068] wl_surface@34.commit(49)
)
[3938039.712]  -> wl_callback@47.done(1481136)
[3938039.723]  -> wl_display@1.delete_id(47[3938039.729] wl_callback@47.done()
1481136)
[3938039.761]  -> wl_surface@34.frame(new id wl_callback@49)
[3938039.781]  -> wl_surface@34.commit()
[3938039.786] wl_surface@34.frame(new id wl_callback@49[3938039.803] wl_display@1.delete_id()
47[3938039.832] wl_surface@34.commit()
)
[3938043.472]  -> wl_callback@49.done(1481140)
[3938043.484]  -> wl_display@1.delete_id(49[3938043.490] wl_callback@49.done()
1481140)
[3938043.523]  -> wl_surface@34.frame(new id wl_callback@47)
[3938043.542]  -> wl_surface@34.commit([3938043.545] wl_surface@34.frame()
new id wl_callback@47)
[3938043.584] wl_display@1.delete_id([3938043.590] wl_surface@34.commit(49)
)
[3938047.235]  -> wl_callback@47.done(1481144)
[3938047.247]  -> wl_display@1.delete_id(47)
[3938047.253] wl_callback@47.done(1481144)
[3938047.283] wl_display@1.delete_id(47)
[3938089.855]  -> wl_pointer@8.button(5, 1481186, 272, 0)
[3938089.892]  -> wl_pointer@8.frame()
[3938089.899] wl_pointer@8.button([3938089.907]  -> wl_pointer@8.frame(5)
, 1481186, 272, 0)
[3938089.979] wl_pointer@8.frame()
[3938090.002] wl_pointer@8.frame()
[3938090.522]  -> wl_surface@34.frame(new id wl_callback@47)
[3938090.557]  -> wl_surface@34.commit()
[3938090.561] wl_surface@34.frame(new id wl_callback@47)
[3938090.595] wl_surface@34.commit()
[3938094.884]  -> wl_callback@47.done(1481192)
[3938094.938]  -> wl_display@1.delete_id(47)
kenz-gelsoft commented 2 days ago

GNOME Web menu popup with firefox patch

[2539162.405] wl_pointer@8.motion(4377226, 158.00000000, 39.00000000)
[2539162.458] wl_pointer@8.frame()
[2539417.886]  -> wl_pointer@8.button(11, 4377482, 272, 1)
[2539417.951]  -> wl_pointer@8.frame()
[2539417.966] wl_pointer@8.button(11, 4377482, 272, 1)
[2539418.029] wl_pointer@8.frame()
[2539481.711]  -> wl_pointer@8.button(12, 4377546, 272, 0)
[2539481.767]  -> wl_pointer@8.frame()
[2539481.776] wl_pointer@8.button([2539481.783]  -> wl_pointer@8.frame(12)
, 4377546, 272, 0)
[2539481.872] wl_pointer@8.frame()
[2539481.897] wl_pointer@8.frame()
[2539483.199]  -> wl_shm@4.create_pool(new id wl_shm_pool@33, fd 41, 3890460)
[2539483.246]  -> wl_shm_pool@33.create_buffer([2539483.249] wl_shm@4.create_pool(new id wl_buffer@new id wl_shm_pool@2833, , 0fd 41, , 12393890460, )
785, 4956, 0)
kenz-gelsoft commented 2 days ago

without patch

[2678545.250] wl_display@1.delete_id(28)
[2678545.322] wl_shm_pool@39.destroy()
[2678545.413]  -> wl_display@1.delete_id(39)
[2678545.428] wl_display@1.delete_id(39)
[2678559.801]  -> wl_pointer@8.button(7, 34624, 272, 1)
[2678559.891]  -> wl_pointer@8.frame()
[2678559.966] wl_pointer@8.button(7, 34624, 272, 1)
[2678560.029] wl_pointer@8.frame()
[2678560.497]  -> wl_shm@4.create_pool(new id wl_shm_pool@39, fd 41, 3890460)
[2678560.547]  -> wl_shm_pool@39.create_buffer([2678560.549] wl_shm@4.create_pool(new id wl_buffer@new id wl_shm_pool@2839, , 0fd 41, , 12393890460, )
785, 4956, 0)
[2678560.721] wl_shm_pool@39.create_buffer(new id wl_buffer@28, 0, 1239, 785, 4956, 0)
[2678561.494]  -> wl_surface@16.attach(wl_buffer@28, 0, 0)
[2678561.529]  -> wl_surface@16.set_buffer_scale([2678561.531] wl_surface@16.attach(1wl_buffer@28)
, [2678561.568]  -> wl_surface@16.damage(01218, , 047)
, [2678561.633] wl_surface@16.set_buffer_scale(211, )
738)
[2678561.690]  -> xdg_toplevel@26.set_min_size([2678561.692] wl_surface@16.damage(4401218, , 9347)
, [2678561.755]  -> xdg_toplevel@26.set_max_size(210, , 7380)
)
[2678561.821] xdg_toplevel@26.set_min_size([2678561.828]  -> xdg_surface@25.set_window_geometry(4400, , 930)
, [2678561.893] xdg_toplevel@26.set_max_size(12390, , 7850)
)
[2678561.965] xdg_surface@25.set_window_geometry(0, 0, 1239, 785)
[2678562.308]  -> wl_surface@16.frame(new id wl_callback@35)
[2678562.329]  -> wl_surface@16.commit([2678562.332] wl_surface@16.frame()
new id wl_callback@35)
[2678562.363] wl_surface@16.commit()
[2678562.370]  -> wl_buffer@29.release()
[2678562.378]  -> wl_shm@4.create_pool(new id wl_shm_pool@37, fd 42, 444960)
[2678562.417]  -> wl_shm_pool@37.create_buffer(new id wl_buffer@34, 0, 216, 515, 864, 0)
[2678563.052]  -> wl_callback@35.done(34627)
[2678563.067]  -> wl_display@1.delete_id(35)
[2678563.082] wl_shm@4.create_pool(new id wl_shm_pool@37, fd 42, 444960[2678563.105]  -> wl_surface@21.attach()
wl_buffer@34, 0, 0)
[2678563.170]  -> wl_surface@21.set_buffer_scale(1)
[2678563.185]  -> wl_surface@21.damage(21, 22, [2678563.201] wl_shm_pool@37.create_buffer(66new id wl_buffer@, 3446, )
0[2678563.298]  -> wl_surface@21.damage(, 129216, , 22515, , 66864, , 460)
)
[2678563.481] wl_surface@21.attach(wl_buffer@34, 0, 0)
[2678563.518] wl_surface@21.set_buffer_scale(1)
[2678563.533] wl_surface@21.damage(21, 22, 66, 46)
[2678563.577] wl_surface@21.damage(129, 22, [2678563.597]  -> wl_surface@21.frame(66new id wl_callback@, 3246)
)
[2678563.664]  -> wl_surface@21.commit([2678563.675] wl_surface@21.frame()
new id wl_callback@32)
[2678563.716] wl_display@1.delete_id([2678563.720] wl_surface@21.commit(35)
)
[2678563.750]  -> wl_buffer@40.release([2678563.758] wl_buffer@29.release()
)
[2678563.792]  -> wl_buffer@29.destroy()
[2678563.803]  -> wl_shm_pool@38.destroy()
[2678563.807] wl_buffer@29.destroy()
[2678563.827]  -> wl_display@1.delete_id(29)
[2678563.995] wl_callback@35.done(34627)
[2678564.012] wl_buffer@40.release()
[2678564.021]  -> wl_buffer@40.destroy()
[2678564.031]  -> wl_shm_pool@31.destroy()
[2678564.059] wl_display@1.delete_id(29)
[2678564.191] wl_shm_pool@38.destroy()
[2678564.264]  -> wl_display@1.delete_id(38)
[2678564.344] wl_display@1.delete_id(38)
[2678564.477]  -> wl_callback@32.done(34629)
[2678564.492]  -> wl_display@1.delete_id(32[2678564.499] wl_callback@32.done()
34629[2678564.524] wl_buffer@40.destroy()
)
[2678564.553] wl_display@1.delete_id([2678564.555]  -> wl_display@1.delete_id(3240)
)
[2678564.602] wl_shm_pool@31.destroy()
[2678564.621]  -> wl_display@1.delete_id(31)
[2678564.636]  -> wl_shm@4.create_pool(new id wl_shm_pool@32, fd 40, 444960)
[2678564.676]  -> wl_shm_pool@32.create_buffer([2678564.677] wl_shm@4.create_pool(new id wl_buffer@new id wl_shm_pool@3832, , 0fd 40, , 216444960, )
515, 864, 0)
[2678564.820] wl_shm_pool@32.create_buffer(new id wl_buffer@38, 0, 216, 515, 864, 0)
[2678565.450]  -> wl_surface@21.attach(wl_buffer@38, 0, 0)
[2678565.490]  -> wl_surface@21.set_buffer_scale([2678565.492] wl_surface@21.attach(1wl_buffer@38)
, [2678565.531]  -> wl_surface@21.damage(021, , 022)
, [2678565.595] wl_surface@21.set_buffer_scale(1741, )
46)
[2678565.653] wl_surface@21.damage(21, 22, 174, 46)
[2678565.763]  -> wl_surface@21.frame(new id wl_callback@29)
[2678565.784]  -> wl_surface@21.commit([2678565.786] wl_surface@21.frame()
new id wl_callback@29)
[2678565.816] wl_display@1.delete_id([2678565.819] wl_surface@21.commit(40)
)
[2678565.845]  -> wl_buffer@34.release([2678565.854] wl_display@1.delete_id()
31)
[2678565.886] wl_buffer@34.release()
[2678565.895]  -> wl_buffer@34.destroy()
[2678565.906]  -> wl_shm_pool@37.destroy()
[2678566.008] wl_buffer@34.destroy()
[2678566.019]  -> wl_display@1.delete_id(34)
[2678566.038] wl_display@1.delete_id(34)
[2678566.226]  -> wl_callback@29.done(34630)
[2678566.241]  -> wl_display@1.delete_id(29[2678566.245] wl_callback@29.done()
34630[2678566.269] wl_shm_pool@37.destroy()
)
[2678566.294] wl_display@1.delete_id(29)
[2678566.311]  -> wl_display@1.delete_id(37)
[2678566.335] wl_display@1.delete_id(37)
[2678580.740]  -> wl_shm@4.create_pool(new id wl_shm_pool@37, fd 42, 3890460)
[2678580.802]  -> wl_shm_pool@37.create_buffer([2678580.806] wl_shm@4.create_pool(new id wl_buffer@new id wl_shm_pool@2937, , 0fd 42, , 12393890460, )
785, 4956, 0)
[2678581.014] wl_shm_pool@37.create_buffer(new id wl_buffer@29, 0, 1239, 785, 4956, 0)
[2678581.833]  -> wl_surface@16.attach(wl_buffer@29, 0, 0)
[2678581.869]  -> wl_surface@16.set_buffer_scale([2678581.872] wl_surface@16.attach(1wl_buffer@29)
, [2678581.912]  -> wl_surface@16.damage(01218, , 047)
, [2678581.982] wl_surface@16.set_buffer_scale(211, )
738)
[2678582.040]  -> xdg_toplevel@26.set_min_size([2678582.043] wl_surface@16.damage(4401218, , 9347)
, [2678582.110]  -> xdg_toplevel@26.set_max_size(210, , 7380)
)
[2678582.181] xdg_toplevel@26.set_min_size([2678582.188]  -> xdg_surface@25.set_window_geometry(4400, , 930)
, [2678582.257] xdg_toplevel@26.set_max_size(12390, , 7850)
)
[2678582.334] xdg_surface@25.set_window_geometry(0, 0, 1239, 785)
[2678582.741]  -> wl_surface@16.frame(new id wl_callback@34)
[2678582.763]  -> wl_surface@16.commit([2678582.766] wl_surface@16.frame()
new id wl_callback@34)
[2678582.798] wl_surface@16.commit()
[2678582.804]  -> wl_buffer@28.release()
[2678582.831]  -> wl_shm@4.create_pool(new id wl_shm_pool@31, fd 43, 444960)
[2678582.872]  -> wl_shm_pool@31.create_buffer(new id wl_buffer@40, 0, 216, 515, 864, 0)
[2678583.469]  -> wl_surface@21.attach(wl_buffer@40, 0, 0)
[2678583.503]  -> wl_callback@34.done([2678583.511]  -> wl_surface@21.set_buffer_scale(346481)
)
[2678583.569]  -> wl_display@1.delete_id([2678583.571]  -> wl_surface@21.damage(3421)
, 22, 173, 46)
[2678583.698] wl_shm@4.create_pool(new id wl_shm_pool@31, fd 43, 444960)
[2678583.737] wl_shm_pool@31.create_buffer(new id wl_buffer@40, 0, 216, 515, 864, 0)
[2678583.802] wl_surface@21.attach(wl_buffer@40[2678583.806]  -> wl_surface@21.frame(, new id wl_callback@035, )
0[2678583.865]  -> wl_surface@21.commit()
)
[2678583.886] wl_surface@21.set_buffer_scale(1)
[2678583.904] wl_display@1.delete_id([2678583.906] wl_surface@21.damage(3421)
, [2678583.942] wl_buffer@28.release(22)
, [2678583.972]  -> wl_buffer@28.destroy(173)
, [2678584.001]  -> wl_shm_pool@39.destroy(46)
)
[2678584.037] wl_surface@21.frame(new id wl_callback@35)
[2678584.051] wl_surface@21.commit()
[2678584.057]  -> wl_buffer@38.release()
[2678584.066] wl_buffer@28.destroy()
[2678584.077]  -> wl_display@1.delete_id(28)
[2678584.214] wl_callback@34.done(34648)
[2678584.232] wl_buffer@38.release()
[2678584.241]  -> wl_buffer@38.destroy()
[2678584.251]  -> wl_shm_pool@32.destroy()
[2678584.277] wl_display@1.delete_id(28)
[2678584.406] wl_shm_pool@39.destroy()
[2678584.480]  -> wl_display@1.delete_id(39)
[2678584.521] wl_display@1.delete_id(39)
[2678584.684]  -> wl_callback@35.done(34649)
[2678584.699]  -> wl_display@1.delete_id(35[2678584.705] wl_callback@35.done()
34649[2678584.729] wl_buffer@38.destroy()
)
[2678584.757] wl_display@1.delete_id([2678584.759]  -> wl_display@1.delete_id(3538)
)
[2678584.807] wl_shm_pool@32.destroy()
[2678584.830]  -> wl_display@1.delete_id(32)
[2678584.844]  -> wl_shm@4.create_pool(new id wl_shm_pool@35, fd 40, 444960)
[2678584.883]  -> wl_shm_pool@35.create_buffer([2678584.884] wl_shm@4.create_pool(new id wl_buffer@new id wl_shm_pool@3935, , 0fd 40, , 216444960, )
515, 864, 0)
[2678585.029] wl_shm_pool@35.create_buffer(new id wl_buffer@39, 0, 216, 515, 864, 0)
[2678585.544]  -> wl_surface@21.attach(wl_buffer@39, 0, 0)
[2678585.583]  -> wl_surface@21.set_buffer_scale([2678585.585] wl_surface@21.attach(1wl_buffer@39)
, [2678585.624]  -> wl_surface@21.damage(021, , 022)
, [2678585.688] wl_surface@21.set_buffer_scale(1701, )
46)
[2678585.746] wl_surface@21.damage(21, 22, 170, 46)
[2678585.850]  -> wl_surface@21.frame(new id wl_callback@28)
[2678585.870]  -> wl_surface@21.commit([2678585.873] wl_surface@21.frame()
new id wl_callback@28)
[2678585.903] wl_display@1.delete_id([2678585.906] wl_surface@21.commit(38)
)
[2678585.932]  -> wl_buffer@40.release([2678585.941] wl_display@1.delete_id()
32)
[2678585.973] wl_buffer@40.release()
[2678585.982]  -> wl_buffer@40.destroy()
[2678585.993]  -> wl_shm_pool@31.destroy()
[2678586.094] wl_buffer@40.destroy()
[2678586.104]  -> wl_display@1.delete_id(40)
[2678586.123] wl_display@1.delete_id(40)
[2678586.322]  -> wl_callback@28.done(34650)
[2678586.337]  -> wl_display@1.delete_id(28[2678586.341] wl_callback@28.done()
34650[2678586.365] wl_shm_pool@31.destroy()
)
[2678586.390] wl_display@1.delete_id(28)
[2678586.407]  -> wl_display@1.delete_id(31)
[2678586.429] wl_display@1.delete_id(31)
[2678601.196]  -> wl_shm@4.create_pool(new id wl_shm_pool@31, fd 41, 3890460)
[2678601.258]  -> wl_shm_pool@31.create_buffer([2678601.260] wl_shm@4.create_pool(new id wl_buffer@new id wl_shm_pool@2831, , 0fd 41, , 12393890460, )
785, 4956, 0)
[2678601.469] wl_shm_pool@31.create_buffer(new id wl_buffer@28, 0, 1239, 785, 4956, 0)
[2678602.436]  -> wl_surface@16.attach(wl_buffer@28, 0, 0)
[2678602.472]  -> wl_surface@16.set_buffer_scale([2678602.474] wl_surface@16.attach(1wl_buffer@28)
, [2678602.511]  -> wl_surface@16.damage(01218, , 047)
, [2678602.575] wl_surface@16.set_buffer_scale(211, )
738)
[2678602.631]  -> xdg_toplevel@26.set_min_size([2678602.633] wl_surface@16.damage(4401218, , 9347)
, [2678602.696]  -> xdg_toplevel@26.set_max_size(210, , 7380)
)
[2678602.762] xdg_toplevel@26.set_min_size([2678602.769]  -> xdg_surface@25.set_window_geometry(4400, , 930)
, [2678602.834] xdg_toplevel@26.set_max_size(12390, , 7850)
)
[2678602.906] xdg_surface@25.set_window_geometry(0, 0, 1239, 785)
[2678603.286]  -> wl_surface@16.frame(new id wl_callback@40)
[2678603.308]  -> wl_surface@16.commit([2678603.311] wl_surface@16.frame()
new id wl_callback@40)
[2678603.343] wl_surface@16.commit()
[2678603.349]  -> wl_buffer@29.release()
[2678603.376]  -> wl_shm@4.create_pool(new id wl_shm_pool@32, fd 43, 444960)
[2678603.416]  -> wl_shm_pool@32.create_buffer(new id wl_buffer@38, 0, 216, 515, 864, 0)
[2678603.990]  -> wl_surface@21.attach(wl_buffer@38, 0, 0)
[2678604.030]  -> wl_surface@21.set_buffer_scale(1)
[2678604.045]  -> wl_surface@21.damage([2678604.046]  -> wl_callback@40.done(2134668, )
22, 169, 46)
[2678604.124]  -> wl_display@1.delete_id(40)
[2678604.196] wl_shm@4.create_pool(new id wl_shm_pool@32, fd 43, 444960)
[2678604.243] wl_shm_pool@32.create_buffer(new id wl_buffer@38, 0, 216, 515, 864, 0[2678604.286]  -> wl_surface@21.frame()
new id wl_callback@34)
[2678604.321] wl_surface@21.attach([2678604.324]  -> wl_surface@21.commit(wl_buffer@38)
, 0, [2678604.363] wl_display@1.delete_id(040)
)
[2678604.399] wl_surface@21.set_buffer_scale([2678604.407] wl_buffer@29.release(1)
)
[2678604.439]  -> wl_buffer@29.destroy([2678604.446] wl_surface@21.damage()
21[2678604.474]  -> wl_shm_pool@37.destroy(, )
22, 169, 46)
[2678604.532] wl_surface@21.frame(new id wl_callback@34)
[2678604.547] wl_surface@21.commit()
[2678604.554]  -> wl_buffer@39.release()
[2678604.567] wl_buffer@29.destroy()
[2678604.580]  -> wl_display@1.delete_id(29)
[2678604.687] wl_callback@40.done(34668)
[2678604.703] wl_buffer@39.release()
[2678604.712]  -> wl_buffer@39.destroy()
[2678604.723]  -> wl_shm_pool@35.destroy()
[2678604.749] wl_display@1.delete_id(29)
[2678604.871] wl_shm_pool@37.destroy()
[2678604.958]  -> wl_display@1.delete_id(37)
[2678604.989] wl_display@1.delete_id(37)
[2678605.170]  -> wl_callback@34.done(34669)
[2678605.188]  -> wl_display@1.delete_id(34[2678605.198] wl_callback@34.done()
34669)
[2678605.230] wl_buffer@39.destroy()
[2678605.239] wl_display@1.delete_id([2678605.245]  -> wl_display@1.delete_id(3439)
)
[2678605.294] wl_shm_pool@35.destroy()
[2678605.317]  -> wl_display@1.delete_id(35)
[2678605.331]  -> wl_shm@4.create_pool(new id wl_shm_pool@34, fd 40, 444960)
[2678605.370]  -> wl_shm_pool@34.create_buffer([2678605.371] wl_shm@4.create_pool(new id wl_buffer@new id wl_shm_pool@3734, , 0fd 40, , 216444960, )
515, 864, 0)
[2678605.517] wl_shm_pool@34.create_buffer(new id wl_buffer@37, 0, 216, 515, 864, 0)
[2678605.782]  -> wl_surface@21.attach(wl_buffer@37, 0, 0)
[2678605.821]  -> wl_surface@21.set_buffer_scale([2678605.823] wl_surface@21.attach(1wl_buffer@37)
, [2678605.862]  -> wl_surface@21.damage(081, , 027)
, [2678605.926] wl_surface@21.set_buffer_scale(1081, )
34)
[2678605.982]  -> wl_surface@21.damage([2678605.984] wl_surface@21.damage(13581, , 6127, , 54108, , 134)
)
[2678606.111] wl_surface@21.damage(135, 61, 54, 1)
[2678606.215]  -> wl_surface@21.frame(new id wl_callback@29)
[2678606.236]  -> wl_surface@21.commit([2678606.239] wl_surface@21.frame()
new id wl_callback@29)
[2678606.268] wl_display@1.delete_id([2678606.271] wl_surface@21.commit(39)
)
[2678606.298]  -> wl_buffer@38.release([2678606.306] wl_display@1.delete_id()
35)
[2678606.338] wl_buffer@38.release()
[2678606.347]  -> wl_buffer@38.destroy()
[2678606.358]  -> wl_shm_pool@32.destroy()
[2678606.459] wl_buffer@38.destroy()
[2678606.470]  -> wl_display@1.delete_id(38)
[2678606.489] wl_display@1.delete_id(38)
[2678606.680]  -> wl_callback@29.done(34671)
[2678606.695]  -> wl_display@1.delete_id(29[2678606.699] wl_callback@29.done()
34671)
[2678606.727] wl_shm_pool@32.destroy([2678606.736] wl_display@1.delete_id()
29)
[2678606.768]  -> wl_display@1.delete_id(32)
[2678606.785] wl_display@1.delete_id(32)
[2678621.628]  -> wl_shm@4.create_pool(new id wl_shm_pool@32, fd 42, 3890460)
[2678621.689]  -> wl_shm_pool@32.create_buffer([2678621.691] wl_shm@4.create_pool(new id wl_buffer@new id wl_shm_pool@2932, , 0fd 42, , 12393890460, )
785, 4956, 0)
[2678621.903] wl_shm_pool@32.create_buffer(new id wl_buffer@29, 0, 1239, 785, 4956, 0)
[2678622.742]  -> wl_surface@16.attach(wl_buffer@29, 0, 0)
[2678622.778]  -> wl_surface@16.set_buffer_scale([2678622.781] wl_surface@16.attach(1wl_buffer@29)
, [2678622.819]  -> wl_surface@16.damage(01218, , 047)
, [2678622.890] wl_surface@16.set_buffer_scale(211, )
738)
[2678622.950]  -> xdg_toplevel@26.set_min_size([2678622.952] wl_surface@16.damage(4401218, , 9347)
, [2678623.020]  -> xdg_toplevel@26.set_max_size(210, , 7380)
)
[2678623.091] xdg_toplevel@26.set_min_size([2678623.099]  -> xdg_surface@25.set_window_geometry(4400, , 930)
, [2678623.169] xdg_toplevel@26.set_max_size(12390, , 7850)
)
[2678623.247] xdg_surface@25.set_window_geometry(0, 0, 1239, 785)
[2678623.624]  -> wl_surface@16.frame(new id wl_callback@38)
[2678623.645]  -> wl_surface@16.commit([2678623.648] wl_surface@16.frame()
new id wl_callback@38)
[2678623.682] wl_surface@16.commit()
[2678623.689]  -> wl_buffer@28.release()
[2678623.712]  -> wl_shm@4.create_pool(new id wl_shm_pool@35, fd 43, 444960)
[2678623.753]  -> wl_shm_pool@35.create_buffer(new id wl_buffer@39, 0, 216, 515, 864, 0)
[2678624.041]  -> wl_surface@21.attach(wl_buffer@39, 0, 0)
[2678624.080]  -> wl_surface@21.set_buffer_scale(1)
[2678624.096]  -> wl_surface@21.damage(81, 27, 108, 34)
[2678624.133]  -> wl_surface@21.damage(135, 61, 54, 1)
[2678624.314]  -> wl_surface@21.frame(new id wl_callback@40)
[2678624.335]  -> wl_surface@21.commit()
[2678624.354] wl_buffer@28.release()
[2678624.364]  -> wl_buffer@28.destroy()
[2678624.374]  -> wl_shm_pool@31.destroy()
[2678624.397]  -> wl_callback@38.done(34688)
[2678624.413]  -> wl_display@1.delete_id(38)
[2678624.427] wl_shm@4.create_pool(new id wl_shm_pool@35, fd 43, 444960)
[2678624.470] wl_callback@38.done(34688)
[2678624.492] wl_display@1.delete_id(38)
[2678624.524] wl_shm_pool@35.create_buffer(new id wl_buffer@39, 0, 216, 515, 864, 0)
[2678624.582] wl_surface@21.attach(wl_buffer@39, 0, 0)
[2678624.602] wl_surface@21.set_buffer_scale(1)
[2678624.611] wl_surface@21.damage(81, 27, 108, 34)
[2678624.635] wl_surface@21.damage(135, 61, 54, 1)
[2678624.660] wl_surface@21.frame(new id wl_callback@40)
[2678624.672] wl_surface@21.commit()
[2678624.678]  -> wl_buffer@37.release()
[2678624.688] wl_buffer@28.destroy()
[2678624.692] wl_buffer@37.release([2678624.700]  -> wl_display@1.delete_id()
28[2678624.730]  -> wl_buffer@37.destroy()
)
[2678624.774]  -> wl_shm_pool@34.destroy()
[2678624.801] wl_display@1.delete_id(28)
[2678624.972] wl_shm_pool@31.destroy()
[2678625.047]  -> wl_display@1.delete_id(31)
[2678625.062] wl_display@1.delete_id(31)
[2678625.252]  -> wl_callback@40.done(34689)
[2678625.267]  -> wl_display@1.delete_id(40[2678625.272] wl_callback@40.done()
34689[2678625.295] wl_buffer@37.destroy()
)
[2678625.322] wl_display@1.delete_id([2678625.324]  -> wl_display@1.delete_id(4037)
)
[2678625.370] wl_shm_pool@34.destroy()
[2678625.393]  -> wl_display@1.delete_id(34)
[2678625.406]  -> wl_shm@4.create_pool(new id wl_shm_pool@40, fd 40, 444960)
[2678625.445]  -> wl_shm_pool@40.create_buffer([2678625.446] wl_shm@4.create_pool(new id wl_buffer@new id wl_shm_pool@3140, , 0fd 40, , 216444960, )
515, 864, 0)
[2678625.590] wl_shm_pool@40.create_buffer(new id wl_buffer@31, 0, 216, 515, 864, 0)
[2678625.766]  -> wl_surface@21.attach(wl_buffer@31, 0, 0)
[2678625.804]  -> wl_surface@21.set_buffer_scale([2678625.806] wl_surface@21.attach(1wl_buffer@31)
, [2678625.845]  -> wl_surface@21.damage(081, , 027)
, [2678625.909] wl_surface@21.set_buffer_scale(541, )
34)
[2678625.967] wl_surface@21.damage(81, 27, 54, 34)
[2678626.072]  -> wl_surface@21.frame(new id wl_callback@28)
[2678626.092]  -> wl_surface@21.commit([2678626.095] wl_surface@21.frame()
new id wl_callback@28)
[2678626.124] wl_display@1.delete_id([2678626.129] wl_surface@21.commit(37)
)
[2678626.157]  -> wl_buffer@39.release([2678626.166] wl_display@1.delete_id()
34)
[2678626.198] wl_buffer@39.release()
[2678626.208]  -> wl_buffer@39.destroy()
[2678626.218]  -> wl_shm_pool@35.destroy()
[2678626.318] wl_buffer@39.destroy()
[2678626.328]  -> wl_display@1.delete_id(39)
[2678626.347] wl_display@1.delete_id(39)
[2678626.534]  -> wl_callback@28.done(34691)
[2678626.549]  -> wl_display@1.delete_id(28[2678626.554] wl_callback@28.done()
34691[2678626.578] wl_shm_pool@35.destroy()
)
[2678626.603] wl_display@1.delete_id(28)
[2678626.619]  -> wl_display@1.delete_id(35)
[2678626.642] wl_display@1.delete_id(35)
[2678641.883]  -> wl_shm@4.create_pool(new id wl_shm_pool@35, fd 41, 3890460)
[2678641.944]  -> wl_shm_pool@35.create_buffer([2678641.945] wl_shm@4.create_pool(new id wl_buffer@new id wl_shm_pool@2835, , 0fd 41, , 12393890460, )
785, 4956, 0)
[2678642.157] wl_shm_pool@35.create_buffer(new id wl_buffer@28, 0, 1239, 785, 4956, 0)
[2678642.923]  -> wl_surface@16.attach(wl_buffer@28, 0, 0)
[2678642.958]  -> wl_surface@16.set_buffer_scale([2678642.961] wl_surface@16.attach(1wl_buffer@28)
, [2678643.000]  -> wl_surface@16.damage(01218, , 047)
, [2678643.072] wl_surface@16.set_buffer_scale(211, )
738)
[2678643.130]  -> xdg_toplevel@26.set_min_size([2678643.132] wl_surface@16.damage(4401218, , 9347)
, [2678643.200]  -> xdg_toplevel@26.set_max_size(210, , 7380)
)
[2678643.269] xdg_toplevel@26.set_min_size([2678643.277]  -> xdg_surface@25.set_window_geometry(4400, , 930)
, [2678643.341] xdg_toplevel@26.set_max_size(12390, , 7850)
)
[2678643.414] xdg_surface@25.set_window_geometry(0, 0, 1239, 785)
[2678643.780]  -> wl_surface@16.frame(new id wl_callback@39)
[2678643.802]  -> wl_surface@16.commit([2678643.805] wl_surface@16.frame()
new id wl_callback@39)
[2678643.837] wl_surface@16.commit()
[2678643.843]  -> wl_buffer@29.release()
[2678643.862]  -> wl_shm@4.create_pool(new id wl_shm_pool@34, fd 43, 444960)
[2678643.901]  -> wl_shm_pool@34.create_buffer(new id wl_buffer@37, 0, 216, 515, 864, 0)
[2678644.144]  -> wl_surface@21.attach(wl_buffer@37, 0, 0)
[2678644.184]  -> wl_surface@21.set_buffer_scale(1)
[2678644.198]  -> wl_surface@21.damage(81, 27, 54, 34)
[2678644.376]  -> wl_surface@21.frame(new id wl_callback@38)
[2678644.397]  -> wl_surface@21.commit()
[2678644.416] wl_buffer@29.release()
[2678644.426]  -> wl_buffer@29.destroy()
[2678644.436]  -> wl_shm_pool@32.destroy()
[2678644.577]  -> wl_callback@39.done(34709)
[2678644.592]  -> wl_display@1.delete_id(39[2678644.598] wl_callback@39.done()
34709[2678644.622] wl_shm@4.create_pool()
new id wl_shm_pool@34[2678644.651] wl_display@1.delete_id(, 39fd 43)
, 444960)
[2678644.761] wl_shm_pool@34.create_buffer(new id wl_buffer@37, 0, 216, 515, 864, 0)
[2678644.817] wl_surface@21.attach(wl_buffer@37, 0, 0)
[2678644.837] wl_surface@21.set_buffer_scale(1)
[2678644.846] wl_surface@21.damage(81, 27, 54, 34)
[2678644.871] wl_surface@21.frame(new id wl_callback@38)
[2678644.882] wl_surface@21.commit()
[2678644.888]  -> wl_buffer@31.release()
[2678644.898] wl_buffer@29.destroy()
[2678644.902] wl_buffer@31.release([2678644.909]  -> wl_display@1.delete_id()
29[2678644.940]  -> wl_buffer@31.destroy()
)
[2678644.984]  -> wl_shm_pool@40.destroy()
[2678645.011] wl_display@1.delete_id(29)
[2678645.210] wl_shm_pool@32.destroy()
[2678645.284]  -> wl_display@1.delete_id(32)
[2678645.299] wl_display@1.delete_id(32)
[2678645.487]  -> wl_callback@38.done(34710)
[2678645.501]  -> wl_display@1.delete_id(38[2678645.506] wl_callback@38.done()
34710[2678645.529] wl_buffer@31.destroy()
)
[2678645.556] wl_display@1.delete_id([2678645.558]  -> wl_display@1.delete_id(3831)
)
[2678645.604] wl_shm_pool@40.destroy()
[2678645.626]  -> wl_display@1.delete_id(40)
[2678645.636]  -> wl_shm@4.create_pool(new id wl_shm_pool@38, fd 40, 444960)
[2678645.679] wl_shm@4.create_pool([2678645.679]  -> wl_shm_pool@38.create_buffer(new id wl_shm_pool@new id wl_buffer@3832, , fd 400, , 444960216)
, 515, 864, 0)
[2678645.822] wl_shm_pool@38.create_buffer(new id wl_buffer@32, 0, 216, 515, 864, 0)
[2678645.994]  -> wl_surface@21.attach(wl_buffer@32, 0, 0)
[2678646.032]  -> wl_surface@21.set_buffer_scale([2678646.034] wl_surface@21.attach(1wl_buffer@32)
, [2678646.072]  -> wl_surface@21.damage(081, , 027)
, [2678646.136] wl_surface@21.set_buffer_scale(541, )
34)
[2678646.194] wl_surface@21.damage(81, 27, 54, 34)
[2678646.299]  -> wl_surface@21.frame(new id wl_callback@29)
[2678646.319]  -> wl_surface@21.commit([2678646.322] wl_surface@21.frame()
new id wl_callback@29)
[2678646.351] wl_display@1.delete_id([2678646.356] wl_surface@21.commit(31)
)
[2678646.384]  -> wl_buffer@37.release([2678646.393] wl_display@1.delete_id()
40)
[2678646.425] wl_buffer@37.release()
[2678646.434]  -> wl_buffer@37.destroy()
[2678646.444]  -> wl_shm_pool@34.destroy()
[2678646.546] wl_buffer@37.destroy()
[2678646.556]  -> wl_display@1.delete_id(37)
[2678646.574] wl_display@1.delete_id(37)
[2678646.761]  -> wl_callback@29.done(34711)
[2678646.776]  -> wl_display@1.delete_id(29[2678646.781] wl_callback@29.done()
34711)
[2678646.810] wl_shm_pool@34.destroy([2678646.819] wl_display@1.delete_id()
29)
[2678646.852]  -> wl_display@1.delete_id(34)
[2678646.870] wl_display@1.delete_id(34)
[2678647.580]  -> wl_pointer@8.button(8, 34712, 272, 0)
[2678647.614]  -> wl_pointer@8.frame()
[2678647.619] wl_pointer@8.button(8, 34712, 272, 0)
[2678647.663] wl_pointer@8.frame()
[2678647.917]  -> wl_shm@4.create_pool(new id wl_shm_pool@34, fd 42, 444960)
[2678647.959]  -> wl_shm_pool@34.create_buffer([2678647.960] wl_shm@4.create_pool(new id wl_buffer@new id wl_shm_pool@2934, , 0fd 42, , 216444960, )
515, 864, 0)
kenz-gelsoft commented 1 day ago

https://wayland-book.com/surfaces-in-depth/surface-regions.html

Does the input region involves?

kenz-gelsoft commented 1 day ago

https://wayland-book.com/

I finished reading the wayland book.

Will look into the implementation how it should be and find what is wrong.

Suspicious part:

kenz-gelsoft commented 1 day ago

Firefox without patch for firefox

[1490359.279] wl_surface@34.frame(new id wl_callback@36[1490359.300] wl_display@1.delete_id()
45[1490359.324] wl_surface@34.commit()
)
[1490363.010]  -> wl_callback@36.done(296104459)
[1490363.026]  -> wl_display@1.delete_id(36[1490363.032] wl_callback@36.done()
296104459)
[1490363.074] wl_display@1.delete_id(36)
[1490613.451]  -> wl_pointer@8.button(6, 296104710, 272, 1)
[1490613.497]  -> wl_pointer@8.frame()
[1490613.506] wl_pointer@8.button(6, 296104710, 272, 1)
[1490613.552] wl_pointer@8.frame()

in this case frame callback.done posted but not called?

kenz-gelsoft commented 1 day ago

No it called. Just logging misformatted.

[1490363.032] wl_callback@36.done()

In Firefox without patch case, it didn't cause wl_surface requests/events. This may be a result of misdelivering events to unexpected surface.

kenz-gelsoft commented 1 day ago

input region may be specified empty on firefox GL surface with intention parent surface will handle events. but doesnot support that correctly.

kenz-gelsoft commented 1 day ago

grabbing pointer misbehaves on epiphany.

kenz-gelsoft commented 1 day ago

or we create subsurface unintentionally for xdg_popup on epiphany.