Bug 393536 - missing window decorations for GTK 3
Summary: missing window decorations for GTK 3
Status: RESOLVED UPSTREAM
Alias: None
Product: kwin
Classification: Plasma
Component: decorations (show other bugs)
Version: 5.12.4
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-04-26 11:23 UTC by Markus Rathgeb
Modified: 2018-04-27 11:48 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Markus Rathgeb 2018-04-26 11:23:12 UTC
KDE on Wayland is used.

I am missing window decorations on some apps using GTK 3 on wayland.

I know that the Gnome guys are using CSD and KDE / Plasma is using SSD.
I don't see double window decorations.

Some apps e.g. gedit are shown correctly.

If I use e.g. "gtk3_preview" that is part of "kde-gtk-config" the missing window decorations can be reproduced easily.

GDK_BACKEND=x11 /usr/lib64/libexec/gtk3_preview
=> all fine

GDK_BACKEND=wayland /usr/lib64/libexec/gtk3_preview
=> missing decorations

GDK_BACKEND=x11 gedit
=> IMHO all fine

GDK_BACKEND=wayland gedit
=> IMHO all fine

The installed GTK+ 3 version is 3.22.30

Is this still related to CSD / SSD?
Can it be solved by another GTK theme?
Anything else I can do (open issues for GTK)?


If you have further lecture for me, please point me to.
I already read e.g.:
https://blog.martin-graesslin.com/blog/2018/01/server-side-decorations-and-wayland/
https://www.phoronix.com/scan.php?page=news_item&px=GTK-KDE-SSD-Wayland
Comment 1 Alexander Mentyu 2018-04-26 14:09:01 UTC
(In reply to Markus Rathgeb from comment #0)

> GDK_BACKEND=x11 /usr/lib64/libexec/gtk3_preview
> => all fine
> 
> GDK_BACKEND=wayland /usr/lib64/libexec/gtk3_preview
> => missing decorations
> 
> GDK_BACKEND=x11 gedit
> => IMHO all fine
> 
> GDK_BACKEND=wayland gedit
> => IMHO all fine

Can reproduce with /usr/lib/gtk3_preview in:

gtk3 3.22.30-1
Plasma: 5.12.4
Apps: 18.04.0
Frameworks: 5.45.0
Qt: 5.10.1
Kernel: 4.14.36-1-MANJARO
OS: Netrunner Rolling
Video: Intel 4400
Driver: xf86-video-intel 1:2.99.917+823+gd9bf46e4-1
Screen: 1600x900
wayland-protocols 1.13-1
wayland 1.14.0-1
Comment 2 Martin Flöser 2018-04-26 15:15:09 UTC
Bug in gtk. There are a few duplicates already.
Comment 3 Markus Rathgeb 2018-04-26 15:29:24 UTC
Can you point us to the upstream bug please?
Comment 4 Martin Flöser 2018-04-26 16:32:03 UTC
(In reply to Markus Rathgeb from comment #3)
> Can you point us to the upstream bug please?

Maybe it's linked from one of the duplicates
Comment 5 Markus Rathgeb 2018-04-27 07:32:48 UTC
I tried to find the issues this one duplicates.
Do you think about that (https://bugs.kde.org/show_bug.cgi?id=389117) one?

You have written:

> If there are further issues: please report a new bug report.

As you already pointed out that this is a GTK bug and so needs to be solved by that project.
If you ever stumbled over the duplicate that refers to the upstream issue or a KDE one that adds more information, please link.
Comment 6 Markus Rathgeb 2018-04-27 08:01:21 UTC
$ WAYLAND_DEBUG=1 GDK_BACKEND=wayland /usr/lib64/libexec/gtk3_preview

[3819609.095]  -> wl_display@1.get_registry(new id wl_registry@2)
[3819609.207]  -> wl_display@1.sync(new id wl_callback@3)
[3819609.390] wl_display@1.delete_id(3)
[3819609.408] wl_registry@2.global(1, "wl_compositor", 3)
[3819609.428]  -> wl_registry@2.bind(1, "wl_compositor", 3, new id [unknown]@4)
[3819609.447] wl_registry@2.global(2, "wl_shell", 1)
[3819609.462] wl_registry@2.global(3, "xdg_shell", 1)
[3819609.471] wl_registry@2.global(4, "zxdg_shell_v6", 1)
[3819609.479] wl_registry@2.global(5, "wl_shm", 1)
[3819609.489]  -> wl_registry@2.bind(5, "wl_shm", 1, new id [unknown]@5)
[3819609.579]  -> wl_shm@5.create_pool(new id wl_shm_pool@6, fd 8, 2304)
[3819609.751]  -> wl_shm_pool@6.resize(8704)
[3819609.917]  -> wl_shm_pool@6.resize(21504)
[3819610.132]  -> wl_shm_pool@6.resize(47104)
[3819610.534]  -> wl_shm_pool@6.resize(98304)
[3819612.419]  -> wl_shm_pool@6.resize(200704)
[3819612.840]  -> wl_shm_pool@6.resize(405504)
[3819616.364]  -> wl_shm_pool@6.resize(815104)
[3819622.507]  -> wl_shm_pool@6.resize(1634304)
[3819634.456] wl_registry@2.global(6, "wl_seat", 5)
[3819634.481] wl_registry@2.global(7, "zwp_pointer_gestures_v1", 1)
[3819634.497]  -> wl_registry@2.bind(7, "zwp_pointer_gestures_v1", 1, new id [unknown]@7)
[3819634.516] wl_registry@2.global(8, "zwp_pointer_constraints_v1", 1)
[3819634.530] wl_registry@2.global(9, "wl_data_device_manager", 3)
[3819634.544]  -> wl_registry@2.bind(9, "wl_data_device_manager", 3, new id [unknown]@8)
[3819634.562]  -> wl_registry@2.bind(6, "wl_seat", 5, new id [unknown]@9)
[3819637.272]  -> wl_compositor@4.create_surface(new id wl_surface@10)
[3819637.308]  -> wl_data_device_manager@8.get_data_device(new id wl_data_device@11, wl_seat@9)
[3819637.345]  -> wl_compositor@4.create_surface(new id wl_surface@12)
[3819637.463]  -> wl_display@1.sync(new id wl_callback@13)
[3819637.474] wl_registry@2.global(10, "org_kde_kwin_idle", 1)
[3819637.493] wl_registry@2.global(11, "zwp_idle_inhibit_manager_v1", 1)
[3819637.510] wl_registry@2.global(12, "org_kde_plasma_shell", 4)
[3819637.527] wl_registry@2.global(13, "qt_surface_extension", 1)
[3819637.544] wl_registry@2.global(14, "org_kde_kwin_appmenu_manager", 1)
[3819637.562] wl_registry@2.global(15, "org_kde_kwin_server_decoration_palette_manager", 1)
[3819637.578] wl_registry@2.global(16, "org_kde_plasma_window_management", 7)
[3819637.596] wl_registry@2.global(17, "org_kde_kwin_shadow_manager", 2)
[3819637.612] wl_registry@2.global(18, "org_kde_kwin_dpms_manager", 1)
[3819637.628] wl_registry@2.global(19, "org_kde_kwin_server_decoration_manager", 1)
[3819637.646]  -> wl_registry@2.bind(19, "org_kde_kwin_server_decoration_manager", 1, new id [unknown]@14)
[3819637.669] wl_registry@2.global(20, "org_kde_kwin_outputmanagement", 1)
[3819637.687] wl_registry@2.global(21, "wl_subcompositor", 1)
[3819637.704]  -> wl_registry@2.bind(21, "wl_subcompositor", 1, new id [unknown]@15)
[3819637.726] wl_registry@2.global(22, "zxdg_exporter_v2", 1)
[3819637.743] wl_registry@2.global(23, "zxdg_importer_v2", 1)
[3819637.761] wl_registry@2.global(24, "zwp_relative_pointer_manager_v1", 1)
[3819637.775] wl_registry@2.global(25, "org_kde_kwin_outputdevice", 1)
[3819637.792] wl_registry@2.global(26, "wl_output", 3)
[3819637.807]  -> wl_registry@2.bind(26, "wl_output", 2, new id [unknown]@16)
[3819637.871]  -> wl_display@1.sync(new id wl_callback@17)
[3819637.884] wl_registry@2.global(27, "org_kde_kwin_outputdevice", 1)
[3819637.901] wl_registry@2.global(28, "wl_output", 3)
[3819637.919]  -> wl_registry@2.bind(28, "wl_output", 2, new id [unknown]@18)
[3819637.943]  -> wl_display@1.sync(new id wl_callback@19)
[3819637.955] wl_registry@2.global(29, "wl_drm", 2)
[3819637.972] wl_registry@2.global(30, "org_kde_kwin_fake_input", 2)
[3819637.989] wl_registry@2.global(31, "wl_text_input_manager", 1)
[3819638.007] wl_registry@2.global(32, "zwp_text_input_manager_v2", 1)
[3819638.024] wl_registry@2.global(33, "org_kde_kwin_blur_manager", 1)
[3819638.040] wl_registry@2.global(34, "org_kde_kwin_contrast_manager", 1)
[3819638.056] wl_registry@2.global(35, "org_kde_kwin_slide_manager", 1)
[3819638.069] wl_callback@3.done(6712)
[3819638.327] wl_display@1.delete_id(13)
[3819638.335] wl_shm@5.format(0)
[3819638.338] wl_shm@5.format(1)
[3819638.342] wl_seat@9.capabilities(3)
[3819638.346]  -> wl_seat@9.get_pointer(new id wl_pointer@3)
[3819638.366]  -> zwp_pointer_gestures_v1@7.get_swipe_gesture(new id zwp_pointer_gesture_swipe_v1@20, wl_pointer@3)
[3819638.374]  -> zwp_pointer_gestures_v1@7.get_pinch_gesture(new id zwp_pointer_gesture_pinch_v1@21, wl_pointer@3)
[3819638.381]  -> wl_seat@9.get_keyboard(new id wl_keyboard@22)
[3819638.395] wl_seat@9.name("")
[3819638.404] wl_callback@13.done(6712)
[3819638.412] org_kde_kwin_server_decoration_manager@14.default_mode(2)
[3819638.446] wl_display@1.delete_id(17)
[3819638.454] wl_display@1.delete_id(19)
[3819638.460] wl_output@16.geometry(0, 0, 340, 190, 0, "B156HTN03.4", "eDP-1-unknown", 0)
[3819638.490] wl_output@16.scale(1)
[3819638.497] wl_output@16.mode(3, 1920, 1080, 60060)
[3819638.511] wl_output@16.done()
[3819638.527] wl_callback@17.done(6712)
[3819638.536] wl_output@18.geometry(1920, 0, 600, 340, 0, "DEL", "DP-4-DELL U2713HM/18J563AQ512L", 0)
[3819638.570] wl_output@18.scale(1)
[3819638.579] wl_output@18.mode(0, 1920, 1200, 59885)
[3819638.596] wl_output@18.mode(0, 1920, 1080, 60000)
[3819638.613] wl_output@18.mode(0, 1920, 1080, 59940)
[3819638.629] wl_output@18.mode(0, 1920, 1080, 50000)
[3819638.646] wl_output@18.mode(0, 1920, 1080, 24000)
[3819638.662] wl_output@18.mode(0, 1920, 1080, 23976)
[3819638.679] wl_output@18.mode(0, 1600, 1200, 60000)
[3819638.695] wl_output@18.mode(0, 1680, 1050, 59954)
[3819638.712] wl_output@18.mode(0, 1280, 1024, 75025)
[3819638.728] wl_output@18.mode(0, 1280, 1024, 60020)
[3819638.745] wl_output@18.mode(0, 1280, 800, 59810)
[3819638.761] wl_output@18.mode(0, 1152, 864, 75000)
[3819638.777] wl_output@18.mode(0, 1280, 720, 60000)
[3819638.793] wl_output@18.mode(0, 1280, 720, 59940)
[3819638.810] wl_output@18.mode(0, 1280, 720, 50000)
[3819638.826] wl_output@18.mode(0, 1024, 768, 75029)
[3819638.843] wl_output@18.mode(0, 1024, 768, 60004)
[3819638.859] wl_output@18.mode(0, 800, 600, 75000)
[3819638.876] wl_output@18.mode(0, 800, 600, 60317)
[3819638.892] wl_output@18.mode(0, 720, 576, 50000)
[3819638.908] wl_output@18.mode(0, 720, 480, 60000)
[3819638.924] wl_output@18.mode(0, 720, 480, 59940)
[3819638.940] wl_output@18.mode(0, 640, 480, 75000)
[3819638.956] wl_output@18.mode(0, 640, 480, 60000)
[3819638.972] wl_output@18.mode(0, 640, 480, 59940)
[3819638.989] wl_output@18.mode(0, 720, 400, 70082)
[3819639.005] wl_output@18.mode(3, 2560, 1440, 59951)
[3819639.024] wl_output@18.done()
[3819639.033] wl_callback@19.done(6712)
[3819639.042]  -> wl_registry@2.bind(4, "zxdg_shell_v6", 1, new id [unknown]@19)
[3819711.909]  -> wl_compositor@4.create_surface(new id wl_surface@17)
[3819712.520]  -> wl_compositor@4.create_surface(new id wl_surface@13)
[3819713.643]  -> zxdg_shell_v6@19.get_xdg_surface(new id zxdg_surface_v6@23, wl_surface@17)
[3819713.700]  -> zxdg_surface_v6@23.get_toplevel(new id zxdg_toplevel_v6@24)
[3819713.721]  -> zxdg_toplevel_v6@24.set_parent(nil)
[3819713.729]  -> zxdg_toplevel_v6@24.set_title("gtk3_preview")
[3819713.736]  -> zxdg_toplevel_v6@24.set_app_id("gtk3_preview")
[3819713.753]  -> wl_surface@17.commit()
[3819714.463] wl_keyboard@22.repeat_info(25, 660)
[3819714.495] wl_keyboard@22.keymap(1, fd 8, 49844)
[3819717.257] zxdg_toplevel_v6@24.configure(0, 0, array)
[3819717.287] zxdg_surface_v6@23.configure(6714)
[3819717.301]  -> zxdg_surface_v6@23.ack_configure(6714)
[3819720.743]  -> wl_shm@5.create_pool(new id wl_shm_pool@25, fd 9, 472680)
[3819720.780]  -> wl_shm_pool@25.create_buffer(new id wl_buffer@26, 0, 390, 303, 1560, 0)
[3819724.611]  -> wl_surface@17.attach(wl_buffer@26, 0, 0)
[3819724.642]  -> wl_surface@17.set_buffer_scale(1)
[3819724.649]  -> wl_surface@17.damage(0, 0, 390, 303)
[3819724.666]  -> zxdg_toplevel_v6@24.set_min_size(390, 303)
[3819724.673]  -> zxdg_toplevel_v6@24.set_max_size(0, 0)
[3819724.680]  -> zxdg_surface_v6@23.set_window_geometry(0, 0, 390, 303)
[3819724.691]  -> wl_compositor@4.create_region(new id wl_region@27)
[3819724.698]  -> wl_region@27.add(3, 0, 384, 3)
[3819724.712]  -> wl_region@27.add(0, 3, 390, 300)
[3819724.732]  -> wl_surface@17.set_opaque_region(wl_region@27)
[3819724.739]  -> wl_region@27.destroy()
[3819724.743]  -> wl_surface@17.set_input_region(nil)
[3819724.772]  -> wl_surface@17.frame(new id wl_callback@28)
[3819724.785]  -> wl_surface@17.commit()
[3819725.151] wl_display@1.delete_id(27)
[3819725.161] wl_surface@17.enter(wl_output@16)
[3819725.177] wl_surface@17.leave(wl_output@16)
[3819725.189] wl_surface@17.enter(wl_output@18)
[3819725.204] zxdg_shell_v6@19.ping(6715)
[3819725.212]  -> zxdg_shell_v6@19.pong(6715)
[3819725.220] wl_data_device@11.data_offer(new id wl_data_offer@106780848)
[3819725.233] wl_data_offer@4278190080.offer("TIMESTAMP")
[3819725.243] wl_data_offer@4278190080.offer("TARGETS")
[3819725.252] wl_data_offer@4278190080.offer("SAVE_TARGETS")
[3819725.259] wl_data_offer@4278190080.offer("MULTIPLE")
[3819725.268] wl_data_offer@4278190080.offer("text/plain")
[3819725.277] wl_data_offer@4278190080.offer("text/html")
[3819725.287] wl_data_device@11.selection(wl_data_offer@4278190080)
[3819725.297] wl_keyboard@22.enter(6719, wl_surface@17, array)
[3819725.325] wl_keyboard@22.modifiers(6704, 0, 0, 16, 0)
[3819725.479] zxdg_toplevel_v6@24.configure(0, 0, array)
[3819725.497] zxdg_surface_v6@23.configure(6721)
[3819725.507]  -> zxdg_surface_v6@23.ack_configure(6721)
[3819736.041] wl_display@1.delete_id(28)
[3819736.115] wl_callback@28.done(940449233)
[3819740.536]  -> wl_shm@5.create_pool(new id wl_shm_pool@28, fd 9, 472680)
[3819740.573]  -> wl_shm_pool@28.create_buffer(new id wl_buffer@27, 0, 390, 303, 1560, 0)
[3819742.077]  -> wl_surface@17.attach(wl_buffer@27, 0, 0)
[3819742.108]  -> wl_surface@17.set_buffer_scale(1)
[3819742.118]  -> wl_surface@17.damage(13, 13, 357, 231)
[3819742.137]  -> zxdg_toplevel_v6@24.set_min_size(390, 303)
[3819742.146]  -> zxdg_toplevel_v6@24.set_max_size(0, 0)
[3819742.154]  -> zxdg_surface_v6@23.set_window_geometry(0, 0, 390, 303)
[3819742.186]  -> wl_surface@17.frame(new id wl_callback@29)
[3819742.298]  -> wl_surface@17.commit()
[3819751.658] wl_buffer@26.release()
[3819751.787]  -> wl_buffer@26.destroy()
[3819751.856]  -> wl_shm_pool@25.destroy()
[3819753.373] wl_display@1.delete_id(29)
[3819753.431] wl_callback@29.done(942951664)
Comment 7 Markus Rathgeb 2018-04-27 11:48:34 UTC
Found the relevant issues:
https://bugs.kde.org/show_bug.cgi?id=389361
https://bugzilla.gnome.org/show_bug.cgi?id=792889