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: Окно становится активным, но не разворачивается на весь экран и так и остаётся "свёрнутым". может есть какие-то особенности и финты, которые я не предусмотрел?


Ответы (0 шт):