Commit 3bae2d57da6dd768040d3a8c4fb0f707bf26d665

Frank Praznik 2022-08-18T12:39:47

wayland: Set the libdecor app ID after visibility calls Set the frame app ID after toggling visibility or the name displayed in window manager task switchers may not display correctly.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
diff --git a/src/video/wayland/SDL_waylandwindow.c b/src/video/wayland/SDL_waylandwindow.c
index 68d2d08..8d5c702 100644
--- a/src/video/wayland/SDL_waylandwindow.c
+++ b/src/video/wayland/SDL_waylandwindow.c
@@ -1217,6 +1217,7 @@ void Wayland_ShowWindow(_THIS, SDL_Window *window)
         if (data->shell_surface.libdecor.frame) {
             /* If the frame already exists, just set the visibility. */
             libdecor_frame_set_visibility(data->shell_surface.libdecor.frame, true);
+            libdecor_frame_set_app_id(data->shell_surface.libdecor.frame, c->classname);
         } else {
             data->shell_surface.libdecor.frame = libdecor_decorate(c->shell.libdecor,
                                                                    data->surface,
@@ -1416,6 +1417,7 @@ void Wayland_HideWindow(_THIS, SDL_Window *window)
     if (WINDOW_IS_LIBDECOR(data, window)) {
         if (wind->shell_surface.libdecor.frame) {
             libdecor_frame_set_visibility(wind->shell_surface.libdecor.frame, false);
+            libdecor_frame_set_app_id(wind->shell_surface.libdecor.frame, data->classname);
         }
     } else
 #endif