Merge pull request #3421 from Streetwalrus/iconic-state
Reject requests for WM_STATE_ICONIC
This commit is contained in:
commit
27afc572c1
|
@ -17,3 +17,4 @@ xmacro(I3_FLOATING_WINDOW)
|
||||||
xmacro(_NET_REQUEST_FRAME_EXTENTS)
|
xmacro(_NET_REQUEST_FRAME_EXTENTS)
|
||||||
xmacro(_NET_FRAME_EXTENTS)
|
xmacro(_NET_FRAME_EXTENTS)
|
||||||
xmacro(_MOTIF_WM_HINTS)
|
xmacro(_MOTIF_WM_HINTS)
|
||||||
|
xmacro(WM_CHANGE_STATE)
|
||||||
|
|
|
@ -806,6 +806,18 @@ static void handle_client_message(xcb_client_message_event_t *event) {
|
||||||
XCB_ATOM_CARDINAL, 32, 4,
|
XCB_ATOM_CARDINAL, 32, 4,
|
||||||
&r);
|
&r);
|
||||||
xcb_flush(conn);
|
xcb_flush(conn);
|
||||||
|
} else if (event->type == A_WM_CHANGE_STATE) {
|
||||||
|
/* http://tronche.com/gui/x/icccm/sec-4.html#s-4.1.4 */
|
||||||
|
if (event->data.data32[0] == XCB_ICCCM_WM_STATE_ICONIC) {
|
||||||
|
/* For compatiblity reasons, Wine will request iconic state and cannot ensure that the WM has agreed on it;
|
||||||
|
* immediately revert to normal to avoid being stuck in a paused state. */
|
||||||
|
DLOG("Client has requested iconic state, rejecting. (window = %d)\n", event->window);
|
||||||
|
long data[] = {XCB_ICCCM_WM_STATE_NORMAL, XCB_NONE};
|
||||||
|
xcb_change_property(conn, XCB_PROP_MODE_REPLACE, event->window,
|
||||||
|
A_WM_STATE, A_WM_STATE, 32, 2, data);
|
||||||
|
} else {
|
||||||
|
DLOG("Not handling WM_CHANGE_STATE request. (window = %d, state = %d)\n", event->window, event->data.data32[0]);
|
||||||
|
}
|
||||||
} else if (event->type == A__NET_CURRENT_DESKTOP) {
|
} else if (event->type == A__NET_CURRENT_DESKTOP) {
|
||||||
/* This request is used by pagers and bars to change the current
|
/* This request is used by pagers and bars to change the current
|
||||||
* desktop likely as a result of some user action. We interpret this as
|
* desktop likely as a result of some user action. We interpret this as
|
||||||
|
|
Loading…
Reference in New Issue