Exit when compton loses the _NET_WM_CM_Sn selection
Again, this behaviour is required by ICCCM. Signed-off-by: Uli Schlachter <psychon@znc.in>
This commit is contained in:
parent
f8ea3e8668
commit
1125389910
|
@ -4352,6 +4352,16 @@ ev_screen_change_notify(session_t *ps,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline static void
|
||||||
|
ev_selection_clear(session_t *ps,
|
||||||
|
XSelectionClearEvent __attribute__((unused)) *ev) {
|
||||||
|
// The only selection we own is the _NET_WM_CM_Sn selection.
|
||||||
|
// If we lose that one, we should exit.
|
||||||
|
fprintf(stderr, "Another composite manager started and "
|
||||||
|
"took the _NET_WM_CM_Sn selection.\n");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
#if defined(DEBUG_EVENTS) || defined(DEBUG_RESTACK)
|
#if defined(DEBUG_EVENTS) || defined(DEBUG_RESTACK)
|
||||||
/**
|
/**
|
||||||
* Get a window's name from window ID.
|
* Get a window's name from window ID.
|
||||||
|
@ -4444,6 +4454,9 @@ ev_handle(session_t *ps, XEvent *ev) {
|
||||||
case PropertyNotify:
|
case PropertyNotify:
|
||||||
ev_property_notify(ps, (XPropertyEvent *)ev);
|
ev_property_notify(ps, (XPropertyEvent *)ev);
|
||||||
break;
|
break;
|
||||||
|
case SelectionClear:
|
||||||
|
ev_selection_clear(ps, (XSelectionClearEvent *)ev);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
if (ps->shape_exists && ev->type == ps->shape_event) {
|
if (ps->shape_exists && ev->type == ps->shape_event) {
|
||||||
ev_shape_notify(ps, (XShapeEvent *) ev);
|
ev_shape_notify(ps, (XShapeEvent *) ev);
|
||||||
|
|
Loading…
Reference in New Issue