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.
This commit is contained in:
Frank Praznik 2022-08-18 12:39:47 -04:00 committed by Sam Lantinga
parent 51be30f3cd
commit 3bae2d57da
1 changed files with 2 additions and 0 deletions

View File

@ -1217,6 +1217,7 @@ void Wayland_ShowWindow(_THIS, SDL_Window *window)
if (data->shell_surface.libdecor.frame) { if (data->shell_surface.libdecor.frame) {
/* If the frame already exists, just set the visibility. */ /* If the frame already exists, just set the visibility. */
libdecor_frame_set_visibility(data->shell_surface.libdecor.frame, true); libdecor_frame_set_visibility(data->shell_surface.libdecor.frame, true);
libdecor_frame_set_app_id(data->shell_surface.libdecor.frame, c->classname);
} else { } else {
data->shell_surface.libdecor.frame = libdecor_decorate(c->shell.libdecor, data->shell_surface.libdecor.frame = libdecor_decorate(c->shell.libdecor,
data->surface, data->surface,
@ -1416,6 +1417,7 @@ void Wayland_HideWindow(_THIS, SDL_Window *window)
if (WINDOW_IS_LIBDECOR(data, window)) { if (WINDOW_IS_LIBDECOR(data, window)) {
if (wind->shell_surface.libdecor.frame) { if (wind->shell_surface.libdecor.frame) {
libdecor_frame_set_visibility(wind->shell_surface.libdecor.frame, false); libdecor_frame_set_visibility(wind->shell_surface.libdecor.frame, false);
libdecor_frame_set_app_id(wind->shell_surface.libdecor.frame, data->classname);
} }
} else } else
#endif #endif