Closed mitchmindtree closed 7 years ago
Seeing as the example works fine on weston but not on mutter, I've posted the issue to the gnome bugtracker here.
One person on the wayland IRC yesterday mentioned that the problem might be due to invalid input and as a result mutter refuses to create conigure
events. They mentioned that it's quite possible that the reason it works on weston and not on mutter is that it is likely that weston has a bug in its input validation. @vberger does this sound like it might be possible? Where should I look in the codebase to verify the input handling?
It's difficult to say, what kind of "invalid input" would they be mentioning?
Regarding this PR, and the integration of wdg_shell
into wayland-window:
First of all, thanks a lot for starting to tackle this ! š
Now, the way I was thinking to organize this:
wl_shell
specific and xdg_shell
specific logic into two other filesDecoratedSurface
struct an opaque wrapper around an enum over two possible implementations, one for each protocolAlso, regarding the globals advertized:
weston_desktop_shell
and gtk_shell1
are, I belive, special globals for a client to register as a desktop shell, so as a building block of the UI of the desktop environment. Thus they are not of a concern to use.wdg_shell
that weston exposes is probably (?) a relic from before the unstable naming scheme from protocol was decided, and is likely here only for legacy reasons.Oh, okay, I checked the IRC logs about this input validation, and the serial things. That could have been a cause for trouble indeed...
However, it looks like we are indeed sending the proper values, given your logs :
[814139.649] wl_pointer@21.button(20109, 10070859, 272, 1)
[814139.727] -> wl_shell_surface@20.resize(wl_seat@10, 20109, 8)
here the serial (20109) is correctly the same...
Could you generate a wayland trace from a simple program that resizes / moves correctly in mutter, so that we could compare ? (maybe one of the weston sample apps?)
First of all, thanks a lot for starting to tackle this ! š
No problem at all! Thanks for the library and for taking your time to help debug this with me - much appreciated!
Now, the way I was thinking to organize this...
Agreed, this all sounds good to me :+1:
Could you generate a wayland trace from a simple program that resizes / moves correctly in mutter, so that we could compare ? (maybe one of the weston sample apps?)
Sure thing!
The following is the output of the WAYLAND_DEBUG=1 weston-eventdemo
app where I
Ctrl+C
.[3937602.171] -> wl_display@1.get_registry(new id wl_registry@2)
[3937602.347] -> wl_display@1.sync(new id wl_callback@3)
[3937602.567] wl_display@1.delete_id(3)
[3937602.607] wl_registry@2.global(1, "wl_drm", 2)
[3937602.653] wl_registry@2.global(2, "wl_compositor", 3)
[3937602.688] -> wl_registry@2.bind(2, "wl_compositor", 3, new id [unknown]@4)
[3937602.743] wl_registry@2.global(3, "wl_shm", 1)
[3937602.776] -> wl_registry@2.bind(3, "wl_shm", 1, new id [unknown]@5)
[3937602.818] wl_registry@2.global(5, "wl_output", 2)
[3937602.850] -> wl_registry@2.bind(5, "wl_output", 2, new id [unknown]@6)
[3937602.895] wl_registry@2.global(6, "wl_data_device_manager", 3)
[3937602.926] -> wl_registry@2.bind(6, "wl_data_device_manager", 3, new id [unknown]@7)
[3937602.968] wl_registry@2.global(7, "gtk_primary_selection_device_manager", 1)
[3937603.002] wl_registry@2.global(8, "zxdg_shell_v6", 1)
[3937603.033] -> wl_registry@2.bind(8, "zxdg_shell_v6", 1, new id [unknown]@8)
[3937603.075] wl_registry@2.global(9, "wl_shell", 1)
[3937603.106] wl_registry@2.global(10, "gtk_shell1", 1)
[3937603.140] wl_registry@2.global(11, "wl_subcompositor", 1)
[3937603.171] -> wl_registry@2.bind(11, "wl_subcompositor", 1, new id [unknown]@9)
[3937603.212] wl_registry@2.global(12, "zwp_pointer_gestures_v1", 1)
[3937603.246] wl_registry@2.global(13, "zwp_tablet_manager_v2", 1)
[3937603.277] wl_registry@2.global(14, "wl_seat", 5)
[3937603.308] -> wl_registry@2.bind(14, "wl_seat", 5, new id [unknown]@10)
[3937603.352] -> wl_data_device_manager@7.get_data_device(new id wl_data_device@11, wl_seat@10)
[3937603.383] -> wl_compositor@4.create_surface(new id wl_surface@12)
[3937603.415] wl_registry@2.global(15, "zwp_relative_pointer_manager_v1", 1)
[3937603.448] -> wl_registry@2.bind(15, "zwp_relative_pointer_manager_v1", 1, new id [unknown]@13)
[3937603.493] wl_registry@2.global(16, "zwp_pointer_constraints_v1", 1)
[3937603.525] -> wl_registry@2.bind(16, "zwp_pointer_constraints_v1", 1, new id [unknown]@14)
[3937603.566] wl_registry@2.global(17, "zxdg_exporter_v1", 1)
[3937603.596] wl_registry@2.global(18, "zxdg_importer_v1", 1)
[3937603.630] wl_callback@3.done(300955)
[3937603.787] -> wl_shm@5.create_pool(new id wl_shm_pool@3, fd 8, 4096)
[3937604.308] -> wl_shm_pool@3.resize(12288)
[3937604.526] -> wl_shm_pool@3.resize(28672)
[3937604.978] -> wl_shm_pool@3.resize(61440)
[3937605.790] -> wl_shm_pool@3.resize(126976)
[3937611.229] -> wl_shm_pool@3.resize(258048)
[3937611.590] -> wl_shm_pool@3.resize(520192)
[3937622.655] -> wl_shm_pool@3.resize(1044480)
[3937626.101] -> wl_shm_pool@3.resize(2093056)
[3937654.634] -> wl_compositor@4.create_surface(new id wl_surface@15)
[3937654.665] -> zxdg_shell_v6@8.get_xdg_surface(new id zxdg_surface_v6@16, wl_surface@15)
[3937654.673] -> zxdg_surface_v6@16.get_toplevel(new id zxdg_toplevel_v6@17)
[3937654.680] -> wl_surface@15.commit()
[3937654.823] -> zxdg_toplevel_v6@17.set_title("EventDemo")
[3937735.107] wl_shm@5.format(0)
[3937735.153] wl_shm@5.format(1)
[3937735.159] wl_output@6.geometry(0, 0, 280, 160, 0, "SHP", "0x144d", 0)
[3937735.196] wl_output@6.mode(3, 3840, 2160, 59997)
[3937735.209] wl_output@6.scale(2)
[3937735.215] wl_output@6.done()
[3937735.219] wl_seat@10.capabilities(7)
[3937735.226] -> wl_seat@10.get_pointer(new id wl_pointer@18)
[3937735.234] -> wl_seat@10.get_keyboard(new id wl_keyboard@19)
[3937735.242] -> wl_seat@10.get_touch(new id wl_touch@20)
[3937735.249] wl_seat@10.name("seat0")
[3937735.256] zxdg_toplevel_v6@17.configure(0, 0, array)
[3937735.269] zxdg_surface_v6@16.configure(300956)
[3937735.277] -> zxdg_surface_v6@16.ack_configure(300956)
[3937735.285] -> wl_compositor@4.create_region(new id wl_region@21)
[3937735.299] -> wl_compositor@4.create_region(new id wl_region@22)
[3937735.307] -> wl_region@22.add(32, 32, 436, 336)
[3937735.470] -> wl_shm@5.create_pool(new id wl_shm_pool@23, fd 9, 800000)
[3937735.506] -> wl_shm_pool@23.create_buffer(new id wl_buffer@24, 0, 500, 400, 2000, 0)
[3937735.530] -> wl_surface@15.frame(new id wl_callback@25)
[3937741.572] -> zxdg_surface_v6@16.set_window_geometry(32, 32, 436, 336)
[3937741.632] -> wl_surface@15.set_opaque_region(wl_region@21)
[3937741.637] -> wl_region@21.destroy()
[3937741.643] -> wl_surface@15.set_input_region(wl_region@22)
[3937741.647] -> wl_region@22.destroy()
[3937741.650] -> wl_surface@15.attach(wl_buffer@24, 0, 0)
[3937741.659] -> wl_surface@15.damage(0, 0, 500, 400)
[3937741.668] -> wl_surface@15.commit()
[3937745.730] wl_display@1.delete_id(21)
[3937745.787] wl_display@1.delete_id(22)
[3937745.792] wl_keyboard@19.keymap(1, fd 8, 51740)
[3937752.189] wl_keyboard@19.repeat_info(33, 500)
[3937752.232] wl_buffer@24.release()
[3937766.073] zxdg_toplevel_v6@17.configure(436, 336, array)
[3937766.111] zxdg_surface_v6@16.configure(300959)
[3937766.118] -> zxdg_surface_v6@16.ack_configure(300959)
[3937766.124] wl_keyboard@19.modifiers(300961, 0, 0, 0, 0)
[3937766.147] wl_keyboard@19.enter(300961, wl_surface@15, array)
[3937766.161] wl_data_device@11.data_offer(new id wl_data_offer@22186144)
[3937766.171] wl_data_offer@4278190080.offer("TARGETS")
[3937766.179] wl_data_offer@4278190080.offer("_VIMENC_TEXT")
[3937766.185] wl_data_offer@4278190080.offer("_VIM_TEXT")
[3937766.191] wl_data_offer@4278190080.offer("text/plain;charset=utf-8")
[3937766.198] wl_data_offer@4278190080.offer("UTF8_STRING")
[3937766.207] wl_data_offer@4278190080.offer("STRING")
[3937766.215] wl_data_offer@4278190080.offer("TEXT")
[3937766.229] wl_data_offer@4278190080.offer("COMPOUND_TEXT")
[3937766.235] wl_data_device@11.selection(wl_data_offer@4278190080)
[3937805.786] wl_display@1.delete_id(25)
[3937805.850] wl_surface@15.enter(wl_output@6)
[3937805.860] wl_callback@25.done(290279004)
[3937805.872] -> wl_compositor@4.create_region(new id wl_region@25)
[3937805.888] -> wl_compositor@4.create_region(new id wl_region@22)
[3937805.897] -> wl_region@22.add(32, 32, 436, 336)
[3937805.913] -> wl_surface@15.frame(new id wl_callback@21)
[3937806.818] -> wl_surface@15.set_opaque_region(wl_region@25)
[3937806.851] -> wl_region@25.destroy()
[3937806.856] -> wl_surface@15.set_input_region(wl_region@22)
[3937806.860] -> wl_region@22.destroy()
[3937806.864] -> wl_surface@15.attach(wl_buffer@24, 0, 0)
[3937806.872] -> wl_surface@15.damage(0, 0, 500, 400)
[3937806.882] -> wl_surface@15.commit()
[3937821.606] wl_display@1.delete_id(25)
[3937821.687] wl_display@1.delete_id(22)
[3937821.697] wl_display@1.delete_id(21)
[3937821.703] wl_buffer@24.release()
[3937821.707] wl_callback@21.done(290279019)
[3949066.774] wl_pointer@18.enter(300963, wl_surface@15, 467.976562, 211.320312)
[3949066.965] -> wl_shm_pool@3.create_buffer(new id wl_buffer@21, 806912, 32, 32, 128, 0)
[3949067.083] -> wl_surface@12.attach(wl_buffer@21, 0, 0)
[3949067.135] -> wl_surface@12.damage(0, 0, 32, 32)
[3949067.204] -> wl_surface@12.commit()
[3949067.226] -> wl_pointer@18.set_cursor(300963, wl_surface@12, 25, 17)
[3949067.321] wl_pointer@18.frame()
[3949067.343] wl_pointer@18.motion(290290258, 467.976562, 211.320312)
[3949067.394] wl_pointer@18.frame()
[3949104.391] wl_pointer@18.motion(290290289, 467.804688, 211.320312)
[3949104.556] wl_pointer@18.frame()
[3949120.225] wl_pointer@18.motion(290290304, 467.644531, 211.320312)
[3949120.324] wl_pointer@18.frame()
[3949137.048] wl_pointer@18.motion(290290319, 467.488281, 211.320312)
[3949137.134] wl_pointer@18.frame()
[3949153.602] wl_pointer@18.motion(290290335, 467.335938, 211.320312)
[3949153.688] wl_pointer@18.frame()
[3949193.533] wl_pointer@18.motion(290290389, 467.195312, 211.320312)
[3949193.643] wl_pointer@18.frame()
[3949209.947] wl_pointer@18.motion(290290404, 466.921875, 211.320312)
[3949210.028] wl_pointer@18.frame()
[3949247.318] wl_pointer@18.motion(290290443, 466.789062, 211.320312)
[3949247.399] wl_pointer@18.frame()
[3949262.856] wl_pointer@18.motion(290290450, 466.660156, 211.320312)
[3949262.929] wl_pointer@18.frame()
[3949278.719] wl_pointer@18.motion(290290473, 466.402344, 211.320312)
[3949278.809] wl_pointer@18.frame()
[3949347.584] wl_pointer@18.motion(290290543, 466.281250, 211.320312)
[3949347.672] wl_pointer@18.frame()
[3949884.249] wl_pointer@18.motion(290291081, 466.171875, 211.320312)
[3949884.286] wl_pointer@18.frame()
This is where I press the left mouse button on the right frame in order to begin dragging it to the right:
[3949937.319] wl_pointer@18.button(300964, 290291135, 272, 1)
[3949937.360] -> zxdg_toplevel_v6@17.resize(wl_seat@10, 300964, 8)
[3949937.375] wl_pointer@18.frame()
[3949938.478] wl_keyboard@19.leave(300965, wl_surface@15)
[3949938.509] wl_pointer@18.leave(300966, wl_surface@15)
[3949938.519] wl_pointer@18.frame()
[3949938.523] zxdg_toplevel_v6@17.configure(436, 336, array)
[3949938.534] zxdg_surface_v6@16.configure(300967)
[3949938.540] -> zxdg_surface_v6@16.ack_configure(300967)
[3949938.548] -> wl_compositor@4.create_region(new id wl_region@22)
[3949938.557] -> wl_compositor@4.create_region(new id wl_region@25)
[3949938.564] -> wl_region@25.add(32, 32, 436, 336)
[3949938.581] -> wl_surface@15.frame(new id wl_callback@26)
[3949939.229] -> wl_surface@15.set_opaque_region(wl_region@22)
[3949939.245] -> wl_region@22.destroy()
[3949939.248] -> wl_surface@15.set_input_region(wl_region@25)
[3949939.252] -> wl_region@25.destroy()
[3949939.256] -> wl_surface@15.attach(wl_buffer@24, 0, 0)
[3949939.264] -> wl_surface@15.damage(0, 0, 500, 400)
[3949939.274] -> wl_surface@15.commit()
[3949954.187] wl_display@1.delete_id(22)
[3949954.209] wl_display@1.delete_id(25)
[3949954.214] wl_display@1.delete_id(26)
[3949954.219] wl_buffer@24.release()
[3949954.222] wl_callback@26.done(290291152)
[3950977.032] zxdg_toplevel_v6@17.configure(436, 336, array)
[3950977.073] zxdg_surface_v6@16.configure(300968)
[3950977.080] -> zxdg_surface_v6@16.ack_configure(300968)
[3950977.089] -> wl_compositor@4.create_region(new id wl_region@26)
[3950977.098] -> wl_compositor@4.create_region(new id wl_region@25)
[3950977.105] -> wl_region@25.add(32, 32, 436, 336)
[3950977.120] -> wl_surface@15.frame(new id wl_callback@22)
[3950977.922] -> wl_surface@15.set_opaque_region(wl_region@26)
[3950977.932] -> wl_region@26.destroy()
[3950977.936] -> wl_surface@15.set_input_region(wl_region@25)
[3950977.945] -> wl_region@25.destroy()
[3950977.948] -> wl_surface@15.attach(wl_buffer@24, 0, 0)
[3950977.956] -> wl_surface@15.damage(0, 0, 500, 400)
[3950977.966] -> wl_surface@15.commit()
[3950995.018] wl_display@1.delete_id(26)
[3950995.050] wl_display@1.delete_id(25)
[3950995.056] wl_display@1.delete_id(22)
[3950995.061] wl_buffer@24.release()
[3950995.067] zxdg_toplevel_v6@17.configure(437, 336, array)
[3950995.080] zxdg_surface_v6@16.configure(300969)
[3950995.086] -> zxdg_surface_v6@16.ack_configure(300969)
[3950995.112] wl_callback@22.done(290292193)
[3950995.140] -> wl_compositor@4.create_region(new id wl_region@22)
[3950995.149] -> wl_compositor@4.create_region(new id wl_region@25)
[3950995.156] -> wl_region@25.add(32, 32, 437, 336)
[3950995.173] -> wl_buffer@24.destroy()
[3950995.232] -> wl_shm_pool@23.destroy()
[3950996.390] -> wl_shm@5.create_pool(new id wl_shm_pool@26, fd 9, 6291456)
[3950996.427] -> wl_shm_pool@26.create_buffer(new id wl_buffer@27, 0, 501, 400, 2004, 0)
[3950996.449] -> wl_surface@15.frame(new id wl_callback@28)
[3950997.374] -> zxdg_surface_v6@16.set_window_geometry(32, 32, 437, 336)
[3950997.406] -> wl_surface@15.set_opaque_region(wl_region@22)
[3950997.413] -> wl_region@22.destroy()
[3950997.418] -> wl_surface@15.set_input_region(wl_region@25)
[3950997.424] -> wl_region@25.destroy()
[3950997.428] -> wl_surface@15.attach(wl_buffer@27, 0, 0)
[3950997.441] -> wl_surface@15.damage(0, 0, 501, 400)
[3950997.455] -> wl_surface@15.commit()
[3951015.593] wl_display@1.delete_id(24)
[3951015.689] wl_display@1.delete_id(23)
[3951015.701] wl_display@1.delete_id(22)
[3951015.711] wl_display@1.delete_id(25)
[3951015.722] wl_display@1.delete_id(28)
[3951015.732] wl_buffer@27.release()
[3951015.741] zxdg_toplevel_v6@17.configure(437, 336, array)
[3951015.764] zxdg_surface_v6@16.configure(300970)
[3951015.776] -> zxdg_surface_v6@16.ack_configure(300970)
[3951015.789] wl_callback@28.done(290292213)
[3951015.801] -> wl_compositor@4.create_region(new id wl_region@28)
[3951015.820] -> wl_compositor@4.create_region(new id wl_region@25)
[3951015.859] -> wl_region@25.add(32, 32, 437, 336)
[3951015.903] -> wl_surface@15.frame(new id wl_callback@22)
[3951017.477] -> wl_surface@15.set_opaque_region(wl_region@28)
[3951017.544] -> wl_region@28.destroy()
[3951017.552] -> wl_surface@15.set_input_region(wl_region@25)
[3951017.562] -> wl_region@25.destroy()
[3951017.570] -> wl_surface@15.attach(wl_buffer@27, 0, 0)
[3951017.591] -> wl_surface@15.damage(0, 0, 501, 400)
[3951017.616] -> wl_surface@15.commit()
[3951038.373] wl_display@1.delete_id(28)
[3951038.503] wl_display@1.delete_id(25)
[3951038.519] wl_display@1.delete_id(22)
[3951038.532] wl_buffer@27.release()
[3951038.545] zxdg_toplevel_v6@17.configure(438, 336, array)
[3951038.579] zxdg_surface_v6@16.configure(300971)
[3951038.598] -> zxdg_surface_v6@16.ack_configure(300971)
[3951038.618] wl_callback@22.done(290292236)
[3951038.638] -> wl_compositor@4.create_region(new id wl_region@22)
[3951038.668] -> wl_compositor@4.create_region(new id wl_region@25)
[3951038.691] -> wl_region@25.add(32, 32, 438, 336)
[3951038.746] -> wl_buffer@27.destroy()
[3951038.774] -> wl_shm_pool@26.create_buffer(new id wl_buffer@28, 0, 502, 400, 2008, 0)
[3951038.846] -> wl_surface@15.frame(new id wl_callback@23)
[3951041.846] -> zxdg_surface_v6@16.set_window_geometry(32, 32, 438, 336)
[3951041.966] -> wl_surface@15.set_opaque_region(wl_region@22)
[3951041.989] -> wl_region@22.destroy()
[3951042.000] -> wl_surface@15.set_input_region(wl_region@25)
[3951042.013] -> wl_region@25.destroy()
[3951042.026] -> wl_surface@15.attach(wl_buffer@28, 0, 0)
[3951042.056] -> wl_surface@15.damage(0, 0, 502, 400)
[3951042.094] -> wl_surface@15.commit()
[3951059.247] wl_display@1.delete_id(27)
[3951059.389] wl_display@1.delete_id(22)
[3951059.405] wl_display@1.delete_id(25)
[3951059.418] wl_display@1.delete_id(23)
[3951059.433] wl_buffer@28.release()
[3951059.449] zxdg_toplevel_v6@17.configure(438, 336, array)
[3951059.487] zxdg_surface_v6@16.configure(300972)
[3951059.524] -> zxdg_surface_v6@16.ack_configure(300972)
[3951059.544] wl_callback@23.done(290292256)
[3951059.565] -> wl_compositor@4.create_region(new id wl_region@23)
[3951059.595] -> wl_compositor@4.create_region(new id wl_region@25)
[3951059.617] -> wl_region@25.add(32, 32, 438, 336)
[3951059.669] -> wl_surface@15.frame(new id wl_callback@22)
[3951062.518] -> wl_surface@15.set_opaque_region(wl_region@23)
[3951062.595] -> wl_region@23.destroy()
[3951062.613] -> wl_surface@15.set_input_region(wl_region@25)
[3951062.634] -> wl_region@25.destroy()
[3951062.644] -> wl_surface@15.attach(wl_buffer@28, 0, 0)
[3951062.672] -> wl_surface@15.damage(0, 0, 502, 400)
[3951062.707] -> wl_surface@15.commit()
[3951071.243] wl_display@1.delete_id(23)
[3951071.332] wl_display@1.delete_id(25)
[3951071.350] wl_display@1.delete_id(22)
[3951071.365] wl_buffer@28.release()
[3951071.380] zxdg_toplevel_v6@17.configure(439, 336, array)
[3951071.413] zxdg_surface_v6@16.configure(300973)
[3951071.429] -> zxdg_surface_v6@16.ack_configure(300973)
[3951071.468] wl_callback@22.done(290292269)
[3951071.495] -> wl_compositor@4.create_region(new id wl_region@22)
[3951071.525] -> wl_compositor@4.create_region(new id wl_region@25)
[3951071.546] -> wl_region@25.add(32, 32, 439, 336)
[3951071.596] -> wl_buffer@28.destroy()
[3951071.634] -> wl_shm_pool@26.create_buffer(new id wl_buffer@23, 0, 503, 400, 2012, 0)
[3951071.737] -> wl_surface@15.frame(new id wl_callback@27)
[3951074.754] -> zxdg_surface_v6@16.set_window_geometry(32, 32, 439, 336)
[3951074.850] -> wl_surface@15.set_opaque_region(wl_region@22)
[3951074.882] -> wl_region@22.destroy()
[3951074.899] -> wl_surface@15.set_input_region(wl_region@25)
[3951074.913] -> wl_region@25.destroy()
[3951074.926] -> wl_surface@15.attach(wl_buffer@23, 0, 0)
[3951074.955] -> wl_surface@15.damage(0, 0, 503, 400)
[3951074.992] -> wl_surface@15.commit()
[3951091.245] wl_display@1.delete_id(28)
[3951091.411] wl_display@1.delete_id(22)
[3951091.431] wl_display@1.delete_id(25)
[3951091.441] wl_display@1.delete_id(27)
[3951091.495] wl_buffer@23.release()
[3951091.508] zxdg_toplevel_v6@17.configure(439, 336, array)
[3951091.568] zxdg_surface_v6@16.configure(300974)
[3951091.586] -> zxdg_surface_v6@16.ack_configure(300974)
[3951091.603] wl_callback@27.done(290292288)
[3951091.623] -> wl_compositor@4.create_region(new id wl_region@27)
[3951091.645] -> wl_compositor@4.create_region(new id wl_region@25)
[3951091.661] -> wl_region@25.add(32, 32, 439, 336)
[3951091.700] -> wl_surface@15.frame(new id wl_callback@22)
[3951094.023] -> wl_surface@15.set_opaque_region(wl_region@27)
[3951094.123] -> wl_region@27.destroy()
[3951094.132] -> wl_surface@15.set_input_region(wl_region@25)
[3951094.141] -> wl_region@25.destroy()
[3951094.148] -> wl_surface@15.attach(wl_buffer@23, 0, 0)
[3951094.165] -> wl_surface@15.damage(0, 0, 503, 400)
[3951094.182] -> wl_surface@15.commit()
[3951103.075] wl_display@1.delete_id(27)
[3951103.111] wl_display@1.delete_id(25)
[3951103.119] wl_display@1.delete_id(22)
[3951103.126] wl_buffer@23.release()
[3951103.132] zxdg_toplevel_v6@17.configure(439, 336, array)
[3951103.150] zxdg_surface_v6@16.configure(300975)
[3951103.164] -> zxdg_surface_v6@16.ack_configure(300975)
[3951103.181] wl_callback@22.done(290292301)
[3951103.195] -> wl_compositor@4.create_region(new id wl_region@22)
[3951103.237] -> wl_compositor@4.create_region(new id wl_region@25)
[3951103.249] -> wl_region@25.add(32, 32, 439, 336)
[3951103.279] -> wl_surface@15.frame(new id wl_callback@27)
[3951105.292] -> wl_surface@15.set_opaque_region(wl_region@22)
[3951105.346] -> wl_region@22.destroy()
[3951105.353] -> wl_surface@15.set_input_region(wl_region@25)
[3951105.361] -> wl_region@25.destroy()
[3951105.367] -> wl_surface@15.attach(wl_buffer@23, 0, 0)
[3951105.381] -> wl_surface@15.damage(0, 0, 503, 400)
[3951105.398] -> wl_surface@15.commit()
[3951119.792] wl_display@1.delete_id(22)
[3951119.837] wl_display@1.delete_id(25)
[3951119.846] wl_display@1.delete_id(27)
[3951119.853] wl_buffer@23.release()
[3951119.860] zxdg_toplevel_v6@17.configure(440, 336, array)
[3951119.879] zxdg_surface_v6@16.configure(300976)
[3951119.904] -> zxdg_surface_v6@16.ack_configure(300976)
[3951119.930] wl_callback@27.done(290292317)
[3951119.944] -> wl_compositor@4.create_region(new id wl_region@27)
[3951119.961] -> wl_compositor@4.create_region(new id wl_region@25)
[3951119.974] -> wl_region@25.add(32, 32, 440, 336)
[3951120.005] -> wl_buffer@23.destroy()
[3951120.033] -> wl_shm_pool@26.create_buffer(new id wl_buffer@22, 0, 504, 400, 2016, 0)
[3951120.069] -> wl_surface@15.frame(new id wl_callback@28)
[3951122.217] -> zxdg_surface_v6@16.set_window_geometry(32, 32, 440, 336)
[3951122.409] -> wl_surface@15.set_opaque_region(wl_region@27)
[3951122.445] -> wl_region@27.destroy()
[3951122.451] -> wl_surface@15.set_input_region(wl_region@25)
[3951122.459] -> wl_region@25.destroy()
[3951122.466] -> wl_surface@15.attach(wl_buffer@22, 0, 0)
[3951122.481] -> wl_surface@15.damage(0, 0, 504, 400)
[3951122.499] -> wl_surface@15.commit()
[3951138.644] wl_display@1.delete_id(23)
[3951138.736] wl_display@1.delete_id(27)
[3951138.750] wl_display@1.delete_id(25)
[3951138.757] wl_display@1.delete_id(28)
[3951138.765] wl_buffer@22.release()
[3951138.774] zxdg_toplevel_v6@17.configure(440, 336, array)
[3951138.795] zxdg_surface_v6@16.configure(300977)
[3951138.808] -> zxdg_surface_v6@16.ack_configure(300977)
[3951138.825] wl_callback@28.done(290292336)
[3951138.841] -> wl_compositor@4.create_region(new id wl_region@28)
[3951138.861] -> wl_compositor@4.create_region(new id wl_region@25)
[3951138.872] -> wl_region@25.add(32, 32, 440, 336)
[3951138.915] -> wl_surface@15.frame(new id wl_callback@27)
[3951141.098] -> wl_surface@15.set_opaque_region(wl_region@28)
[3951141.168] -> wl_region@28.destroy()
[3951141.175] -> wl_surface@15.set_input_region(wl_region@25)
[3951141.182] -> wl_region@25.destroy()
[3951141.188] -> wl_surface@15.attach(wl_buffer@22, 0, 0)
[3951141.201] -> wl_surface@15.damage(0, 0, 504, 400)
[3951141.217] -> wl_surface@15.commit()
[3951153.111] wl_display@1.delete_id(28)
[3951153.154] wl_display@1.delete_id(25)
[3951153.164] wl_display@1.delete_id(27)
[3951153.172] wl_buffer@22.release()
[3951153.182] zxdg_toplevel_v6@17.configure(441, 336, array)
[3951153.211] zxdg_surface_v6@16.configure(300978)
[3951153.241] -> zxdg_surface_v6@16.ack_configure(300978)
[3951153.257] wl_callback@27.done(290292351)
[3951153.272] -> wl_compositor@4.create_region(new id wl_region@27)
[3951153.294] -> wl_compositor@4.create_region(new id wl_region@25)
[3951153.308] -> wl_region@25.add(32, 32, 441, 336)
[3951153.340] -> wl_buffer@22.destroy()
[3951153.365] -> wl_shm_pool@26.create_buffer(new id wl_buffer@28, 0, 505, 400, 2020, 0)
[3951153.397] -> wl_surface@15.frame(new id wl_callback@23)
[3951155.421] -> zxdg_surface_v6@16.set_window_geometry(32, 32, 441, 336)
[3951155.518] -> wl_surface@15.set_opaque_region(wl_region@27)
[3951155.527] -> wl_region@27.destroy()
[3951155.533] -> wl_surface@15.set_input_region(wl_region@25)
[3951155.540] -> wl_region@25.destroy()
[3951155.547] -> wl_surface@15.attach(wl_buffer@28, 0, 0)
[3951155.560] -> wl_surface@15.damage(0, 0, 505, 400)
[3951155.576] -> wl_surface@15.commit()
[3951171.737] wl_display@1.delete_id(22)
[3951171.791] wl_display@1.delete_id(27)
[3951171.806] wl_display@1.delete_id(25)
[3951171.814] wl_display@1.delete_id(23)
[3951171.821] wl_buffer@28.release()
[3951171.829] zxdg_toplevel_v6@17.configure(441, 336, array)
[3951171.852] zxdg_surface_v6@16.configure(300979)
[3951171.864] -> zxdg_surface_v6@16.ack_configure(300979)
[3951171.903] wl_callback@23.done(290292369)
[3951171.921] -> wl_compositor@4.create_region(new id wl_region@23)
[3951171.941] -> wl_compositor@4.create_region(new id wl_region@25)
[3951171.956] -> wl_region@25.add(32, 32, 441, 336)
[3951171.979] -> wl_surface@15.frame(new id wl_callback@27)
[3951174.074] -> wl_surface@15.set_opaque_region(wl_region@23)
[3951174.128] -> wl_region@23.destroy()
[3951174.135] -> wl_surface@15.set_input_region(wl_region@25)
[3951174.141] -> wl_region@25.destroy()
[3951174.147] -> wl_surface@15.attach(wl_buffer@28, 0, 0)
[3951174.165] -> wl_surface@15.damage(0, 0, 505, 400)
[3951174.184] -> wl_surface@15.commit()
[3951186.329] wl_display@1.delete_id(23)
[3951186.378] wl_display@1.delete_id(25)
[3951186.388] wl_display@1.delete_id(27)
[3951186.401] wl_buffer@28.release()
[3951186.418] zxdg_toplevel_v6@17.configure(442, 336, array)
[3951186.444] zxdg_surface_v6@16.configure(300980)
[3951186.461] -> zxdg_surface_v6@16.ack_configure(300980)
[3951186.472] wl_callback@27.done(290292384)
[3951186.485] -> wl_compositor@4.create_region(new id wl_region@27)
[3951186.504] -> wl_compositor@4.create_region(new id wl_region@25)
[3951186.519] -> wl_region@25.add(32, 32, 442, 336)
[3951186.548] -> wl_buffer@28.destroy()
[3951186.574] -> wl_shm_pool@26.create_buffer(new id wl_buffer@23, 0, 506, 400, 2024, 0)
[3951186.611] -> wl_surface@15.frame(new id wl_callback@22)
[3951188.871] -> zxdg_surface_v6@16.set_window_geometry(32, 32, 442, 336)
[3951189.108] -> wl_surface@15.set_opaque_region(wl_region@27)
[3951189.126] -> wl_region@27.destroy()
[3951189.138] -> wl_surface@15.set_input_region(wl_region@25)
[3951189.152] -> wl_region@25.destroy()
[3951189.163] -> wl_surface@15.attach(wl_buffer@23, 0, 0)
[3951189.182] -> wl_surface@15.damage(0, 0, 506, 400)
[3951189.207] -> wl_surface@15.commit()
[3951205.256] wl_display@1.delete_id(28)
[3951205.330] wl_display@1.delete_id(27)
[3951205.339] wl_display@1.delete_id(25)
[3951205.346] wl_display@1.delete_id(22)
[3951205.355] wl_buffer@23.release()
[3951205.364] zxdg_toplevel_v6@17.configure(442, 336, array)
[3951205.393] zxdg_surface_v6@16.configure(300981)
[3951205.417] -> zxdg_surface_v6@16.ack_configure(300981)
[3951205.428] wl_callback@22.done(290292403)
[3951205.442] -> wl_compositor@4.create_region(new id wl_region@22)
[3951205.456] -> wl_compositor@4.create_region(new id wl_region@25)
[3951205.468] -> wl_region@25.add(32, 32, 442, 336)
[3951205.491] -> wl_surface@15.frame(new id wl_callback@27)
[3951207.609] -> wl_surface@15.set_opaque_region(wl_region@22)
[3951207.703] -> wl_region@22.destroy()
[3951207.708] -> wl_surface@15.set_input_region(wl_region@25)
[3951207.716] -> wl_region@25.destroy()
[3951207.721] -> wl_surface@15.attach(wl_buffer@23, 0, 0)
[3951207.734] -> wl_surface@15.damage(0, 0, 506, 400)
[3951207.750] -> wl_surface@15.commit()
[3951219.751] wl_display@1.delete_id(22)
[3951219.790] wl_display@1.delete_id(25)
[3951219.799] wl_display@1.delete_id(27)
[3951219.807] wl_buffer@23.release()
[3951219.813] zxdg_toplevel_v6@17.configure(443, 336, array)
[3951219.832] zxdg_surface_v6@16.configure(300982)
[3951219.850] -> zxdg_surface_v6@16.ack_configure(300982)
[3951219.859] wl_callback@27.done(290292417)
[3951219.872] -> wl_compositor@4.create_region(new id wl_region@27)
[3951219.893] -> wl_compositor@4.create_region(new id wl_region@25)
[3951219.909] -> wl_region@25.add(32, 32, 443, 336)
[3951219.961] -> wl_buffer@23.destroy()
[3951219.988] -> wl_shm_pool@26.create_buffer(new id wl_buffer@22, 0, 507, 400, 2028, 0)
[3951220.027] -> wl_surface@15.frame(new id wl_callback@28)
[3951222.190] -> zxdg_surface_v6@16.set_window_geometry(32, 32, 443, 336)
[3951222.321] -> wl_surface@15.set_opaque_region(wl_region@27)
[3951222.334] -> wl_region@27.destroy()
[3951222.342] -> wl_surface@15.set_input_region(wl_region@25)
[3951222.348] -> wl_region@25.destroy()
[3951222.354] -> wl_surface@15.attach(wl_buffer@22, 0, 0)
[3951222.370] -> wl_surface@15.damage(0, 0, 507, 400)
[3951222.388] -> wl_surface@15.commit()
[3951238.514] wl_display@1.delete_id(23)
[3951238.561] wl_display@1.delete_id(27)
[3951238.571] wl_display@1.delete_id(25)
[3951238.580] wl_display@1.delete_id(28)
[3951238.594] wl_buffer@22.release()
[3951238.606] zxdg_toplevel_v6@17.configure(443, 336, array)
[3951238.628] zxdg_surface_v6@16.configure(300983)
[3951238.641] -> zxdg_surface_v6@16.ack_configure(300983)
[3951238.677] wl_callback@28.done(290292436)
[3951238.701] -> wl_compositor@4.create_region(new id wl_region@28)
[3951238.725] -> wl_compositor@4.create_region(new id wl_region@25)
[3951238.740] -> wl_region@25.add(32, 32, 443, 336)
[3951238.767] -> wl_surface@15.frame(new id wl_callback@27)
[3951240.967] -> wl_surface@15.set_opaque_region(wl_region@28)
[3951241.061] -> wl_region@28.destroy()
[3951241.068] -> wl_surface@15.set_input_region(wl_region@25)
[3951241.075] -> wl_region@25.destroy()
[3951241.082] -> wl_surface@15.attach(wl_buffer@22, 0, 0)
[3951241.096] -> wl_surface@15.damage(0, 0, 507, 400)
[3951241.112] -> wl_surface@15.commit()
[3951252.997] wl_display@1.delete_id(28)
[3951253.058] wl_display@1.delete_id(25)
[3951253.068] wl_display@1.delete_id(27)
[3951253.078] wl_buffer@22.release()
[3951253.087] zxdg_toplevel_v6@17.configure(445, 336, array)
[3951253.114] zxdg_surface_v6@16.configure(300984)
[3951253.128] -> zxdg_surface_v6@16.ack_configure(300984)
[3951253.140] wl_callback@27.done(290292451)
[3951253.154] -> wl_compositor@4.create_region(new id wl_region@27)
[3951253.178] -> wl_compositor@4.create_region(new id wl_region@25)
[3951253.190] -> wl_region@25.add(32, 32, 445, 336)
[3951253.219] -> wl_buffer@22.destroy()
[3951253.239] -> wl_shm_pool@26.create_buffer(new id wl_buffer@28, 0, 509, 400, 2036, 0)
[3951253.293] -> wl_surface@15.frame(new id wl_callback@23)
[3951255.217] -> zxdg_surface_v6@16.set_window_geometry(32, 32, 445, 336)
[3951255.312] -> wl_surface@15.set_opaque_region(wl_region@27)
[3951255.323] -> wl_region@27.destroy()
[3951255.329] -> wl_surface@15.set_input_region(wl_region@25)
[3951255.337] -> wl_region@25.destroy()
[3951255.342] -> wl_surface@15.attach(wl_buffer@28, 0, 0)
[3951255.358] -> wl_surface@15.damage(0, 0, 509, 400)
[3951255.374] -> wl_surface@15.commit()
[3951271.604] wl_display@1.delete_id(22)
[3951271.654] wl_display@1.delete_id(27)
[3951271.674] wl_display@1.delete_id(25)
[3951271.691] wl_display@1.delete_id(23)
[3951271.702] wl_buffer@28.release()
[3951271.712] zxdg_toplevel_v6@17.configure(446, 336, array)
[3951271.732] zxdg_surface_v6@16.configure(300985)
[3951271.786] -> zxdg_surface_v6@16.ack_configure(300985)
[3951271.803] wl_callback@23.done(290292469)
[3951271.819] -> wl_compositor@4.create_region(new id wl_region@23)
[3951271.838] -> wl_compositor@4.create_region(new id wl_region@25)
[3951271.849] -> wl_region@25.add(32, 32, 446, 336)
[3951271.910] -> wl_buffer@28.destroy()
[3951271.950] -> wl_shm_pool@26.create_buffer(new id wl_buffer@27, 0, 510, 400, 2040, 0)
[3951271.985] -> wl_surface@15.frame(new id wl_callback@22)
[3951274.074] -> zxdg_surface_v6@16.set_window_geometry(32, 32, 446, 336)
[3951274.143] -> wl_surface@15.set_opaque_region(wl_region@23)
[3951274.152] -> wl_region@23.destroy()
[3951274.159] -> wl_surface@15.set_input_region(wl_region@25)
[3951274.167] -> wl_region@25.destroy()
[3951274.172] -> wl_surface@15.attach(wl_buffer@27, 0, 0)
[3951274.188] -> wl_surface@15.damage(0, 0, 510, 400)
[3951274.209] -> wl_surface@15.commit()
[3951288.255] wl_display@1.delete_id(28)
[3951288.365] wl_display@1.delete_id(23)
[3951288.390] wl_display@1.delete_id(25)
[3951288.412] wl_display@1.delete_id(22)
[3951288.426] wl_buffer@27.release()
[3951288.460] zxdg_toplevel_v6@17.configure(448, 336, array)
[3951288.491] zxdg_surface_v6@16.configure(300986)
[3951288.503] -> zxdg_surface_v6@16.ack_configure(300986)
[3951288.514] wl_callback@22.done(290292486)
[3951288.529] -> wl_compositor@4.create_region(new id wl_region@22)
[3951288.549] -> wl_compositor@4.create_region(new id wl_region@25)
[3951288.562] -> wl_region@25.add(32, 32, 448, 336)
[3951288.589] -> wl_buffer@27.destroy()
[3951288.615] -> wl_shm_pool@26.create_buffer(new id wl_buffer@23, 0, 512, 400, 2048, 0)
[3951288.656] -> wl_surface@15.frame(new id wl_callback@28)
[3951291.041] -> zxdg_surface_v6@16.set_window_geometry(32, 32, 448, 336)
[3951291.151] -> wl_surface@15.set_opaque_region(wl_region@22)
[3951291.169] -> wl_region@22.destroy()
[3951291.182] -> wl_surface@15.set_input_region(wl_region@25)
[3951291.193] -> wl_region@25.destroy()
[3951291.201] -> wl_surface@15.attach(wl_buffer@23, 0, 0)
[3951291.225] -> wl_surface@15.damage(0, 0, 512, 400)
[3951291.270] -> wl_surface@15.commit()
[3951303.976] wl_display@1.delete_id(27)
[3951304.017] wl_display@1.delete_id(22)
[3951304.023] wl_display@1.delete_id(25)
[3951304.028] wl_display@1.delete_id(28)
[3951304.033] wl_buffer@23.release()
[3951304.038] zxdg_toplevel_v6@17.configure(449, 336, array)
[3951304.055] zxdg_surface_v6@16.configure(300987)
[3951304.073] -> zxdg_surface_v6@16.ack_configure(300987)
[3951304.080] wl_callback@28.done(290292502)
[3951304.089] -> wl_compositor@4.create_region(new id wl_region@28)
[3951304.115] -> wl_compositor@4.create_region(new id wl_region@25)
[3951304.130] -> wl_region@25.add(32, 32, 449, 336)
[3951304.156] -> wl_buffer@23.destroy()
[3951304.177] -> wl_shm_pool@26.create_buffer(new id wl_buffer@22, 0, 513, 400, 2052, 0)
[3951304.196] -> wl_surface@15.frame(new id wl_callback@27)
[3951306.072] -> zxdg_surface_v6@16.set_window_geometry(32, 32, 449, 336)
[3951306.161] -> wl_surface@15.set_opaque_region(wl_region@28)
[3951306.169] -> wl_region@28.destroy()
[3951306.174] -> wl_surface@15.set_input_region(wl_region@25)
[3951306.179] -> wl_region@25.destroy()
[3951306.185] -> wl_surface@15.attach(wl_buffer@22, 0, 0)
[3951306.195] -> wl_surface@15.damage(0, 0, 513, 400)
[3951306.209] -> wl_surface@15.commit()
[3951320.899] wl_display@1.delete_id(23)
[3951320.932] wl_display@1.delete_id(28)
[3951320.937] wl_display@1.delete_id(25)
[3951320.943] wl_display@1.delete_id(27)
[3951320.947] wl_buffer@22.release()
[3951320.952] zxdg_toplevel_v6@17.configure(449, 336, array)
[3951320.964] zxdg_surface_v6@16.configure(300988)
[3951320.977] -> zxdg_surface_v6@16.ack_configure(300988)
[3951320.999] wl_callback@27.done(290292518)
[3951321.020] -> wl_compositor@4.create_region(new id wl_region@27)
[3951321.051] -> wl_compositor@4.create_region(new id wl_region@25)
[3951321.060] -> wl_region@25.add(32, 32, 449, 336)
[3951321.077] -> wl_surface@15.frame(new id wl_callback@28)
[3951322.939] -> wl_surface@15.set_opaque_region(wl_region@27)
[3951323.007] -> wl_region@27.destroy()
[3951323.012] -> wl_surface@15.set_input_region(wl_region@25)
[3951323.017] -> wl_region@25.destroy()
[3951323.021] -> wl_surface@15.attach(wl_buffer@22, 0, 0)
[3951323.030] -> wl_surface@15.damage(0, 0, 513, 400)
[3951323.040] -> wl_surface@15.commit()
[3951335.882] wl_display@1.delete_id(27)
[3951335.912] wl_display@1.delete_id(25)
[3951335.917] wl_display@1.delete_id(28)
[3951335.921] wl_buffer@22.release()
[3951335.926] zxdg_toplevel_v6@17.configure(450, 336, array)
[3951335.937] zxdg_surface_v6@16.configure(300989)
[3951335.943] -> zxdg_surface_v6@16.ack_configure(300989)
[3951335.949] wl_callback@28.done(290292533)
[3951335.968] -> wl_compositor@4.create_region(new id wl_region@28)
[3951336.018] -> wl_compositor@4.create_region(new id wl_region@25)
[3951336.025] -> wl_region@25.add(32, 32, 450, 336)
[3951336.048] -> wl_buffer@22.destroy()
[3951336.066] -> wl_shm_pool@26.create_buffer(new id wl_buffer@27, 0, 514, 400, 2056, 0)
[3951336.096] -> wl_surface@15.frame(new id wl_callback@23)
[3951337.977] -> zxdg_surface_v6@16.set_window_geometry(32, 32, 450, 336)
[3951338.041] -> wl_surface@15.set_opaque_region(wl_region@28)
[3951338.047] -> wl_region@28.destroy()
[3951338.052] -> wl_surface@15.set_input_region(wl_region@25)
[3951338.058] -> wl_region@25.destroy()
[3951338.063] -> wl_surface@15.attach(wl_buffer@27, 0, 0)
[3951338.072] -> wl_surface@15.damage(0, 0, 514, 400)
[3951338.082] -> wl_surface@15.commit()
[3951353.998] wl_display@1.delete_id(22)
[3951354.028] wl_display@1.delete_id(28)
[3951354.034] wl_display@1.delete_id(25)
[3951354.039] wl_display@1.delete_id(23)
[3951354.044] wl_buffer@27.release()
[3951354.049] zxdg_toplevel_v6@17.configure(452, 336, array)
[3951354.063] zxdg_surface_v6@16.configure(300990)
[3951354.075] -> zxdg_surface_v6@16.ack_configure(300990)
[3951354.086] wl_callback@23.done(290292552)
[3951354.119] -> wl_compositor@4.create_region(new id wl_region@23)
[3951354.144] -> wl_compositor@4.create_region(new id wl_region@25)
[3951354.156] -> wl_region@25.add(32, 32, 452, 336)
[3951354.185] -> wl_buffer@27.destroy()
[3951354.209] -> wl_shm_pool@26.create_buffer(new id wl_buffer@28, 0, 516, 400, 2064, 0)
[3951354.235] -> wl_surface@15.frame(new id wl_callback@22)
[3951356.165] -> zxdg_surface_v6@16.set_window_geometry(32, 32, 452, 336)
[3951356.241] -> wl_surface@15.set_opaque_region(wl_region@23)
[3951356.250] -> wl_region@23.destroy()
[3951356.254] -> wl_surface@15.set_input_region(wl_region@25)
[3951356.258] -> wl_region@25.destroy()
[3951356.263] -> wl_surface@15.attach(wl_buffer@28, 0, 0)
[3951356.272] -> wl_surface@15.damage(0, 0, 516, 400)
[3951356.282] -> wl_surface@15.commit()
[3951370.654] wl_display@1.delete_id(27)
[3951370.683] wl_display@1.delete_id(23)
[3951370.688] wl_display@1.delete_id(25)
[3951370.693] wl_display@1.delete_id(22)
[3951370.698] wl_buffer@28.release()
[3951370.703] zxdg_toplevel_v6@17.configure(454, 336, array)
[3951370.718] zxdg_surface_v6@16.configure(300991)
[3951370.729] -> zxdg_surface_v6@16.ack_configure(300991)
[3951370.753] wl_callback@22.done(290292568)
[3951370.766] -> wl_compositor@4.create_region(new id wl_region@22)
[3951370.787] -> wl_compositor@4.create_region(new id wl_region@25)
[3951370.806] -> wl_region@25.add(32, 32, 454, 336)
[3951370.843] -> wl_buffer@28.destroy()
[3951370.868] -> wl_shm_pool@26.create_buffer(new id wl_buffer@23, 0, 518, 400, 2072, 0)
[3951370.893] -> wl_surface@15.frame(new id wl_callback@27)
[3951373.243] -> zxdg_surface_v6@16.set_window_geometry(32, 32, 454, 336)
[3951373.323] -> wl_surface@15.set_opaque_region(wl_region@22)
[3951373.354] -> wl_region@22.destroy()
[3951373.358] -> wl_surface@15.set_input_region(wl_region@25)
[3951373.363] -> wl_region@25.destroy()
[3951373.367] -> wl_surface@15.attach(wl_buffer@23, 0, 0)
[3951373.376] -> wl_surface@15.damage(0, 0, 518, 400)
[3951373.388] -> wl_surface@15.commit()
[3951387.380] wl_display@1.delete_id(28)
[3951387.418] wl_display@1.delete_id(22)
[3951387.447] wl_display@1.delete_id(25)
[3951387.454] wl_display@1.delete_id(27)
[3951387.465] wl_buffer@23.release()
[3951387.477] zxdg_toplevel_v6@17.configure(458, 336, array)
[3951387.490] zxdg_surface_v6@16.configure(300992)
[3951387.504] -> zxdg_surface_v6@16.ack_configure(300992)
[3951387.518] wl_callback@27.done(290292585)
[3951387.531] -> wl_compositor@4.create_region(new id wl_region@27)
[3951387.571] -> wl_compositor@4.create_region(new id wl_region@25)
[3951387.593] -> wl_region@25.add(32, 32, 458, 336)
[3951387.617] -> wl_buffer@23.destroy()
[3951387.638] -> wl_shm_pool@26.create_buffer(new id wl_buffer@22, 0, 522, 400, 2088, 0)
[3951387.665] -> wl_surface@15.frame(new id wl_callback@28)
[3951389.554] -> zxdg_surface_v6@16.set_window_geometry(32, 32, 458, 336)
[3951389.618] -> wl_surface@15.set_opaque_region(wl_region@27)
[3951389.625] -> wl_region@27.destroy()
[3951389.629] -> wl_surface@15.set_input_region(wl_region@25)
[3951389.634] -> wl_region@25.destroy()
[3951389.640] -> wl_surface@15.attach(wl_buffer@22, 0, 0)
[3951389.650] -> wl_surface@15.damage(0, 0, 522, 400)
[3951389.661] -> wl_surface@15.commit()
[3951404.164] wl_display@1.delete_id(23)
[3951404.198] wl_display@1.delete_id(27)
[3951404.203] wl_display@1.delete_id(25)
[3951404.208] wl_display@1.delete_id(28)
[3951404.213] wl_buffer@22.release()
[3951404.218] zxdg_toplevel_v6@17.configure(460, 336, array)
[3951404.230] zxdg_surface_v6@16.configure(300993)
[3951404.238] -> zxdg_surface_v6@16.ack_configure(300993)
[3951404.255] wl_callback@28.done(290292602)
[3951404.269] -> wl_compositor@4.create_region(new id wl_region@28)
[3951404.283] -> wl_compositor@4.create_region(new id wl_region@25)
[3951404.293] -> wl_region@25.add(32, 32, 460, 336)
[3951404.326] -> wl_buffer@22.destroy()
[3951404.364] -> wl_shm_pool@26.create_buffer(new id wl_buffer@27, 0, 524, 400, 2096, 0)
[3951404.386] -> wl_surface@15.frame(new id wl_callback@23)
[3951406.241] -> zxdg_surface_v6@16.set_window_geometry(32, 32, 460, 336)
[3951406.311] -> wl_surface@15.set_opaque_region(wl_region@28)
[3951406.319] -> wl_region@28.destroy()
[3951406.326] -> wl_surface@15.set_input_region(wl_region@25)
[3951406.331] -> wl_region@25.destroy()
[3951406.336] -> wl_surface@15.attach(wl_buffer@27, 0, 0)
[3951406.344] -> wl_surface@15.damage(0, 0, 524, 400)
[3951406.358] -> wl_surface@15.commit()
[3951420.784] wl_display@1.delete_id(22)
[3951420.844] wl_display@1.delete_id(28)
[3951420.850] wl_display@1.delete_id(25)
[3951420.855] wl_display@1.delete_id(23)
[3951420.860] wl_buffer@27.release()
[3951420.865] zxdg_toplevel_v6@17.configure(463, 336, array)
[3951420.878] zxdg_surface_v6@16.configure(300994)
[3951420.889] -> zxdg_surface_v6@16.ack_configure(300994)
[3951420.902] wl_callback@23.done(290292618)
[3951420.914] -> wl_compositor@4.create_region(new id wl_region@23)
[3951420.927] -> wl_compositor@4.create_region(new id wl_region@25)
[3951420.938] -> wl_region@25.add(32, 32, 463, 336)
[3951420.965] -> wl_buffer@27.destroy()
[3951420.984] -> wl_shm_pool@26.create_buffer(new id wl_buffer@28, 0, 527, 400, 2108, 0)
[3951421.008] -> wl_surface@15.frame(new id wl_callback@22)
[3951422.967] -> zxdg_surface_v6@16.set_window_geometry(32, 32, 463, 336)
[3951423.035] -> wl_surface@15.set_opaque_region(wl_region@23)
[3951423.042] -> wl_region@23.destroy()
[3951423.046] -> wl_surface@15.set_input_region(wl_region@25)
[3951423.051] -> wl_region@25.destroy()
[3951423.056] -> wl_surface@15.attach(wl_buffer@28, 0, 0)
[3951423.066] -> wl_surface@15.damage(0, 0, 527, 400)
[3951423.077] -> wl_surface@15.commit()
[3951437.436] wl_display@1.delete_id(27)
[3951437.496] wl_display@1.delete_id(23)
[3951437.503] wl_display@1.delete_id(25)
[3951437.508] wl_display@1.delete_id(22)
[3951437.513] wl_buffer@28.release()
[3951437.519] zxdg_toplevel_v6@17.configure(465, 336, array)
[3951437.541] zxdg_surface_v6@16.configure(300995)
[3951437.559] -> zxdg_surface_v6@16.ack_configure(300995)
[3951437.594] wl_callback@22.done(290292635)
[3951437.606] -> wl_compositor@4.create_region(new id wl_region@22)
[3951437.657] -> wl_compositor@4.create_region(new id wl_region@25)
[3951437.669] -> wl_region@25.add(32, 32, 465, 336)
[3951437.691] -> wl_buffer@28.destroy()
[3951437.721] -> wl_shm_pool@26.create_buffer(new id wl_buffer@23, 0, 529, 400, 2116, 0)
[3951437.757] -> wl_surface@15.frame(new id wl_callback@27)
[3951439.751] -> zxdg_surface_v6@16.set_window_geometry(32, 32, 465, 336)
[3951439.826] -> wl_surface@15.set_opaque_region(wl_region@22)
[3951439.834] -> wl_region@22.destroy()
[3951439.840] -> wl_surface@15.set_input_region(wl_region@25)
[3951439.845] -> wl_region@25.destroy()
[3951439.849] -> wl_surface@15.attach(wl_buffer@23, 0, 0)
[3951439.859] -> wl_surface@15.damage(0, 0, 529, 400)
[3951439.870] -> wl_surface@15.commit()
[3951454.099] wl_display@1.delete_id(28)
[3951454.157] wl_display@1.delete_id(22)
[3951454.165] wl_display@1.delete_id(25)
[3951454.170] wl_display@1.delete_id(27)
[3951454.175] wl_buffer@23.release()
[3951454.179] zxdg_toplevel_v6@17.configure(467, 336, array)
[3951454.192] zxdg_surface_v6@16.configure(300996)
[3951454.202] -> zxdg_surface_v6@16.ack_configure(300996)
[3951454.216] wl_callback@27.done(290292652)
[3951454.233] -> wl_compositor@4.create_region(new id wl_region@27)
[3951454.246] -> wl_compositor@4.create_region(new id wl_region@25)
[3951454.256] -> wl_region@25.add(32, 32, 467, 336)
[3951454.280] -> wl_buffer@23.destroy()
[3951454.300] -> wl_shm_pool@26.create_buffer(new id wl_buffer@22, 0, 531, 400, 2124, 0)
[3951454.326] -> wl_surface@15.frame(new id wl_callback@28)
[3951456.205] -> zxdg_surface_v6@16.set_window_geometry(32, 32, 467, 336)
[3951456.272] -> wl_surface@15.set_opaque_region(wl_region@27)
[3951456.279] -> wl_region@27.destroy()
[3951456.282] -> wl_surface@15.set_input_region(wl_region@25)
[3951456.286] -> wl_region@25.destroy()
[3951456.289] -> wl_surface@15.attach(wl_buffer@22, 0, 0)
[3951456.298] -> wl_surface@15.damage(0, 0, 531, 400)
[3951456.309] -> wl_surface@15.commit()
[3951470.694] wl_display@1.delete_id(23)
[3951470.725] wl_display@1.delete_id(27)
[3951470.730] wl_display@1.delete_id(25)
[3951470.735] wl_display@1.delete_id(28)
[3951470.740] wl_buffer@22.release()
[3951470.744] zxdg_toplevel_v6@17.configure(469, 336, array)
[3951470.758] zxdg_surface_v6@16.configure(300997)
[3951470.766] -> zxdg_surface_v6@16.ack_configure(300997)
[3951470.773] wl_callback@28.done(290292668)
[3951470.783] -> wl_compositor@4.create_region(new id wl_region@28)
[3951470.799] -> wl_compositor@4.create_region(new id wl_region@25)
[3951470.847] -> wl_region@25.add(32, 32, 469, 336)
[3951470.870] -> wl_buffer@22.destroy()
[3951470.890] -> wl_shm_pool@26.create_buffer(new id wl_buffer@27, 0, 533, 400, 2132, 0)
[3951470.917] -> wl_surface@15.frame(new id wl_callback@23)
[3951472.809] -> zxdg_surface_v6@16.set_window_geometry(32, 32, 469, 336)
[3951472.900] -> wl_surface@15.set_opaque_region(wl_region@28)
[3951472.908] -> wl_region@28.destroy()
[3951472.912] -> wl_surface@15.set_input_region(wl_region@25)
[3951472.916] -> wl_region@25.destroy()
[3951472.920] -> wl_surface@15.attach(wl_buffer@27, 0, 0)
[3951472.928] -> wl_surface@15.damage(0, 0, 533, 400)
[3951472.939] -> wl_surface@15.commit()
[3951487.413] wl_display@1.delete_id(22)
[3951487.452] wl_display@1.delete_id(28)
[3951487.458] wl_display@1.delete_id(25)
[3951487.462] wl_display@1.delete_id(23)
[3951487.467] wl_buffer@27.release()
[3951487.471] zxdg_toplevel_v6@17.configure(472, 336, array)
[3951487.483] zxdg_surface_v6@16.configure(300998)
[3951487.488] -> zxdg_surface_v6@16.ack_configure(300998)
[3951487.495] wl_callback@23.done(290292685)
[3951487.503] -> wl_compositor@4.create_region(new id wl_region@23)
[3951487.513] -> wl_compositor@4.create_region(new id wl_region@25)
[3951487.520] -> wl_region@25.add(32, 32, 472, 336)
[3951487.539] -> wl_buffer@27.destroy()
[3951487.555] -> wl_shm_pool@26.create_buffer(new id wl_buffer@28, 0, 536, 400, 2144, 0)
[3951487.584] -> wl_surface@15.frame(new id wl_callback@22)
[3951489.329] -> zxdg_surface_v6@16.set_window_geometry(32, 32, 472, 336)
[3951489.414] -> wl_surface@15.set_opaque_region(wl_region@23)
[3951489.421] -> wl_region@23.destroy()
[3951489.425] -> wl_surface@15.set_input_region(wl_region@25)
[3951489.429] -> wl_region@25.destroy()
[3951489.433] -> wl_surface@15.attach(wl_buffer@28, 0, 0)
[3951489.441] -> wl_surface@15.damage(0, 0, 536, 400)
[3951489.450] -> wl_surface@15.commit()
[3951504.299] wl_display@1.delete_id(27)
[3951504.327] wl_display@1.delete_id(23)
[3951504.332] wl_display@1.delete_id(25)
[3951504.338] wl_display@1.delete_id(22)
[3951504.345] wl_buffer@28.release()
[3951504.351] zxdg_toplevel_v6@17.configure(474, 336, array)
[3951504.365] zxdg_surface_v6@16.configure(300999)
[3951504.370] -> zxdg_surface_v6@16.ack_configure(300999)
[3951504.377] wl_callback@22.done(290292702)
[3951504.385] -> wl_compositor@4.create_region(new id wl_region@22)
[3951504.393] -> wl_compositor@4.create_region(new id wl_region@25)
[3951504.403] -> wl_region@25.add(32, 32, 474, 336)
[3951504.420] -> wl_buffer@28.destroy()
[3951504.432] -> wl_shm_pool@26.create_buffer(new id wl_buffer@23, 0, 538, 400, 2152, 0)
[3951504.459] -> wl_surface@15.frame(new id wl_callback@27)
[3951506.122] -> zxdg_surface_v6@16.set_window_geometry(32, 32, 474, 336)
[3951506.204] -> wl_surface@15.set_opaque_region(wl_region@22)
[3951506.211] -> wl_region@22.destroy()
[3951506.215] -> wl_surface@15.set_input_region(wl_region@25)
[3951506.219] -> wl_region@25.destroy()
[3951506.224] -> wl_surface@15.attach(wl_buffer@23, 0, 0)
[3951506.232] -> wl_surface@15.damage(0, 0, 538, 400)
[3951506.242] -> wl_surface@15.commit()
[3951520.746] wl_display@1.delete_id(28)
[3951520.777] wl_display@1.delete_id(22)
[3951520.781] wl_display@1.delete_id(25)
[3951520.785] wl_display@1.delete_id(27)
[3951520.789] wl_buffer@23.release()
[3951520.793] zxdg_toplevel_v6@17.configure(475, 336, array)
[3951520.803] zxdg_surface_v6@16.configure(301000)
[3951520.808] -> zxdg_surface_v6@16.ack_configure(301000)
[3951520.814] wl_callback@27.done(290292718)
[3951520.821] -> wl_compositor@4.create_region(new id wl_region@27)
[3951520.838] -> wl_compositor@4.create_region(new id wl_region@25)
[3951520.845] -> wl_region@25.add(32, 32, 475, 336)
[3951520.858] -> wl_buffer@23.destroy()
[3951520.866] -> wl_shm_pool@26.create_buffer(new id wl_buffer@22, 0, 539, 400, 2156, 0)
[3951520.884] -> wl_surface@15.frame(new id wl_callback@28)
[3951522.004] -> zxdg_surface_v6@16.set_window_geometry(32, 32, 475, 336)
[3951522.048] -> wl_surface@15.set_opaque_region(wl_region@27)
[3951522.055] -> wl_region@27.destroy()
[3951522.060] -> wl_surface@15.set_input_region(wl_region@25)
[3951522.066] -> wl_region@25.destroy()
[3951522.072] -> wl_surface@15.attach(wl_buffer@22, 0, 0)
[3951522.084] -> wl_surface@15.damage(0, 0, 539, 400)
[3951522.099] -> wl_surface@15.commit()
[3951537.391] wl_display@1.delete_id(23)
[3951537.418] wl_display@1.delete_id(27)
[3951537.422] wl_display@1.delete_id(25)
[3951537.426] wl_display@1.delete_id(28)
[3951537.431] wl_buffer@22.release()
[3951537.435] zxdg_toplevel_v6@17.configure(476, 336, array)
[3951537.445] zxdg_surface_v6@16.configure(301001)
[3951537.450] -> zxdg_surface_v6@16.ack_configure(301001)
[3951537.457] wl_callback@28.done(290292735)
[3951537.464] -> wl_compositor@4.create_region(new id wl_region@28)
[3951537.475] -> wl_compositor@4.create_region(new id wl_region@25)
[3951537.482] -> wl_region@25.add(32, 32, 476, 336)
[3951537.497] -> wl_buffer@22.destroy()
[3951537.507] -> wl_shm_pool@26.create_buffer(new id wl_buffer@27, 0, 540, 400, 2160, 0)
[3951537.526] -> wl_surface@15.frame(new id wl_callback@23)
[3951538.708] -> zxdg_surface_v6@16.set_window_geometry(32, 32, 476, 336)
[3951538.750] -> wl_surface@15.set_opaque_region(wl_region@28)
[3951538.760] -> wl_region@28.destroy()
[3951538.775] -> wl_surface@15.set_input_region(wl_region@25)
[3951538.781] -> wl_region@25.destroy()
[3951538.789] -> wl_surface@15.attach(wl_buffer@27, 0, 0)
[3951538.798] -> wl_surface@15.damage(0, 0, 540, 400)
[3951538.827] -> wl_surface@15.commit()
[3951554.046] wl_display@1.delete_id(22)
[3951554.079] wl_display@1.delete_id(28)
[3951554.084] wl_display@1.delete_id(25)
[3951554.088] wl_display@1.delete_id(23)
[3951554.092] wl_buffer@27.release()
[3951554.096] zxdg_toplevel_v6@17.configure(477, 336, array)
[3951554.106] zxdg_surface_v6@16.configure(301002)
[3951554.111] -> zxdg_surface_v6@16.ack_configure(301002)
[3951554.116] wl_callback@23.done(290292752)
[3951554.122] -> wl_compositor@4.create_region(new id wl_region@23)
[3951554.137] -> wl_compositor@4.create_region(new id wl_region@25)
[3951554.147] -> wl_region@25.add(32, 32, 477, 336)
[3951554.163] -> wl_buffer@27.destroy()
[3951554.171] -> wl_shm_pool@26.create_buffer(new id wl_buffer@28, 0, 541, 400, 2164, 0)
[3951554.190] -> wl_surface@15.frame(new id wl_callback@22)
[3951555.408] -> zxdg_surface_v6@16.set_window_geometry(32, 32, 477, 336)
[3951555.459] -> wl_surface@15.set_opaque_region(wl_region@23)
[3951555.464] -> wl_region@23.destroy()
[3951555.467] -> wl_surface@15.set_input_region(wl_region@25)
[3951555.473] -> wl_region@25.destroy()
[3951555.481] -> wl_surface@15.attach(wl_buffer@28, 0, 0)
[3951555.494] -> wl_surface@15.damage(0, 0, 541, 400)
[3951555.504] -> wl_surface@15.commit()
[3951570.641] wl_display@1.delete_id(27)
[3951570.667] wl_display@1.delete_id(23)
[3951570.672] wl_display@1.delete_id(25)
[3951570.676] wl_display@1.delete_id(22)
[3951570.680] wl_buffer@28.release()
[3951570.684] zxdg_toplevel_v6@17.configure(477, 336, array)
[3951570.694] zxdg_surface_v6@16.configure(301003)
[3951570.699] -> zxdg_surface_v6@16.ack_configure(301003)
[3951570.704] wl_callback@22.done(290292768)
[3951570.710] -> wl_compositor@4.create_region(new id wl_region@22)
[3951570.718] -> wl_compositor@4.create_region(new id wl_region@25)
[3951570.725] -> wl_region@25.add(32, 32, 477, 336)
[3951570.737] -> wl_surface@15.frame(new id wl_callback@23)
[3951571.837] -> wl_surface@15.set_opaque_region(wl_region@22)
[3951571.870] -> wl_region@22.destroy()
[3951571.874] -> wl_surface@15.set_input_region(wl_region@25)
[3951571.878] -> wl_region@25.destroy()
[3951571.882] -> wl_surface@15.attach(wl_buffer@28, 0, 0)
[3951571.890] -> wl_surface@15.damage(0, 0, 541, 400)
[3951571.900] -> wl_surface@15.commit()
[3951585.963] wl_display@1.delete_id(22)
[3951586.033] wl_display@1.delete_id(25)
[3951586.041] wl_display@1.delete_id(23)
[3951586.048] wl_buffer@28.release()
[3951586.055] zxdg_toplevel_v6@17.configure(478, 336, array)
[3951586.081] zxdg_surface_v6@16.configure(301004)
[3951586.092] -> zxdg_surface_v6@16.ack_configure(301004)
[3951586.099] wl_callback@23.done(290292784)
[3951586.110] -> wl_compositor@4.create_region(new id wl_region@23)
[3951586.124] -> wl_compositor@4.create_region(new id wl_region@25)
[3951586.132] -> wl_region@25.add(32, 32, 478, 336)
[3951586.154] -> wl_buffer@28.destroy()
[3951586.173] -> wl_shm_pool@26.create_buffer(new id wl_buffer@22, 0, 542, 400, 2168, 0)
[3951586.197] -> wl_surface@15.frame(new id wl_callback@27)
[3951588.051] -> zxdg_surface_v6@16.set_window_geometry(32, 32, 478, 336)
[3951588.110] -> wl_surface@15.set_opaque_region(wl_region@23)
[3951588.118] -> wl_region@23.destroy()
[3951588.123] -> wl_surface@15.set_input_region(wl_region@25)
[3951588.130] -> wl_region@25.destroy()
[3951588.134] -> wl_surface@15.attach(wl_buffer@22, 0, 0)
[3951588.144] -> wl_surface@15.damage(0, 0, 542, 400)
[3951588.154] -> wl_surface@15.commit()
[3951604.218] wl_display@1.delete_id(28)
[3951604.256] wl_display@1.delete_id(23)
[3951604.262] wl_display@1.delete_id(25)
[3951604.266] wl_display@1.delete_id(27)
[3951604.271] wl_buffer@22.release()
[3951604.276] zxdg_toplevel_v6@17.configure(479, 336, array)
[3951604.290] zxdg_surface_v6@16.configure(301005)
[3951604.307] -> zxdg_surface_v6@16.ack_configure(301005)
[3951604.315] wl_callback@27.done(290292802)
[3951604.327] -> wl_compositor@4.create_region(new id wl_region@27)
[3951604.360] -> wl_compositor@4.create_region(new id wl_region@25)
[3951604.373] -> wl_region@25.add(32, 32, 479, 336)
[3951604.424] -> wl_buffer@22.destroy()
[3951604.450] -> wl_shm_pool@26.create_buffer(new id wl_buffer@23, 0, 543, 400, 2172, 0)
[3951604.479] -> wl_surface@15.frame(new id wl_callback@28)
[3951606.461] -> zxdg_surface_v6@16.set_window_geometry(32, 32, 479, 336)
[3951606.525] -> wl_surface@15.set_opaque_region(wl_region@27)
[3951606.533] -> wl_region@27.destroy()
[3951606.539] -> wl_surface@15.set_input_region(wl_region@25)
[3951606.544] -> wl_region@25.destroy()
[3951606.548] -> wl_surface@15.attach(wl_buffer@23, 0, 0)
[3951606.635] -> wl_surface@15.damage(0, 0, 543, 400)
[3951606.656] -> wl_surface@15.commit()
[3951620.863] wl_display@1.delete_id(22)
[3951620.902] wl_display@1.delete_id(27)
[3951620.908] wl_display@1.delete_id(25)
[3951620.913] wl_display@1.delete_id(28)
[3951620.918] wl_buffer@23.release()
[3951620.924] zxdg_toplevel_v6@17.configure(479, 336, array)
[3951620.939] zxdg_surface_v6@16.configure(301006)
[3951620.952] -> zxdg_surface_v6@16.ack_configure(301006)
[3951620.959] wl_callback@28.done(290292818)
[3951620.970] -> wl_compositor@4.create_region(new id wl_region@28)
[3951620.982] -> wl_compositor@4.create_region(new id wl_region@25)
[3951620.989] -> wl_region@25.add(32, 32, 479, 336)
[3951621.005] -> wl_surface@15.frame(new id wl_callback@27)
[3951622.978] -> wl_surface@15.set_opaque_region(wl_region@28)
[3951623.042] -> wl_region@28.destroy()
[3951623.049] -> wl_surface@15.set_input_region(wl_region@25)
[3951623.053] -> wl_region@25.destroy()
[3951623.057] -> wl_surface@15.attach(wl_buffer@23, 0, 0)
[3951623.066] -> wl_surface@15.damage(0, 0, 543, 400)
[3951623.076] -> wl_surface@15.commit()
[3951636.043] wl_display@1.delete_id(28)
[3951636.078] wl_display@1.delete_id(25)
[3951636.083] wl_display@1.delete_id(27)
[3951636.087] wl_buffer@23.release()
[3951636.091] zxdg_toplevel_v6@17.configure(480, 336, array)
[3951636.104] zxdg_surface_v6@16.configure(301007)
[3951636.111] -> zxdg_surface_v6@16.ack_configure(301007)
[3951636.120] wl_callback@27.done(290292834)
[3951636.126] -> wl_compositor@4.create_region(new id wl_region@27)
[3951636.138] -> wl_compositor@4.create_region(new id wl_region@25)
[3951636.146] -> wl_region@25.add(32, 32, 480, 336)
[3951636.168] -> wl_buffer@23.destroy()
[3951636.187] -> wl_shm_pool@26.create_buffer(new id wl_buffer@28, 0, 544, 400, 2176, 0)
[3951636.212] -> wl_surface@15.frame(new id wl_callback@22)
[3951638.221] -> zxdg_surface_v6@16.set_window_geometry(32, 32, 480, 336)
[3951638.294] -> wl_surface@15.set_opaque_region(wl_region@27)
[3951638.300] -> wl_region@27.destroy()
[3951638.305] -> wl_surface@15.set_input_region(wl_region@25)
[3951638.310] -> wl_region@25.destroy()
[3951638.314] -> wl_surface@15.attach(wl_buffer@28, 0, 0)
[3951638.324] -> wl_surface@15.damage(0, 0, 544, 400)
[3951638.335] -> wl_surface@15.commit()
[3951653.868] wl_display@1.delete_id(23)
[3951653.904] wl_display@1.delete_id(27)
[3951653.909] wl_display@1.delete_id(25)
[3951653.914] wl_display@1.delete_id(22)
[3951653.920] wl_buffer@28.release()
[3951653.934] wl_callback@22.done(290292851)
[3951997.691] zxdg_toplevel_v6@17.configure(480, 336, array)
[3951997.863] zxdg_surface_v6@16.configure(301008)
[3951997.898] -> zxdg_surface_v6@16.ack_configure(301008)
[3951997.926] wl_keyboard@19.modifiers(301009, 0, 0, 0, 0)
[3951997.980] wl_keyboard@19.enter(301009, wl_surface@15, array)
[3951998.039] wl_data_device@11.data_offer(new id wl_data_offer@22295616)
[3951998.073] wl_data_offer@4278190081.offer("TARGETS")
[3951998.098] wl_data_offer@4278190081.offer("_VIMENC_TEXT")
[3951998.124] wl_data_offer@4278190081.offer("_VIM_TEXT")
[3951998.150] wl_data_offer@4278190081.offer("text/plain;charset=utf-8")
[3951998.181] wl_data_offer@4278190081.offer("UTF8_STRING")
[3951998.200] wl_data_offer@4278190081.offer("STRING")
[3951998.216] wl_data_offer@4278190081.offer("TEXT")
[3951998.233] wl_data_offer@4278190081.offer("COMPOUND_TEXT")
[3951998.256] wl_data_device@11.selection(wl_data_offer@4278190081)
[3951998.278] -> wl_data_offer@4278190080.destroy()
[3951998.335] wl_pointer@18.enter(301010, wl_surface@15, 510.289062, 216.968750)
[3951998.393] -> wl_surface@12.attach(wl_buffer@21, 0, 0)
[3951998.433] -> wl_surface@12.damage(0, 0, 32, 32)
[3951998.481] -> wl_surface@12.commit()
[3951998.496] -> wl_pointer@18.set_cursor(301010, wl_surface@12, 25, 17)
[3951998.544] wl_pointer@18.frame()
[3951998.562] -> wl_compositor@4.create_region(new id wl_region@22)
[3951998.595] -> wl_compositor@4.create_region(new id wl_region@25)
[3951998.620] -> wl_region@25.add(32, 32, 480, 336)
[3951998.677] -> wl_buffer@28.destroy()
[3951998.813] -> wl_shm_pool@26.destroy()
[3951999.381] -> wl_shm@5.create_pool(new id wl_shm_pool@27, fd 9, 870400)
[3951999.475] -> wl_shm_pool@27.create_buffer(new id wl_buffer@23, 0, 544, 400, 2176, 0)
[3951999.541] -> wl_surface@15.frame(new id wl_callback@24)
[3952002.779] -> wl_surface@15.set_opaque_region(wl_region@22)
[3952002.848] -> wl_region@22.destroy()
[3952002.861] -> wl_surface@15.set_input_region(wl_region@25)
[3952002.877] -> wl_region@25.destroy()
[3952002.890] -> wl_surface@15.attach(wl_buffer@23, 0, 0)
[3952002.921] -> wl_surface@15.damage(0, 0, 544, 400)
[3952002.961] -> wl_surface@15.commit()
[3952019.369] wl_display@1.delete_id(28)
[3952019.513] wl_display@1.delete_id(26)
[3952019.518] wl_display@1.delete_id(22)
[3952019.523] wl_display@1.delete_id(25)
[3952019.527] wl_display@1.delete_id(24)
[3952019.533] wl_buffer@23.release()
[3952019.541] wl_callback@24.done(290293217)
[3952081.540] wl_pointer@18.motion(290293274, 510.406250, 216.968750)
[3952081.678] wl_pointer@18.frame()
[3952106.330] wl_pointer@18.motion(290293297, 510.824219, 216.968750)
[3952106.524] wl_pointer@18.frame()
[3952121.760] wl_pointer@18.leave(301011, wl_surface@15)
[3952121.894] wl_pointer@18.frame()
[3954099.772] zxdg_toplevel_v6@17.configure(480, 336, array)
[3954099.859] zxdg_surface_v6@16.configure(301013)
[3954099.871] -> zxdg_surface_v6@16.ack_configure(301013)
[3954099.882] wl_keyboard@19.leave(301015, wl_surface@15)
[3954099.905] -> wl_compositor@4.create_region(new id wl_region@24)
[3954099.923] -> wl_compositor@4.create_region(new id wl_region@25)
[3954099.935] -> wl_region@25.add(32, 32, 480, 336)
[3954099.967] -> wl_surface@15.frame(new id wl_callback@22)
[3954101.606] -> wl_surface@15.set_opaque_region(wl_region@24)
[3954101.666] -> wl_region@24.destroy()
[3954101.675] -> wl_surface@15.set_input_region(wl_region@25)
[3954101.684] -> wl_region@25.destroy()
[3954101.692] -> wl_surface@15.attach(wl_buffer@23, 0, 0)
[3954101.711] -> wl_surface@15.damage(0, 0, 544, 400)
[3954101.733] -> wl_surface@15.commit()
[3954141.502] wl_display@1.delete_id(24)
[3954141.543] wl_display@1.delete_id(25)
[3954141.549] wl_display@1.delete_id(22)
[3954141.554] wl_buffer@23.release()
[3954141.558] wl_callback@22.done(290295339)
Sorry for the lengthy output! I tried to make the interaction as short as possible however wayland still likes to print a lot of info :)
Here's another output from WAYLAND_DEBUG=1 weston-eventdemo
except this time I
[285154.993] -> wl_display@1.get_registry(new id wl_registry@2)
[285155.128] -> wl_display@1.sync(new id wl_callback@3)
[285155.399] wl_display@1.delete_id(3)
[285155.431] wl_registry@2.global(1, "wl_drm", 2)
[285155.474] wl_registry@2.global(2, "wl_compositor", 3)
[285155.516] -> wl_registry@2.bind(2, "wl_compositor", 3, new id [unknown]@4)
[285155.564] wl_registry@2.global(3, "wl_shm", 1)
[285155.598] -> wl_registry@2.bind(3, "wl_shm", 1, new id [unknown]@5)
[285155.646] wl_registry@2.global(5, "wl_output", 2)
[285155.679] -> wl_registry@2.bind(5, "wl_output", 2, new id [unknown]@6)
[285155.742] wl_registry@2.global(6, "wl_data_device_manager", 3)
[285155.794] -> wl_registry@2.bind(6, "wl_data_device_manager", 3, new id [unknown]@7)
[285155.844] wl_registry@2.global(7, "gtk_primary_selection_device_manager", 1)
[285155.885] wl_registry@2.global(8, "zxdg_shell_v6", 1)
[285155.923] -> wl_registry@2.bind(8, "zxdg_shell_v6", 1, new id [unknown]@8)
[285155.972] wl_registry@2.global(9, "wl_shell", 1)
[285156.012] wl_registry@2.global(10, "gtk_shell1", 1)
[285156.049] wl_registry@2.global(11, "wl_subcompositor", 1)
[285156.086] -> wl_registry@2.bind(11, "wl_subcompositor", 1, new id [unknown]@9)
[285156.139] wl_registry@2.global(12, "zwp_pointer_gestures_v1", 1)
[285156.176] wl_registry@2.global(13, "zwp_tablet_manager_v2", 1)
[285156.211] wl_registry@2.global(14, "wl_seat", 5)
[285156.250] -> wl_registry@2.bind(14, "wl_seat", 5, new id [unknown]@10)
[285156.305] -> wl_data_device_manager@7.get_data_device(new id wl_data_device@11, wl_seat@10)
[285156.338] -> wl_compositor@4.create_surface(new id wl_surface@12)
[285156.376] wl_registry@2.global(15, "zwp_relative_pointer_manager_v1", 1)
[285156.418] -> wl_registry@2.bind(15, "zwp_relative_pointer_manager_v1", 1, new id [unknown]@13)
[285156.467] wl_registry@2.global(16, "zwp_pointer_constraints_v1", 1)
[285156.508] -> wl_registry@2.bind(16, "zwp_pointer_constraints_v1", 1, new id [unknown]@14)
[285156.557] wl_registry@2.global(17, "zxdg_exporter_v1", 1)
[285156.594] wl_registry@2.global(18, "zxdg_importer_v1", 1)
[285156.634] wl_callback@3.done(303003)
[285156.811] -> wl_shm@5.create_pool(new id wl_shm_pool@3, fd 8, 4096)
[285157.384] -> wl_shm_pool@3.resize(12288)
[285157.631] -> wl_shm_pool@3.resize(28672)
[285158.051] -> wl_shm_pool@3.resize(61440)
[285158.911] -> wl_shm_pool@3.resize(126976)
[285164.762] -> wl_shm_pool@3.resize(258048)
[285165.059] -> wl_shm_pool@3.resize(520192)
[285172.456] -> wl_shm_pool@3.resize(1044480)
[285178.674] -> wl_shm_pool@3.resize(2093056)
[285206.729] -> wl_compositor@4.create_surface(new id wl_surface@15)
[285206.758] -> zxdg_shell_v6@8.get_xdg_surface(new id zxdg_surface_v6@16, wl_surface@15)
[285206.767] -> zxdg_surface_v6@16.get_toplevel(new id zxdg_toplevel_v6@17)
[285206.774] -> wl_surface@15.commit()
[285206.902] -> zxdg_toplevel_v6@17.set_title("EventDemo")
[285243.453] wl_shm@5.format(0)
[285243.477] wl_shm@5.format(1)
[285243.481] wl_output@6.geometry(0, 0, 280, 160, 0, "SHP", "0x144d", 0)
[285243.506] wl_output@6.mode(3, 3840, 2160, 59997)
[285243.518] wl_output@6.scale(2)
[285243.522] wl_output@6.done()
[285243.525] wl_seat@10.capabilities(7)
[285243.530] -> wl_seat@10.get_pointer(new id wl_pointer@18)
[285243.537] -> wl_seat@10.get_keyboard(new id wl_keyboard@19)
[285243.542] -> wl_seat@10.get_touch(new id wl_touch@20)
[285243.547] wl_seat@10.name("seat0")
[285243.552] zxdg_toplevel_v6@17.configure(0, 0, array)
[285243.563] zxdg_surface_v6@16.configure(303005)
[285243.569] -> zxdg_surface_v6@16.ack_configure(303005)
[285243.575] -> wl_compositor@4.create_region(new id wl_region@21)
[285243.585] -> wl_compositor@4.create_region(new id wl_region@22)
[285243.591] -> wl_region@22.add(32, 32, 436, 336)
[285243.718] -> wl_shm@5.create_pool(new id wl_shm_pool@23, fd 9, 800000)
[285243.739] -> wl_shm_pool@23.create_buffer(new id wl_buffer@24, 0, 500, 400, 2000, 0)
[285243.758] -> wl_surface@15.frame(new id wl_callback@25)
[285249.766] -> zxdg_surface_v6@16.set_window_geometry(32, 32, 436, 336)
[285249.815] -> wl_surface@15.set_opaque_region(wl_region@21)
[285249.836] -> wl_region@21.destroy()
[285249.842] -> wl_surface@15.set_input_region(wl_region@22)
[285249.846] -> wl_region@22.destroy()
[285249.850] -> wl_surface@15.attach(wl_buffer@24, 0, 0)
[285249.858] -> wl_surface@15.damage(0, 0, 500, 400)
[285249.869] -> wl_surface@15.commit()
[285253.727] wl_display@1.delete_id(21)
[285253.759] wl_display@1.delete_id(22)
[285253.763] wl_keyboard@19.keymap(1, fd 8, 51740)
[285260.197] wl_keyboard@19.repeat_info(33, 500)
[285260.224] wl_buffer@24.release()
[285276.328] zxdg_toplevel_v6@17.configure(436, 336, array)
[285276.370] zxdg_surface_v6@16.configure(303007)
[285276.378] -> zxdg_surface_v6@16.ack_configure(303007)
[285276.384] wl_keyboard@19.modifiers(303009, 0, 0, 0, 0)
[285276.436] wl_keyboard@19.enter(303009, wl_surface@15, array)
[285276.452] wl_data_device@11.data_offer(new id wl_data_offer@23591232)
[285276.462] wl_data_offer@4278190080.offer("TARGETS")
[285276.470] wl_data_offer@4278190080.offer("_VIMENC_TEXT")
[285276.476] wl_data_offer@4278190080.offer("_VIM_TEXT")
[285276.482] wl_data_offer@4278190080.offer("text/plain;charset=utf-8")
[285276.490] wl_data_offer@4278190080.offer("UTF8_STRING")
[285276.496] wl_data_offer@4278190080.offer("STRING")
[285276.503] wl_data_offer@4278190080.offer("TEXT")
[285276.510] wl_data_offer@4278190080.offer("COMPOUND_TEXT")
[285276.516] wl_data_device@11.selection(wl_data_offer@4278190080)
[285313.759] wl_display@1.delete_id(25)
[285313.838] wl_surface@15.enter(wl_output@6)
[285313.848] wl_callback@25.done(290921479)
[285313.859] -> wl_compositor@4.create_region(new id wl_region@25)
[285313.872] -> wl_compositor@4.create_region(new id wl_region@22)
[285313.881] -> wl_region@22.add(32, 32, 436, 336)
[285313.895] -> wl_surface@15.frame(new id wl_callback@21)
[285314.892] -> wl_surface@15.set_opaque_region(wl_region@25)
[285315.038] -> wl_region@25.destroy()
[285315.045] -> wl_surface@15.set_input_region(wl_region@22)
[285315.050] -> wl_region@22.destroy()
[285315.053] -> wl_surface@15.attach(wl_buffer@24, 0, 0)
[285315.062] -> wl_surface@15.damage(0, 0, 500, 400)
[285315.073] -> wl_surface@15.commit()
[285330.353] wl_display@1.delete_id(25)
[285330.410] wl_display@1.delete_id(22)
[285330.419] wl_display@1.delete_id(21)
[285330.426] wl_buffer@24.release()
[285330.433] wl_callback@21.done(290921495)
[288467.447] wl_pointer@18.enter(303013, wl_surface@15, 315.320312, 32.343750)
[288467.631] -> wl_shm_pool@3.create_buffer(new id wl_buffer@21, 434176, 32, 32, 128, 0)
[288467.731] -> wl_surface@12.attach(wl_buffer@21, 0, 0)
[288467.786] -> wl_surface@12.damage(0, 0, 32, 32)
[288467.843] -> wl_surface@12.commit()
[288467.862] -> wl_pointer@18.set_cursor(303013, wl_surface@12, 17, 7)
[288467.920] wl_pointer@18.frame()
[288467.940] wl_pointer@18.motion(290924631, 315.320312, 32.343750)
[288468.008] wl_pointer@18.frame()
[288487.483] wl_pointer@18.motion(290924646, 315.093750, 33.218750)
[288487.625] wl_pointer@18.frame()
[288503.211] wl_pointer@18.motion(290924661, 314.859375, 34.140625)
[288503.334] wl_pointer@18.frame()
[288518.639] wl_pointer@18.motion(290924677, 314.859375, 34.863281)
[288518.752] wl_pointer@18.frame()
[288535.451] wl_pointer@18.motion(290924692, 314.859375, 35.347656)
[288535.551] wl_pointer@18.frame()
[288551.402] wl_pointer@18.motion(290924708, 314.609375, 36.074219)
[288551.486] wl_pointer@18.frame()
[288568.184] wl_pointer@18.motion(290924731, 313.859375, 37.539062)
[288568.373] wl_pointer@18.frame()
[288584.538] wl_pointer@18.motion(290924746, 313.351562, 38.777344)
[288584.635] wl_pointer@18.frame()
[288600.917] wl_pointer@18.motion(290924761, 312.835938, 39.781250)
[288600.995] wl_pointer@18.frame()
[288617.412] wl_pointer@18.motion(290924777, 312.308594, 41.324219)
[288617.503] -> wl_shm_pool@3.create_buffer(new id wl_buffer@22, 1400832, 32, 32, 128, 0)
[288617.583] -> wl_surface@12.attach(wl_buffer@22, 0, 0)
[288617.621] -> wl_surface@12.damage(0, 0, 32, 32)
[288617.666] -> wl_surface@12.commit()
[288617.679] -> wl_pointer@18.set_cursor(303013, wl_surface@12, 5, 5)
[288617.741] wl_pointer@18.frame()
[288634.155] wl_pointer@18.motion(290924792, 311.761719, 42.394531)
[288634.266] wl_pointer@18.frame()
[288650.663] wl_pointer@18.motion(290924808, 311.480469, 43.488281)
[288650.743] wl_pointer@18.frame()
[288667.424] wl_pointer@18.motion(290924823, 311.480469, 44.035156)
[288667.524] wl_pointer@18.frame()
[288683.175] wl_pointer@18.motion(290924846, 311.480469, 44.835938)
[288683.296] wl_pointer@18.frame()
[288699.910] wl_pointer@18.motion(290924861, 311.480469, 45.332031)
[288700.028] wl_pointer@18.frame()
[288716.429] wl_pointer@18.motion(290924869, 311.480469, 45.562500)
[288716.531] wl_pointer@18.frame()
[288732.759] wl_pointer@18.motion(290924892, 311.042969, 45.785156)
[288732.864] wl_pointer@18.frame()
[288749.477] wl_pointer@18.motion(290924908, 310.460938, 46.164062)
[288749.571] wl_pointer@18.frame()
[288766.008] wl_pointer@18.motion(290924923, 309.910156, 46.523438)
[288766.152] wl_pointer@18.frame()
[288782.641] wl_pointer@18.motion(290924938, 309.117188, 46.703125)
[288782.753] wl_pointer@18.frame()
[288798.432] wl_pointer@18.motion(290924962, 307.636719, 46.703125)
[288798.519] wl_pointer@18.frame()
[288814.836] wl_pointer@18.motion(290924977, 307.148438, 46.703125)
[288814.969] wl_pointer@18.frame()
[288831.910] wl_pointer@18.motion(290924992, 306.683594, 46.703125)
[288832.002] wl_pointer@18.frame()
[288848.564] wl_pointer@18.motion(290925008, 306.234375, 46.703125)
[288848.651] wl_pointer@18.frame()
[288865.232] wl_pointer@18.motion(290925023, 305.789062, 46.703125)
[288865.327] wl_pointer@18.frame()
[288881.899] wl_pointer@18.motion(290925038, 305.363281, 46.703125)
[288882.017] wl_pointer@18.frame()
[288898.583] wl_pointer@18.motion(290925054, 304.957031, 46.703125)
[288898.685] wl_pointer@18.frame()
[288914.761] wl_pointer@18.motion(290925077, 304.398438, 46.703125)
[288914.840] wl_pointer@18.frame()
[288931.871] wl_pointer@18.motion(290925092, 304.042969, 46.703125)
[288931.960] wl_pointer@18.frame()
[288948.171] wl_pointer@18.motion(290925108, 303.687500, 46.703125)
[288948.330] wl_pointer@18.frame()
[288965.235] wl_pointer@18.motion(290925123, 303.332031, 46.703125)
[288965.322] wl_pointer@18.frame()
[288981.785] wl_pointer@18.motion(290925139, 302.976562, 46.703125)
[288981.924] wl_pointer@18.frame()
[288998.405] wl_pointer@18.motion(290925154, 302.800781, 46.703125)
[288998.507] wl_pointer@18.frame()
[289015.402] wl_pointer@18.motion(290925177, 302.289062, 46.703125)
[289015.505] wl_pointer@18.frame()
[289032.057] wl_pointer@18.motion(290925192, 301.945312, 46.703125)
[289032.162] wl_pointer@18.frame()
[289048.146] wl_pointer@18.motion(290925208, 301.601562, 46.703125)
[289048.250] wl_pointer@18.frame()
[289065.023] wl_pointer@18.motion(290925223, 301.257812, 46.703125)
[289065.141] wl_pointer@18.frame()
[289081.893] wl_pointer@18.motion(290925239, 300.914062, 46.703125)
[289082.007] wl_pointer@18.frame()
[289098.113] wl_pointer@18.motion(290925254, 300.570312, 46.703125)
[289098.208] wl_pointer@18.frame()
[289114.847] wl_pointer@18.motion(290925277, 299.667969, 46.703125)
[289115.004] wl_pointer@18.frame()
[289131.504] wl_pointer@18.motion(290925292, 298.882812, 46.703125)
[289131.583] wl_pointer@18.frame()
[289148.224] wl_pointer@18.motion(290925308, 298.050781, 46.703125)
[289148.372] wl_pointer@18.frame()
[289165.450] wl_pointer@18.motion(290925323, 297.164062, 46.703125)
[289165.535] wl_pointer@18.frame()
[289181.788] wl_pointer@18.motion(290925339, 296.230469, 46.703125)
[289181.892] wl_pointer@18.frame()
[289198.478] wl_pointer@18.motion(290925354, 295.496094, 46.703125)
[289198.560] wl_pointer@18.frame()
[289215.498] wl_pointer@18.motion(290925377, 294.761719, 46.703125)
[289215.575] wl_pointer@18.frame()
[289231.942] wl_pointer@18.motion(290925393, 294.281250, 46.703125)
[289232.015] wl_pointer@18.frame()
[289248.683] wl_pointer@18.motion(290925408, 293.824219, 46.703125)
[289248.760] wl_pointer@18.frame()
[289265.015] wl_pointer@18.motion(290925423, 293.394531, 46.703125)
[289265.094] wl_pointer@18.frame()
[289281.565] wl_pointer@18.motion(290925439, 292.992188, 46.703125)
[289281.746] wl_pointer@18.frame()
[289298.247] wl_pointer@18.motion(290925454, 292.609375, 46.703125)
[289298.396] wl_pointer@18.frame()
[289314.914] wl_pointer@18.motion(290925477, 292.074219, 46.703125)
[289315.082] wl_pointer@18.frame()
[289331.758] wl_pointer@18.motion(290925493, 291.535156, 46.703125)
[289331.845] wl_pointer@18.frame()
[289348.241] wl_pointer@18.motion(290925508, 290.980469, 46.703125)
[289348.419] wl_pointer@18.frame()
[289364.830] wl_pointer@18.motion(290925523, 290.195312, 46.703125)
[289364.907] wl_pointer@18.frame()
[289381.556] wl_pointer@18.motion(290925539, 289.789062, 46.703125)
[289381.791] wl_pointer@18.frame()
[289398.254] wl_pointer@18.motion(290925554, 289.382812, 46.703125)
[289398.396] wl_pointer@18.frame()
[289414.752] wl_pointer@18.motion(290925577, 288.347656, 46.703125)
[289414.823] wl_pointer@18.frame()
[289431.576] wl_pointer@18.motion(290925593, 287.691406, 46.703125)
[289431.728] wl_pointer@18.frame()
[289448.319] wl_pointer@18.motion(290925608, 286.785156, 46.703125)
[289448.411] wl_pointer@18.frame()
[289465.023] wl_pointer@18.motion(290925623, 285.859375, 46.703125)
[289465.091] wl_pointer@18.frame()
[289481.752] wl_pointer@18.motion(290925639, 285.402344, 46.703125)
[289481.838] wl_pointer@18.frame()
[289498.456] wl_pointer@18.motion(290925654, 284.960938, 46.703125)
[289498.550] wl_pointer@18.frame()
[289514.903] wl_pointer@18.motion(290925677, 284.296875, 46.703125)
[289515.047] wl_pointer@18.frame()
[289531.914] wl_pointer@18.motion(290925693, 283.867188, 46.703125)
[289531.985] wl_pointer@18.frame()
[289548.109] wl_pointer@18.motion(290925708, 283.460938, 46.703125)
[289548.178] wl_pointer@18.frame()
[289565.346] wl_pointer@18.motion(290925723, 283.066406, 46.703125)
[289565.430] wl_pointer@18.frame()
[289581.910] wl_pointer@18.motion(290925739, 282.699219, 46.703125)
[289581.996] wl_pointer@18.frame()
Here is where I press the left mouse button in order to begin moving the window:
[290028.746] wl_pointer@18.button(303014, 290926193, 272, 1)
[290028.883] -> zxdg_toplevel_v6@17.move(wl_seat@10, 303014)
[290028.921] wl_pointer@18.frame()
[290032.157] wl_keyboard@19.leave(303015, wl_surface@15)
[290032.255] wl_pointer@18.leave(303016, wl_surface@15)
[290032.296] wl_pointer@18.frame()
[290032.323] -> wl_surface@15.frame(new id wl_callback@25)
[290034.208] -> wl_surface@15.attach(wl_buffer@24, 0, 0)
[290034.261] -> wl_surface@15.damage(0, 0, 500, 400)
[290034.301] -> wl_surface@15.commit()
[290046.563] wl_display@1.delete_id(25)
[290046.627] wl_buffer@24.release()
[290046.642] wl_callback@25.done(290926211)
[294808.688] wl_keyboard@19.modifiers(303017, 0, 0, 0, 0)
[294808.734] wl_keyboard@19.enter(303017, wl_surface@15, array)
[294808.751] wl_data_device@11.data_offer(new id wl_data_offer@23403088)
[294808.762] wl_data_offer@4278190081.offer("TARGETS")
[294808.769] wl_data_offer@4278190081.offer("_VIMENC_TEXT")
[294808.776] wl_data_offer@4278190081.offer("_VIM_TEXT")
[294808.782] wl_data_offer@4278190081.offer("text/plain;charset=utf-8")
[294808.788] wl_data_offer@4278190081.offer("UTF8_STRING")
[294808.795] wl_data_offer@4278190081.offer("STRING")
[294808.800] wl_data_offer@4278190081.offer("TEXT")
[294808.806] wl_data_offer@4278190081.offer("COMPOUND_TEXT")
[294808.812] wl_data_device@11.selection(wl_data_offer@4278190081)
[294808.819] -> wl_data_offer@4278190080.destroy()
[294808.829] wl_pointer@18.enter(303018, wl_surface@15, 282.664062, 46.503906)
[294808.865] -> wl_surface@12.attach(wl_buffer@22, 0, 0)
[294808.880] -> wl_surface@12.damage(0, 0, 32, 32)
[294808.895] -> wl_surface@12.commit()
[294808.900] -> wl_pointer@18.set_cursor(303018, wl_surface@12, 5, 5)
[294808.917] wl_pointer@18.frame()
[294808.926] -> wl_surface@15.frame(new id wl_callback@25)
[294809.905] -> wl_surface@15.attach(wl_buffer@24, 0, 0)
[294809.942] -> wl_surface@15.damage(0, 0, 500, 400)
[294809.955] -> wl_surface@15.commit()
[294831.680] wl_display@1.delete_id(25)
[294831.748] wl_buffer@24.release()
[294831.760] wl_callback@25.done(290930996)
[296757.527] wl_pointer@18.motion(290932919, 282.664062, 42.105469)
[296757.771] wl_pointer@18.frame()
[296773.750] wl_pointer@18.motion(290932934, 282.664062, 33.085938)
[296773.860] -> wl_surface@12.attach(wl_buffer@21, 0, 0)
[296773.899] -> wl_surface@12.damage(0, 0, 32, 32)
[296773.941] -> wl_surface@12.commit()
[296773.957] -> wl_pointer@18.set_cursor(303018, wl_surface@12, 17, 7)
[296773.999] wl_pointer@18.frame()
[296790.035] wl_pointer@18.leave(303019, wl_surface@15)
[296790.126] wl_pointer@18.frame()
[297382.026] zxdg_toplevel_v6@17.configure(436, 336, array)
[297382.077] zxdg_surface_v6@16.configure(303021)
[297382.087] -> zxdg_surface_v6@16.ack_configure(303021)
[297382.095] wl_keyboard@19.leave(303023, wl_surface@15)
[297382.111] -> wl_compositor@4.create_region(new id wl_region@25)
[297382.122] -> wl_compositor@4.create_region(new id wl_region@26)
[297382.136] -> wl_region@26.add(32, 32, 436, 336)
[297382.169] -> wl_surface@15.frame(new id wl_callback@27)
[297384.110] -> wl_surface@15.set_opaque_region(wl_region@25)
[297384.196] -> wl_region@25.destroy()
[297384.210] -> wl_surface@15.set_input_region(wl_region@26)
[297384.223] -> wl_region@26.destroy()
[297384.235] -> wl_surface@15.attach(wl_buffer@24, 0, 0)
[297384.265] -> wl_surface@15.damage(0, 0, 500, 400)
[297384.318] -> wl_surface@15.commit()
[297419.225] wl_display@1.delete_id(25)
[297419.266] wl_display@1.delete_id(26)
[297419.281] wl_display@1.delete_id(27)
[297419.288] wl_buffer@24.release()
[297419.295] wl_callback@27.done(290933584)
Thanks!
As a comparison, do you have a trace of wayland-window with your patch? We need to see what differs. Looks like the xdg_shell has changed the "configure" protocol (requiring an ack apparently). Maybe something is not implemented properly on this regard. I haven't yet taken the time to familiarize myself with xdg_shell.
Ah of course! Here's the full output of WAYLAND_DEBUG=1 cargo run --example simple_window
using this new xdg-shell branch:
[ 92682.377] -> wl_display@1.get_registry(new id wl_registry@2)
[ 92682.400] -> wl_display@1.sync(new id wl_callback@3)
[ 92682.537] wl_display@1.delete_id(3)
[ 92682.543] wl_registry@2.global(1, "wl_drm", 2)
[ 92682.554] wl_registry@2.global(2, "wl_compositor", 3)
[ 92682.560] wl_registry@2.global(3, "wl_shm", 1)
[ 92682.567] wl_registry@2.global(4, "wl_output", 2)
[ 92682.582] wl_registry@2.global(5, "wl_data_device_manager", 3)
[ 92682.591] wl_registry@2.global(6, "gtk_primary_selection_device_manager", 1)
[ 92682.600] wl_registry@2.global(7, "zxdg_shell_v6", 1)
[ 92682.612] wl_registry@2.global(8, "wl_shell", 1)
[ 92682.620] wl_registry@2.global(9, "gtk_shell1", 1)
[ 92682.630] wl_registry@2.global(10, "wl_subcompositor", 1)
[ 92682.642] -> wl_registry@2.bind(2, "wl_compositor", 3, new id [unknown]@4)
[ 92682.654] -> wl_registry@2.bind(10, "wl_subcompositor", 1, new id [unknown]@5)
[ 92682.664] -> wl_registry@2.bind(3, "wl_shm", 1, new id [unknown]@6)
[ 92682.673] -> wl_registry@2.bind(7, "zxdg_shell_v6", 1, new id [unknown]@7)
[ 92682.682] wl_registry@2.global(11, "zwp_pointer_gestures_v1", 1)
[ 92682.689] wl_registry@2.global(12, "zwp_tablet_manager_v2", 1)
[ 92682.695] wl_registry@2.global(13, "wl_seat", 5)
[ 92682.702] wl_registry@2.global(14, "zwp_relative_pointer_manager_v1", 1)
[ 92682.708] wl_registry@2.global(15, "zwp_pointer_constraints_v1", 1)
[ 92682.714] wl_registry@2.global(16, "zxdg_exporter_v1", 1)
[ 92682.720] wl_registry@2.global(17, "zxdg_importer_v1", 1)
[ 92682.728] wl_callback@3.done(637)
[ 92682.765] -> wl_compositor@4.create_surface(new id wl_surface@3)
[ 92682.772] -> wl_shm@6.create_pool(new id wl_shm_pool@8, fd 5, 64)
[ 92682.780] -> wl_shm_pool@8.create_buffer(new id wl_buffer@9, 0, 4, 4, 16, 0)
[ 92682.795] -> wl_registry@2.bind(13, "wl_seat", 1, new id [unknown]@10)
[ 92682.812] -> wl_shm@6.create_pool(new id wl_shm_pool@11, fd 7, 1536)
[ 92682.821] -> wl_compositor@4.create_surface(new id wl_surface@12)
[ 92682.826] -> wl_compositor@4.create_surface(new id wl_surface@13)
[ 92682.830] -> wl_compositor@4.create_surface(new id wl_surface@14)
[ 92682.834] -> wl_compositor@4.create_surface(new id wl_surface@15)
[ 92682.841] -> wl_subcompositor@5.get_subsurface(new id wl_subsurface@16, wl_surface@12, wl_surface@3)
[ 92682.849] -> wl_subcompositor@5.get_subsurface(new id wl_subsurface@17, wl_surface@13, wl_surface@3)
[ 92682.858] -> wl_subcompositor@5.get_subsurface(new id wl_subsurface@18, wl_surface@14, wl_surface@3)
[ 92682.865] -> wl_subcompositor@5.get_subsurface(new id wl_subsurface@19, wl_surface@15, wl_surface@3)
[ 92682.874] -> wl_subsurface@16.set_desync()
[ 92682.876] -> wl_subsurface@17.set_desync()
[ 92682.879] -> wl_subsurface@18.set_desync()
[ 92682.881] -> wl_subsurface@19.set_desync()
[ 92682.884] -> zxdg_shell_v6@7.get_xdg_surface(new id zxdg_surface_v6@20, wl_surface@3)
[ 92682.890] -> zxdg_surface_v6@20.get_toplevel(new id zxdg_toplevel_v6@21)
[ 92682.895] -> wl_surface@3.commit()
[ 92682.898] -> wl_seat@10.get_pointer(new id wl_pointer@22)
[ 92682.984] -> wl_shm@6.create_pool(new id wl_shm_pool@23, fd 9, 1024)
[ 92683.089] -> wl_shm_pool@23.resize(4352)
[ 92683.114] -> wl_shm_pool@23.resize(11008)
[ 92683.159] -> wl_shm_pool@23.resize(24320)
[ 92683.283] -> wl_shm_pool@23.resize(50944)
[ 92683.450] -> wl_shm_pool@23.resize(104192)
[ 92684.054] -> wl_shm_pool@23.resize(210688)
[ 92684.193] -> wl_shm_pool@23.resize(423680)
[ 92685.260] -> wl_shm_pool@23.resize(849664)
[ 92687.587] -> wl_shm_pool@23.resize(1701632)
[ 92692.950] -> wl_compositor@4.create_surface(new id wl_surface@24)
[ 92692.967] -> wl_shm_pool@11.resize(3072)
[ 92694.637] -> wl_shm_pool@11.create_buffer(new id wl_buffer@25, 0, 32, 24, 128, 0)
[ 92694.652] -> wl_surface@12.attach(wl_buffer@25, 0, 0)
[ 92694.659] -> wl_subsurface@16.set_position(-8, -24)
[ 92694.665] -> wl_shm_pool@11.create_buffer(new id wl_buffer@26, 0, 8, 16, 32, 0)
[ 92694.677] -> wl_surface@13.attach(wl_buffer@26, 0, 0)
[ 92694.689] -> wl_subsurface@17.set_position(16, 0)
[ 92694.694] -> wl_shm_pool@11.create_buffer(new id wl_buffer@27, 0, 32, 8, 128, 0)
[ 92694.706] -> wl_surface@14.attach(wl_buffer@27, 0, 0)
[ 92694.712] -> wl_subsurface@18.set_position(-8, 16)
[ 92694.717] -> wl_shm_pool@11.create_buffer(new id wl_buffer@28, 0, 8, 16, 32, 0)
[ 92694.731] -> wl_surface@15.attach(wl_buffer@28, 0, 0)
[ 92694.739] -> wl_subsurface@19.set_position(-8, 0)
[ 92694.744] -> wl_surface@12.commit()
[ 92694.747] -> wl_surface@13.commit()
[ 92694.749] -> wl_surface@14.commit()
[ 92694.752] -> wl_surface@15.commit()
[ 92706.360] zxdg_toplevel_v6@21.configure(0, 0, array)
configure: resizing to (100, 100)
[ 92706.407] zxdg_surface_v6@20.configure(638)
[ 92706.413] -> zxdg_surface_v6@20.ack_configure(638)
[ 92706.439] -> wl_buffer@25.destroy()
[ 92706.444] -> wl_buffer@26.destroy()
[ 92706.448] -> wl_buffer@27.destroy()
[ 92706.451] -> wl_buffer@28.destroy()
[ 92706.461] -> wl_shm_pool@11.resize(11136)
[ 92712.908] -> wl_shm_pool@11.create_buffer(new id wl_buffer@29, 0, 116, 24, 464, 0)
[ 92712.940] -> wl_surface@12.attach(wl_buffer@29, 0, 0)
[ 92712.966] -> wl_subsurface@16.set_position(-8, -24)
[ 92712.973] -> wl_shm_pool@11.create_buffer(new id wl_buffer@30, 0, 8, 100, 32, 0)
[ 92712.987] -> wl_surface@13.attach(wl_buffer@30, 0, 0)
[ 92712.993] -> wl_subsurface@17.set_position(100, 0)
[ 92712.998] -> wl_shm_pool@11.create_buffer(new id wl_buffer@31, 0, 116, 8, 464, 0)
[ 92713.010] -> wl_surface@14.attach(wl_buffer@31, 0, 0)
[ 92713.017] -> wl_subsurface@18.set_position(-8, 100)
[ 92713.023] -> wl_shm_pool@11.create_buffer(new id wl_buffer@32, 0, 8, 100, 32, 0)
[ 92713.035] -> wl_surface@15.attach(wl_buffer@32, 0, 0)
[ 92713.041] -> wl_subsurface@19.set_position(-8, 0)
[ 92713.047] -> wl_surface@12.commit()
[ 92713.050] -> wl_surface@13.commit()
[ 92713.053] -> wl_surface@14.commit()
[ 92713.055] -> wl_surface@15.commit()
[ 92719.039] -> wl_shm_pool@8.resize(40000)
[ 92719.067] -> wl_buffer@9.destroy()
[ 92719.075] -> wl_shm_pool@8.create_buffer(new id wl_buffer@33, 0, 100, 100, 400, 0)
[ 92719.090] -> wl_surface@3.attach(wl_buffer@33, 0, 0)
[ 92719.097] -> wl_surface@3.commit()
[ 92734.814] wl_display@1.delete_id(25)
[ 92734.846] wl_display@1.delete_id(26)
[ 92734.851] wl_display@1.delete_id(27)
[ 92734.856] wl_display@1.delete_id(28)
[ 92734.860] wl_display@1.delete_id(9)
[ 92734.865] zxdg_toplevel_v6@21.configure(0, 0, array)
configure: resizing to (100, 100)
[ 92734.895] zxdg_surface_v6@20.configure(640)
[ 92734.902] -> zxdg_surface_v6@20.ack_configure(640)
[ 92734.915] -> wl_buffer@29.destroy()
[ 92734.920] -> wl_buffer@30.destroy()
[ 92734.924] -> wl_buffer@31.destroy()
[ 92734.928] -> wl_buffer@32.destroy()
[ 92741.987] -> wl_shm_pool@11.create_buffer(new id wl_buffer@34, 0, 116, 24, 464, 0)
[ 92742.052] -> wl_surface@12.attach(wl_buffer@34, 0, 0)
[ 92742.062] -> wl_subsurface@16.set_position(-8, -24)
[ 92742.071] -> wl_shm_pool@11.create_buffer(new id wl_buffer@35, 0, 8, 100, 32, 0)
[ 92742.092] -> wl_surface@13.attach(wl_buffer@35, 0, 0)
[ 92742.103] -> wl_subsurface@17.set_position(100, 0)
[ 92742.109] -> wl_shm_pool@11.create_buffer(new id wl_buffer@36, 0, 116, 8, 464, 0)
[ 92742.122] -> wl_surface@14.attach(wl_buffer@36, 0, 0)
[ 92742.129] -> wl_subsurface@18.set_position(-8, 100)
[ 92742.135] -> wl_shm_pool@11.create_buffer(new id wl_buffer@37, 0, 8, 100, 32, 0)
[ 92742.147] -> wl_surface@15.attach(wl_buffer@37, 0, 0)
[ 92742.155] -> wl_subsurface@19.set_position(-8, 0)
[ 92742.162] -> wl_surface@12.commit()
[ 92742.166] -> wl_surface@13.commit()
[ 92742.169] -> wl_surface@14.commit()
[ 92742.171] -> wl_surface@15.commit()
[ 92742.176] -> wl_buffer@33.destroy()
[ 92742.182] -> wl_shm_pool@8.create_buffer(new id wl_buffer@38, 0, 100, 100, 400, 0)
[ 92742.197] -> wl_surface@3.attach(wl_buffer@38, 0, 0)
[ 92742.204] -> wl_surface@3.commit()
[ 96640.211] wl_display@1.delete_id(29)
[ 96640.300] wl_display@1.delete_id(30)
[ 96640.323] wl_display@1.delete_id(31)
[ 96640.365] wl_display@1.delete_id(32)
[ 96640.384] wl_display@1.delete_id(33)
[ 96640.404] wl_pointer@22.enter(643, wl_surface@13, 7.722656, 80.187500)
[ 96640.488] -> wl_shm_pool@23.create_buffer(new id wl_buffer@39, 453888, 24, 24, 96, 0)
[ 96640.562] -> wl_surface@24.attach(wl_buffer@39, 0, 0)
[ 96640.598] -> wl_surface@24.damage(0, 0, 24, 24)
[ 96640.638] -> wl_surface@24.commit()
[ 96640.655] -> wl_pointer@22.set_cursor(643, wl_surface@24, 19, 13)
[ 96640.704] wl_pointer@22.motion(6451419, 7.722656, 80.187500)
[ 96659.054] wl_pointer@22.motion(6451434, 7.339844, 80.187500)
[ 96675.140] wl_pointer@22.motion(6451450, 7.148438, 80.187500)
[ 96709.472] wl_pointer@22.motion(6451488, 6.953125, 80.187500)
[ 96740.161] wl_pointer@22.motion(6451519, 6.761719, 80.187500)
[ 96801.834] wl_pointer@22.motion(6451580, 6.550781, 80.187500)
[ 96862.926] wl_pointer@22.motion(6451642, 6.316406, 80.187500)
[ 97062.651] wl_pointer@22.motion(6451842, 6.097656, 80.187500)
[ 97079.204] wl_pointer@22.motion(6451857, 5.675781, 80.187500)
[ 97095.168] wl_pointer@22.motion(6451873, 5.253906, 80.187500)
Here is where I press the right edge with the left mouse button in an attempt to begin resizing it:
[ 97669.311] wl_pointer@22.button(644, 6452449, 272, 1)
[ 97669.395] -> zxdg_toplevel_v6@21.resize(wl_seat@10, 644, 8)
[ 98391.711] wl_pointer@22.motion(6453172, 6.027344, 80.187500)
[ 98407.867] wl_pointer@22.motion(6453188, 7.472656, 80.187500)
[ 98424.317] wl_pointer@22.motion(6453203, 8.820312, 80.187500)
[ 98440.725] wl_pointer@22.motion(6453219, 10.035156, 80.187500)
[ 98457.171] wl_pointer@22.motion(6453234, 11.300781, 80.187500)
[ 98473.806] wl_pointer@22.motion(6453249, 12.613281, 80.187500)
[ 98490.482] wl_pointer@22.motion(6453265, 13.976562, 80.187500)
[ 98506.523] wl_pointer@22.motion(6453288, 16.789062, 80.187500)
[ 98522.926] wl_pointer@22.motion(6453303, 20.152344, 80.187500)
[ 98539.564] wl_pointer@22.motion(6453319, 23.515625, 80.187500)
[ 98556.274] wl_pointer@22.motion(6453334, 26.878906, 80.187500)
[ 98572.990] wl_pointer@22.motion(6453349, 30.246094, 80.187500)
[ 98589.585] wl_pointer@22.motion(6453365, 33.609375, 80.187500)
[ 98606.193] wl_pointer@22.motion(6453380, 36.972656, 80.187500)
[ 98622.259] wl_pointer@22.motion(6453403, 40.894531, 80.187500)
[ 98639.312] wl_pointer@22.motion(6453419, 43.136719, 80.187500)
[ 98656.998] wl_pointer@22.motion(6453434, 45.378906, 80.187500)
[ 98673.535] wl_pointer@22.motion(6453449, 47.621094, 80.187500)
[ 98690.384] wl_pointer@22.motion(6453465, 49.867188, 80.187500)
[ 98706.804] wl_pointer@22.motion(6453480, 52.109375, 80.187500)
[ 98723.162] wl_pointer@22.motion(6453503, 56.031250, 81.277344)
[ 98740.102] wl_pointer@22.motion(6453519, 58.250000, 81.277344)
[ 98756.853] wl_pointer@22.motion(6453534, 60.472656, 81.277344)
[ 98773.408] wl_pointer@22.motion(6453549, 61.558594, 81.277344)
[ 98790.221] wl_pointer@22.motion(6453565, 62.593750, 81.277344)
[ 98807.000] wl_pointer@22.motion(6453580, 63.582031, 81.277344)
[ 98823.473] wl_pointer@22.motion(6453603, 64.964844, 81.277344)
[ 98840.144] wl_pointer@22.motion(6453619, 65.808594, 81.277344)
[ 98885.757] wl_pointer@22.motion(6453665, 66.179688, 81.277344)
[ 98923.710] wl_pointer@22.motion(6453703, 66.496094, 81.277344)
[ 98940.700] wl_pointer@22.motion(6453711, 66.792969, 81.277344)
[ 98956.694] wl_pointer@22.motion(6453734, 67.078125, 81.554688)
[ 98973.463] wl_pointer@22.motion(6453749, 68.214844, 81.835938)
[ 98990.163] wl_pointer@22.motion(6453765, 69.410156, 82.421875)
[ 99006.751] wl_pointer@22.motion(6453780, 70.671875, 82.421875)
[ 99023.472] wl_pointer@22.motion(6453803, 72.320312, 82.421875)
[ 99040.236] wl_pointer@22.motion(6453819, 72.992188, 82.421875)
[ 99056.728] wl_pointer@22.motion(6453834, 73.750000, 82.421875)
[ 99073.495] wl_pointer@22.motion(6453849, 74.617188, 82.421875)
[ 99089.977] wl_pointer@22.motion(6453865, 75.503906, 82.421875)
[ 99107.050] wl_pointer@22.motion(6453880, 76.339844, 82.421875)
[ 99123.474] wl_pointer@22.motion(6453903, 77.121094, 82.421875)
[ 99161.875] wl_pointer@22.motion(6453942, 77.460938, 82.421875)
[ 99178.338] wl_pointer@22.motion(6453957, 78.402344, 82.726562)
[ 99194.459] wl_pointer@22.motion(6453972, 79.714844, 83.367188)
[ 99211.002] wl_pointer@22.motion(6453988, 81.480469, 83.703125)
[ 99227.624] wl_pointer@22.motion(6454003, 82.988281, 84.074219)
[ 99244.710] wl_pointer@22.motion(6454019, 84.578125, 84.074219)
[ 99261.040] wl_pointer@22.motion(6454034, 85.390625, 84.074219)
[ 99277.358] wl_pointer@22.motion(6454057, 86.660156, 84.074219)
[ 99293.585] wl_pointer@22.motion(6454072, 87.625000, 84.074219)
[ 99310.255] wl_pointer@22.motion(6454088, 88.539062, 84.074219)
[ 99326.452] wl_pointer@22.motion(6454095, 88.976562, 84.074219)
[ 99343.286] wl_pointer@22.motion(6454111, 89.386719, 84.074219)
[ 99360.223] wl_pointer@22.motion(6454134, 90.128906, 84.074219)
[ 99376.372] wl_pointer@22.motion(6454149, 91.546875, 84.421875)
[ 99392.503] wl_pointer@22.motion(6454172, 95.058594, 85.562500)
[ 99409.056] wl_pointer@22.motion(6454188, 97.746094, 85.988281)
[ 99425.566] wl_pointer@22.motion(6454203, 100.707031, 86.949219)
[ 99442.239] wl_pointer@22.motion(6454218, 103.941406, 87.488281)
[ 99459.399] wl_pointer@22.motion(6454234, 107.304688, 88.031250)
[ 99475.485] wl_pointer@22.motion(6454249, 110.667969, 88.031250)
[ 99492.100] wl_pointer@22.motion(6454265, 114.035156, 88.031250)
[ 99508.883] wl_pointer@22.motion(6454288, 119.078125, 88.578125)
[ 99525.675] wl_pointer@22.motion(6454303, 122.441406, 88.578125)
[ 99542.291] wl_pointer@22.motion(6454318, 125.804688, 88.578125)
[ 99558.895] wl_pointer@22.motion(6454334, 128.046875, 88.578125)
[ 99575.590] wl_pointer@22.motion(6454349, 130.289062, 88.578125)
[ 99592.236] wl_pointer@22.motion(6454365, 131.972656, 88.578125)
[ 99608.844] wl_pointer@22.motion(6454388, 133.656250, 88.578125)
[ 99625.759] wl_pointer@22.motion(6454403, 134.738281, 88.578125)
[ 99642.595] wl_pointer@22.motion(6454418, 135.722656, 88.578125)
[ 99659.083] wl_pointer@22.motion(6454434, 136.609375, 88.578125)
[ 99675.633] wl_pointer@22.motion(6454449, 137.828125, 88.578125)
[ 99692.014] wl_pointer@22.motion(6454465, 139.449219, 88.578125)
[ 99708.962] wl_pointer@22.motion(6454488, 141.929688, 88.578125)
[ 99725.766] wl_pointer@22.motion(6454503, 143.699219, 88.578125)
[ 99742.180] wl_pointer@22.motion(6454518, 145.570312, 88.578125)
[ 99759.188] wl_pointer@22.motion(6454534, 147.539062, 88.578125)
[ 99775.610] wl_pointer@22.motion(6454549, 149.605469, 88.578125)
[ 99792.313] wl_pointer@22.motion(6454565, 151.761719, 88.578125)
[ 99809.090] wl_pointer@22.motion(6454588, 155.015625, 88.578125)
[ 99825.665] wl_pointer@22.motion(6454603, 157.183594, 88.578125)
[ 99842.028] wl_pointer@22.motion(6454618, 159.351562, 88.578125)
[ 99858.842] wl_pointer@22.motion(6454634, 161.519531, 88.578125)
[ 99875.406] wl_pointer@22.motion(6454649, 163.687500, 88.578125)
[ 99892.430] wl_pointer@22.motion(6454672, 166.941406, 88.578125)
[ 99908.806] wl_pointer@22.motion(6454688, 169.113281, 88.578125)
[ 99925.366] wl_pointer@22.motion(6454703, 171.281250, 88.578125)
[ 99942.093] wl_pointer@22.motion(6454718, 173.449219, 88.578125)
[ 99958.783] wl_pointer@22.motion(6454734, 174.511719, 88.578125)
[ 99975.070] wl_pointer@22.motion(6454749, 175.519531, 88.578125)
[ 99991.963] wl_pointer@22.motion(6454772, 176.941406, 88.578125)
[100009.084] wl_pointer@22.motion(6454788, 177.824219, 88.578125)
[100025.410] wl_pointer@22.motion(6454795, 178.250000, 88.578125)
[100046.004] wl_pointer@22.motion(6454826, 178.640625, 88.578125)
[100084.930] wl_pointer@22.motion(6454865, 178.984375, 88.578125)
[100101.000] wl_pointer@22.motion(6454880, 179.609375, 88.578125)
[100117.567] wl_pointer@22.motion(6454895, 180.523438, 88.578125)
[100133.748] wl_pointer@22.motion(6454911, 181.128906, 88.578125)
[100150.340] wl_pointer@22.motion(6454926, 181.738281, 88.578125)
[100166.726] wl_pointer@22.motion(6454941, 182.347656, 88.578125)
[100182.874] wl_pointer@22.motion(6454957, 182.957031, 88.578125)
[100199.202] wl_pointer@22.motion(6454972, 183.574219, 88.578125)
[100215.954] wl_pointer@22.motion(6454988, 183.914062, 88.578125)
[100844.904] wl_pointer@22.button(645, 6455626, 272, 0)
[100845.037] wl_pointer@22.leave(646, wl_surface@13)
[100845.103] -> wl_shm_pool@23.create_buffer(new id wl_buffer@40, 787968, 24, 24, 96, 0)
[100845.232] -> wl_surface@24.attach(wl_buffer@40, 0, 0)
[100845.265] -> wl_surface@24.damage(0, 0, 24, 24)
[100845.297] -> wl_surface@24.commit()
[100845.308] -> wl_pointer@22.set_cursor(646, wl_surface@24, 4, 4)
[108361.999] zxdg_toplevel_v6@21.configure(0, 0, array)
configure: resizing to (100, 100)
[108362.089] zxdg_surface_v6@20.configure(648)
[108362.103] -> zxdg_surface_v6@20.ack_configure(648)
[108362.124] -> wl_buffer@34.destroy()
[108362.133] -> wl_buffer@35.destroy()
[108362.140] -> wl_buffer@36.destroy()
[108362.147] -> wl_buffer@37.destroy()
[108375.830] -> wl_shm_pool@11.create_buffer(new id wl_buffer@41, 0, 116, 24, 464, 0)
[108375.906] -> wl_surface@12.attach(wl_buffer@41, 0, 0)
[108375.936] -> wl_subsurface@16.set_position(-8, -24)
[108375.963] -> wl_shm_pool@11.create_buffer(new id wl_buffer@42, 0, 8, 100, 32, 0)
[108375.999] -> wl_surface@13.attach(wl_buffer@42, 0, 0)
[108376.019] -> wl_subsurface@17.set_position(100, 0)
[108376.033] -> wl_shm_pool@11.create_buffer(new id wl_buffer@43, 0, 116, 8, 464, 0)
[108376.066] -> wl_surface@14.attach(wl_buffer@43, 0, 0)
[108376.087] -> wl_subsurface@18.set_position(-8, 100)
[108376.103] -> wl_shm_pool@11.create_buffer(new id wl_buffer@44, 0, 8, 100, 32, 0)
[108376.138] -> wl_surface@15.attach(wl_buffer@44, 0, 0)
[108376.175] -> wl_subsurface@19.set_position(-8, 0)
[108376.193] -> wl_surface@12.commit()
[108376.200] -> wl_surface@13.commit()
[108376.207] -> wl_surface@14.commit()
[108376.214] -> wl_surface@15.commit()
[108376.222] -> wl_buffer@38.destroy()
[108376.230] -> wl_shm_pool@8.create_buffer(new id wl_buffer@45, 0, 100, 100, 400, 0)
[108376.268] -> wl_surface@3.attach(wl_buffer@45, 0, 0)
[108376.286] -> wl_surface@3.commit()
Looks like the xdg_shell has changed the "configure" protocol (requiring an ack apparently).
Yeah I noticed this too - I attempted to do this by calling ack_configure
within the zxdg_surface_v6
's Handler
callback here - does this look like it's on the right track?.
I think I found the issue, but we would need a way to confirm it.
In mutter, when we try doing a resize, he callback is this function: https://github.com/GNOME/mutter/blob/e6eac46629335ac341e3207df8b2aac15fb9ffa7/src/wayland/meta-wayland-xdg-shell.c#L282-L299
Given we simply have no answer from the compositor, I guess meta_wayland_seat_get_grab_info(..)
returns false. Now, it is defined here: https://github.com/GNOME/mutter/blob/5306d36522a45e8657231ac85f030bb4152ad29d/src/wayland/meta-wayland-seat.c#L406-L444
As we can see, in our context (a pointer event), the only way this can return false is if meta_wayland_pointer_can_grab_surface
returns false. It is defined here: https://github.com/GNOME/mutter/blob/6fa8238ebf5f1a1854b748533ad99ea15d647896/src/wayland/meta-wayland-pointer.c#L1122-L1128
gboolean
meta_wayland_pointer_can_grab_surface (MetaWaylandPointer *pointer,
MetaWaylandSurface *surface,
uint32_t serial)
{
return (pointer->grab_serial == serial &&
pointer->focus_surface == surface);
}
As the serial is good, then most likely the second equality evaluates to false.
Which is plausible, as at this point, the focus surface is the subsurface we use to draw the borders, while the surface we try to grab is the parent surface. The weston client does not use subsurfaces to draw its contents, as such it does not have any problem.
I don't know if it's mutter or us who are at fault here, I'll ask on #wayland IRC.
Well, apparently it is mutter's fault. :)
Really nice work in tracking this down!
So to correct the behaviour in mutter, meta_wayland_pointer_can_grab_surface
should return true
if either pointer->focus_surface == surface
or if pointer->focus_surface
is equal to any of the surface
's subsurfaces?
I don't know if it is mutter or us who are at fault here, I'll ask on #wayland IRC.
Well, apparently it is mutter's fault. :)
Do you happen to have the log for this discussion? I'm curious about the discussion behind this, as I'm considering making the patch myself to get things moving along, however I'd like to gather what info I can first.
Oh, it was a very short discussion:
M-Levans Hi, question about pointer grabs: is it legal for a client to start an interactive resize/move on a surface using a serial grab from a pointer click that occured on a subsurface of this surface? Looks like weston allows it but mutter does not. (context: I'm using subsurfaces to draw window decorations). SardemFF7 yes, it should be legal SardemFF7 or there would be no way to use subsurfaces for decorations, which would be a really bad idea SardemFF7 jadahl: ā jadahl M-Levans: sounds reasonable, could you file a bug? on the mutter product in gnomes bugzilla M-Levans jadahl: this is actually my diagnostic of https://bugzilla.gnome.org/show_bug.cgi?id=781811, should I post the details there? M-Levans Or rather create a new bug? [..] jadahl M-Levans: sure, comment on it there
So to correct the behaviour in mutter,
meta_wayland_pointer_can_grab_surface
should return true if eitherpointer->focus_surface == surface
or ifpointer->focus_surface
is equal to any of the surface's subsurfaces?
This is how I understand it too.
The move/resize bug I was experiencing should be fixed in the next gnome update! It seems that making the fix upstream fixes the problem of moving and resizing regardless of this PR.
@vberger I have begun making the changes you mentioned in your previous comment.
I believe this is mostly implemented however I'm not confident this is
the nicest design. I'm unsure how to best modify the Handler
pattern
to handle the different shells. I've changed the Handler::configure
method to take a Configure
enum, which provides the shell-specific
data.
The example has not yet been updated as I'm unsure how to check whether
xdg_shell
is available and fall back to wl_shell
otherwise. It seems
this process is currently wrapped up by the wayland_env
macro.
I've looked at the current state of the diff, overall it looks good š
Now, to answer your questions:
closed()
method to the Handler
trait for user handlers, this callback should also be called when we have proper decorations, including a "close" buttonwayland_env!()
macro to do all the job. It can only auto-bind globals that are trigger a hard failure if they are missing. So we can still use it to bind wl_shell
, as this one is guaranteed to be here, but we need to manually try to bind xdg_shell
. All this is out of the scope of wayland-window
, but I agree it's good to have an example doing it.As xdg_shell is a global that is not expected to appear/disappear, it should be actually quite simple. Taking inspiration from this example: https://github.com/Smithay/wayland-rs/blob/master/wayland-client/examples/simple_client.rs , you don't provide XdgShell as a global to wayland_env!()
, so it won't be auto-binded. But after the firsts roundtrips, you manually try to bind it, with something like:
let mut xdg_shell = None;
for &(name, ref interface, version) in env.globals() {
if interface == ZxdgShellV6::interface_name() {
xdg_shell = Some(registry.bind::<ZxdgShellV6>(name, version));
/* also register xdg_shell to its handler in the events_queue */
break;
}
}
Now I just realized an issue with the design: if xdg_shell is an optional feature, we have a few enums whose number of variants depends on enabled cargo features, which is not really a good thing, as cargo can enable them on the fly. In general, enabling a cargo feature whould not be a breaking change API-wise, but changing the number of variants of an enum is... Not sure what would be the best course to handle that. The good side is that since the last rust version, xdg_shell
can actually be compiled on rust stable, so we may consider just not hiding it behind a cargo feature?
But after the firsts roundtrips, you manually try to bind it, with something like...
Thanks for the example, I'll have a go at implementing this now.
The good side is that since the last rust version, xdg_shell can actually be compiled on rust stable, so we may consider just not hiding it behind a cargo feature?
Sounds good to me! I'll change this too.
Ok, I think I've addressed all your points! However, I'm unsure what you mean by this line in your example:
/* also register xdg_shell to its handler in the events_queue */
Could you provide an example of this? The example seems to work as is, however I could very well be missing something!
Yes, sure, this is something the client will need to do with xdg_shell, (but is out of scope of wayland-window I'd say, but it's good to have it in the example).
The client needs to handle this event from the server: https://smithay.github.io/wayland-rs/wayland_protocols/unstable/xdg_shell/client/zxdg_shell_v6/trait.Handler.html by simply answering "pong" to these "ping"s. Otherwise, the server may mark the client as "unresponsive".
This is pretty simple:
// declare a handler struct to handle the xdg_shell events:
// This one does not need any state
struct XdgShellPingHandler;
// The implementation of this handler trait is very simple
impl xdg_shell_v6::Handler for SdgShellPingHandler {
fn ping(&mut self, evqh: &mut EventQueueHandle, proxy: &ZxdgShellV6, serial: u32) {
proxy.pong(serial);
}
}
/*
* ...
*/
// later, in the match:
let shell = match (xdg_shell, wl_shell) {
(Some(shell), _) => {
// We use xdg_shell, so we'll need to answer to the pings
let ping_handler_id = event_queue.add_handler(XdgShellPingHandler);
event_queue.register::<_,XdgShellPingHandler>(&shell, ping_handler_id);
wayland_window::Shell::Xdg(shell)
},
(_, Some(shell)) => {
wayland_window::Shell::Wl(shell)
},
_ => panic!("No available shell"),
};
PS: I'm currently having a look at your changes, but I wanted to answer your question first.
See the few comments I left, but other than that this looks really good! š
Thanks a lot for your effort in doing that!
No problem! I've addressed each of your most recent comments, let me know if there's anything else, otherwise I think this should be good to go :+1:
Just found a last thing, but other than that, we're good!
Done!
Awesome, thanks!
I'll merge this, I have still some stuff to do before releasing the next version (mostly fixing #10 which has been open for far too long, and a few interactions with wayland-client I have in mind). Hopefully it should be a matter of days. :)
So far this commit mostly attempts to replace
wl_shell
withxdg_shell
in order to simplify integration ofxdg_shell
for myself. The plan is to re-integrate support forwl_shell
and move allxdg_shell
functionality behind a (defaulted) feature gate in a future commit to allow for backward-compatibility withwl_shell
.Several xdg_surface methods have not yet been exposed in the
DecoratedSurface
API including set_api_id, minimize, etc.@vberger Although this commit replaces usage of
wl_shell
withxdg_shell
in the example, I'm finding that I still have the exact same problems that I had before mentioned in #16 -configure
is still not being called by the mutter (v3.22.3) compositor during resizing or moving, even though it seems to work perfectly fine on weston (v2.0.0). This makes me wonder if the issue is perhaps not related to xdg_shell, and perhaps some other difference between the mutter and weston compositors? On the other hand, maybe I just haven't integratedxdg_shell
properly?I decided to run the example on both mutter and wayland to compare the output of
WAYLAND_DEBUG=1
to see if I could spot any differences. I found only two:The first difference was the very start of the log where globals are registered:
weston
mutter
The main difference I noticed between these two (besides the ordering which I assume does not matter) is that weston registers a "xdg_shell", "weston_desktop_shell" and "weston_screenshooter" globals whereas mutter does not, but does register a "gtk_shell1" global. Does it seem strange to you that the mutter compositor does not register "xdg_shell" like weston does?
The second and only other difference I noticed (besides
configure
not being called during resize) was that weston used thesurface.damage_buffer
method to indicate surface damage when theThemedPointer
hovered over the resizable edge, whereas mutter used thesurface.damage
method. I found the related code here. This seems to indicate that mutter uses a pre-4 version of surface. Could this be related?