xlib и astra linux
при выборе определенного окна приложения через программу оно должно разворачиваться на весь экран. взял за основу libX. Написал некий код:
void WindowManager::maximizeWindow(unsigned long win) {
Display* disp = XOpenDisplay(nullptr);
XEvent ev;
ev.xclient.window = win;
ev.xclient.type = ClientMessage;
ev.xclient.format = 32;
ev.xclient.message_type = XInternAtom(disp, "_NET_WM_STATE", False);
ev.xclient.data.l[0] = 1;
ev.xclient.data.l[1] = static_cast<long>(
XInternAtom(disp, "_NET_WM_STATE_MAXIMIZED_HORZ", False));
ev.xclient.data.l[2] = static_cast<long>(
XInternAtom(disp, "_NET_WM_STATE_MAXIMIZED_VERT", False));
ev.xclient.data.l[3] = 1;
XSendEvent(
disp,
DefaultRootWindow(disp),
False,
SubstructureRedirectMask | SubstructureNotifyMask,
&ev);
XCloseDisplay(disp);
}
Результат:
Debian 10: Работает как положено, разворачивается на весь экран как и задумывалось.
Astra Linux: Окно становится активным, но не разворачивается на весь экран и так и остаётся "свёрнутым". может есть какие-то особенности и финты, которые я не предусмотрел?