[X11] Fix initial "on top" window state.

This commit is contained in:
bruvzg 2023-02-08 09:45:00 +02:00
parent 6212da66e8
commit 853f0eae58
No known key found for this signature in database
GPG key ID: 7960FCF39844EC38

View file

@ -2057,6 +2057,22 @@ void DisplayServerX11::_validate_mode_on_map(WindowID p_window) {
} else if (wd.minimized && !_window_minimize_check(p_window)) {
_set_wm_minimized(p_window, true);
}
if (wd.on_top) {
Atom wm_state = XInternAtom(x11_display, "_NET_WM_STATE", False);
Atom wm_above = XInternAtom(x11_display, "_NET_WM_STATE_ABOVE", False);
XClientMessageEvent xev;
memset(&xev, 0, sizeof(xev));
xev.type = ClientMessage;
xev.window = wd.x11_window;
xev.message_type = wm_state;
xev.format = 32;
xev.data.l[0] = _NET_WM_STATE_ADD;
xev.data.l[1] = wm_above;
xev.data.l[3] = 1;
XSendEvent(x11_display, DefaultRootWindow(x11_display), False, SubstructureRedirectMask | SubstructureNotifyMask, (XEvent *)&xev);
}
}
bool DisplayServerX11::window_is_maximize_allowed(WindowID p_window) const {