Open kenz-gelsoft opened 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?
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.
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?
https://github.com/wmww/wayland-debug/blob/master/readme.md
This tool or at least WAYLAND_DEBUG=1 will work?
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)
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)
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)
https://wayland-book.com/surfaces-in-depth/surface-regions.html
Does the input region involves?
I finished reading the wayland book.
Will look into the implementation how it should be and find what is wrong.
Suspicious part:
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?
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.
input region may be specified empty on firefox GL surface with intention parent surface will handle events. but doesnot support that correctly.
grabbing pointer misbehaves on epiphany.
or we create subsurface unintentionally for xdg_popup on epiphany.
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.