Skip to content

x11window: Allow unmaximizing fixed size maximized windows.

For example, when Wine unmaximizes a window without resize borders, it sets the window size hints to indicate that the window is a fixed size window. Then Wine will send a ClientMessage asking KWin to remove _NET_WM_STATE_MAXIMIZED_VERT/HORZ. If KWin rejects the unmaximization because the window is fixed size, then _NET_WM_STATE_MAXIMIZED_VERT/HORZ are not removed and Wine will read _NET_WM_STATE upon receiving events and then maximize the same window it tried to unmaximize.

Although Wine can work around this issue by removing the size hints before sending the ClientMessage to remove _NET_WM_STATE_MAXIMIZED_VERT/HORZ, it's not robust because of the cross-process nature of ClientMessage handling. By the time the ClientMessage is handled, the window can still be fixed size.

Merge request reports