fix noop violations: implement wipe_desktop, get_shortcut_string, icon_select/change_title

wipe_desktop: iterate windows sending DELETE_WINDOW or killing (needed for
proper compositor shutdown).

get_shortcut_string, icon_select, icon_change_title: delegate to pure
WM functions that have no X11 dependency.
This commit is contained in:
lkn 2026-06-24 19:49:47 +02:00
parent 9b148c63ce
commit f4c73fd6dd
1 changed files with 14 additions and 2 deletions

View File

@ -209,7 +209,19 @@ void wl_noop_icon_update_pixmap(WIcon *icon) { (void)icon; }
void wl_noop_restore_desktop(WScreen *scr) { (void)scr; }
void wl_noop_wipe_desktop(WScreen *scr) { (void)scr; }void wl_noop_free_color(WScreen *scr, unsigned long pixel)
static void wl_wipe_desktop(WScreen *scr)
{
WWindow *wwin = scr->focused_window;
while (wwin) {
WWindow *prev = wwin->prev;
if (wwin->protocols.DELETE_WINDOW)
wClientSendProtocol(wwin, w_global.atom.wm.delete_window,
w_global.timestamp.last_event);
else
wClientKill(wwin);
wwin = prev;
}
}void wl_noop_free_color(WScreen *scr, unsigned long pixel)
{ (void)scr; (void)pixel; }
void wl_noop_colormap_install(WScreen *scr, WWindow *wwin)
@ -530,7 +542,7 @@ const WMBackend wl_backend = {
.appicon_show = wl_appicon_show,
.appicon_paint = wl_appicon_paint,
.restore_desktop = wl_noop_restore_desktop,
.wipe_desktop = wl_noop_wipe_desktop,
.wipe_desktop = wl_wipe_desktop,
.get_color_for_colormap = wl_get_color_for_colormap,
.free_color = wl_noop_free_color,
.colormap_install = wl_noop_colormap_install,