SDL: wayland: Set the libdecor app ID after visibility calls

From 3bae2d57da6dd768040d3a8c4fb0f707bf26d665 Mon Sep 17 00:00:00 2001
From: Frank Praznik <[EMAIL REDACTED]>
Date: Thu, 18 Aug 2022 12:39:47 -0400
Subject: [PATCH] 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.
---
 src/video/wayland/SDL_waylandwindow.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/video/wayland/SDL_waylandwindow.c b/src/video/wayland/SDL_waylandwindow.c
index 68d2d087be6..8d5c7023456 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