Smithay / wayland-window

A simple window-decorations library built on top of wayland-client.
MIT License
18 stars 11 forks source link

Incorrect behavior on Debian 9 with Gnome 3 #22

Closed newpavlov closed 6 years ago

newpavlov commented 6 years ago

Moved from here.

I am using Debian 9 with Gnome 3.22.3 on Wayland with HighDPI (resolution is 3840x2160 for 15'' display). When I launch example from wayland-window I am getting the following result:

Click to expand ![1](https://user-images.githubusercontent.com/329626/31997631-5b756898-b995-11e7-8b4a-e3c3ffef9f01.png) Also it does not get handled correctly in the overview mode (not sure how it's properly called): ![2](https://user-images.githubusercontent.com/329626/31997719-a4b314c4-b995-11e7-85b2-a0838a253480.png)

Debug log:

Click to expand ``` [2705163.695] -> wl_display@1.get_registry(new id wl_registry@2) [2705163.734] -> wl_display@1.sync(new id wl_callback@3) [2705163.904] wl_display@1.delete_id(3) [2705163.916] wl_registry@2.global(1, "wl_drm", 2) [2705163.929] wl_registry@2.global(2, "wl_compositor", 3) [2705163.937] wl_registry@2.global(3, "wl_shm", 1) [2705163.945] wl_registry@2.global(4, "wl_output", 2) [2705163.954] wl_registry@2.global(5, "wl_data_device_manager", 3) [2705163.962] wl_registry@2.global(6, "gtk_primary_selection_device_manager", 1) [2705163.971] wl_registry@2.global(7, "zxdg_shell_v6", 1) [2705163.982] wl_registry@2.global(8, "wl_shell", 1) [2705163.990] wl_registry@2.global(9, "gtk_shell1", 1) [2705164.000] wl_registry@2.global(10, "wl_subcompositor", 1) [2705164.010] -> wl_registry@2.bind(2, "wl_compositor", 3, new id [unknown]@4) [2705164.024] -> wl_registry@2.bind(10, "wl_subcompositor", 1, new id [unknown]@5) [2705164.036] -> wl_registry@2.bind(3, "wl_shm", 1, new id [unknown]@6) [2705164.047] wl_registry@2.global(11, "zwp_pointer_gestures_v1", 1) [2705164.055] wl_registry@2.global(12, "zwp_tablet_manager_v2", 1) [2705164.063] wl_registry@2.global(13, "wl_seat", 5) [2705164.071] wl_registry@2.global(14, "zwp_relative_pointer_manager_v1", 1) [2705164.079] wl_registry@2.global(15, "zwp_pointer_constraints_v1", 1) [2705164.087] wl_registry@2.global(16, "zxdg_exporter_v1", 1) [2705164.095] wl_registry@2.global(17, "zxdg_importer_v1", 1) [2705164.103] wl_callback@3.done(224981) [2705164.108] -> wl_registry@2.bind(7, "zxdg_shell_v6", 1, new id [unknown]@3) [2705164.120] -> wl_compositor@4.create_surface(new id wl_surface@7) [2705164.196] -> wl_shm@6.create_pool(new id wl_shm_pool@8, fd 5, 64) [2705164.211] -> wl_shm_pool@8.create_buffer(new id wl_buffer@9, 0, 4, 4, 16, 0) [2705164.228] -> wl_registry@2.bind(13, "wl_seat", 1, new id [unknown]@10) [2705164.252] -> wl_shm@6.create_pool(new id wl_shm_pool@11, fd 7, 1536) [2705164.265] -> wl_compositor@4.create_surface(new id wl_surface@12) [2705164.270] -> wl_compositor@4.create_surface(new id wl_surface@13) [2705164.276] -> wl_compositor@4.create_surface(new id wl_surface@14) [2705164.281] -> wl_compositor@4.create_surface(new id wl_surface@15) [2705164.286] -> wl_subcompositor@5.get_subsurface(new id wl_subsurface@16, wl_surface@12, wl_surface@7) [2705164.296] -> wl_subcompositor@5.get_subsurface(new id wl_subsurface@17, wl_surface@13, wl_surface@7) [2705164.305] -> wl_subcompositor@5.get_subsurface(new id wl_subsurface@18, wl_surface@14, wl_surface@7) [2705164.314] -> wl_subcompositor@5.get_subsurface(new id wl_subsurface@19, wl_surface@15, wl_surface@7) [2705164.324] -> wl_subsurface@16.set_desync() [2705164.327] -> wl_subsurface@17.set_desync() [2705164.330] -> wl_subsurface@18.set_desync() [2705164.333] -> wl_subsurface@19.set_desync() [2705164.336] -> zxdg_shell_v6@3.get_xdg_surface(new id zxdg_surface_v6@20, wl_surface@7) [2705164.344] -> zxdg_surface_v6@20.get_toplevel(new id zxdg_toplevel_v6@21) [2705164.349] -> wl_surface@7.commit() [2705164.353] -> wl_seat@10.get_pointer(new id wl_pointer@22) [2705164.460] -> wl_shm@6.create_pool(new id wl_shm_pool@23, fd 9, 1024) [2705164.585] -> wl_shm_pool@23.resize(4352) [2705164.614] -> wl_shm_pool@23.resize(11008) [2705164.670] -> wl_shm_pool@23.resize(24320) [2705164.768] -> wl_shm_pool@23.resize(50944) [2705165.603] -> wl_shm_pool@23.resize(104192) [2705165.638] -> wl_shm_pool@23.resize(210688) [2705165.875] -> wl_shm_pool@23.resize(423680) [2705167.113] -> wl_shm_pool@23.resize(849664) [2705169.523] -> wl_shm_pool@23.resize(1701632) [2705176.186] -> wl_compositor@4.create_surface(new id wl_surface@24) [2705176.215] -> wl_shm_pool@11.resize(3072) [2705179.371] -> wl_shm_pool@11.create_buffer(new id wl_buffer@25, 0, 32, 24, 128, 0) [2705179.389] -> wl_surface@12.attach(wl_buffer@25, 0, 0) [2705179.398] -> wl_subsurface@16.set_position(-8, -24) [2705179.405] -> wl_shm_pool@11.create_buffer(new id wl_buffer@26, 0, 8, 16, 32, 0) [2705179.423] -> wl_surface@13.attach(wl_buffer@26, 0, 0) [2705179.432] -> wl_subsurface@17.set_position(16, 0) [2705179.438] -> wl_shm_pool@11.create_buffer(new id wl_buffer@27, 0, 32, 8, 128, 0) [2705179.453] -> wl_surface@14.attach(wl_buffer@27, 0, 0) [2705179.461] -> wl_subsurface@18.set_position(-8, 16) [2705179.468] -> wl_shm_pool@11.create_buffer(new id wl_buffer@28, 0, 8, 16, 32, 0) [2705179.483] -> wl_surface@15.attach(wl_buffer@28, 0, 0) [2705179.491] -> wl_subsurface@19.set_position(-8, 0) [2705179.499] -> wl_surface@12.commit() [2705179.503] -> wl_surface@13.commit() [2705179.506] -> wl_surface@14.commit() [2705179.509] -> wl_surface@15.commit() [2705179.517] -> zxdg_toplevel_v6@21.set_title("My example window") [2705179.522] -> zxdg_toplevel_v6@21.set_min_size(116, 132) [2705179.529] -> zxdg_toplevel_v6@21.set_max_size(266, 282) [2705179.535] -> wl_surface@7.commit() [2705210.720] zxdg_toplevel_v6@21.configure(0, 0, array) [2705210.769] zxdg_surface_v6@20.configure(224982) [2705210.778] -> zxdg_surface_v6@20.ack_configure(224982) [2705210.786] -> wl_buffer@25.destroy() [2705210.792] -> wl_buffer@26.destroy() [2705210.795] -> wl_buffer@27.destroy() [2705210.800] -> wl_buffer@28.destroy() [2705210.822] -> wl_shm_pool@11.resize(20736) [2705235.946] -> wl_shm_pool@11.create_buffer(new id wl_buffer@29, 0, 216, 24, 864, 0) [2705235.992] -> wl_surface@12.attach(wl_buffer@29, 0, 0) [2705236.003] -> wl_subsurface@16.set_position(-8, -24) [2705236.010] -> wl_shm_pool@11.create_buffer(new id wl_buffer@30, 0, 8, 150, 32, 0) [2705236.027] -> wl_surface@13.attach(wl_buffer@30, 0, 0) [2705236.036] -> wl_subsurface@17.set_position(200, 0) [2705236.043] -> wl_shm_pool@11.create_buffer(new id wl_buffer@31, 0, 216, 8, 864, 0) [2705236.059] -> wl_surface@14.attach(wl_buffer@31, 0, 0) [2705236.068] -> wl_subsurface@18.set_position(-8, 150) [2705236.075] -> wl_shm_pool@11.create_buffer(new id wl_buffer@32, 0, 8, 150, 32, 0) [2705236.091] -> wl_surface@15.attach(wl_buffer@32, 0, 0) [2705236.099] -> wl_subsurface@19.set_position(-8, 0) [2705236.106] -> wl_surface@12.commit() [2705236.109] -> wl_surface@13.commit() [2705236.112] -> wl_surface@14.commit() [2705236.116] -> wl_surface@15.commit() [2705284.115] -> wl_shm_pool@8.resize(120000) [2705284.134] -> wl_buffer@9.destroy() [2705284.140] -> wl_shm_pool@8.create_buffer(new id wl_buffer@33, 0, 200, 150, 800, 0) [2705284.161] -> wl_surface@7.attach(wl_buffer@33, 0, 0) [2705284.172] -> wl_surface@7.commit() [2705380.084] wl_display@1.delete_id(25) [2705380.114] wl_display@1.delete_id(26) [2705380.121] wl_display@1.delete_id(27) [2705380.126] wl_display@1.delete_id(28) [2705380.132] wl_display@1.delete_id(9) [2705380.138] zxdg_toplevel_v6@21.configure(0, 0, array) [2705380.168] zxdg_surface_v6@20.configure(224984) [2705380.176] -> zxdg_surface_v6@20.ack_configure(224984) [2711186.397] zxdg_toplevel_v6@21.configure(0, 0, array) [2711186.467] zxdg_surface_v6@20.configure(224988) [2711186.476] -> zxdg_surface_v6@20.ack_configure(224988) ```

Also it looks like with_dimensions, with_fullscreen and with_title methods do not work at all. (tested in different application) Example window can not be resized or moved. Not sure if it's winit/wayland-window problem or some bug on Debian side.

elinorbgr commented 6 years ago

So do you confirm that the example window provided with this repository cannot be resized by dragging its borders or moved by dragging the top, large border ?

Could you attach here a debug log generated while trying to move/resize the window ?

elinorbgr commented 6 years ago

Ah wait, I didn't realize your gnome version. Actually, this is a gnome bug that has been fixed in newer versions, see https://bugzilla.gnome.org/show_bug.cgi?id=781811

I believe you need at least gnome 3.24.3 to have the bugfix

newpavlov commented 6 years ago

Yes, indeed after update to Gnome 3.26 it works better, but still there is problems in my project which uses vulkano and winit, I'll close this issue and will try to create minimal examples which demonstrate my problem. (although I am not sure in which project should I report this issue)

elinorbgr commented 6 years ago

As a rule of thumb: