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:
parent
9b148c63ce
commit
f4c73fd6dd
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Reference in New Issue