x11 - как сохранить окно в фиксированном положении

Разрабатываю плагин для Compiz (оконный менеджер). На моей тестовой машине xfce запускает оконный менеджер. У меня два монитора, которые установлены вертикально (верхний 1920x1080 + 0 + 0, нижний 1920x1080 + 0 + 1080). Нижний монитор установлен как основной. Эта опция (основной монитор) доступна, например, в настройках nvidia. В моем коде я могу использовать функцию xlib XConfigureWindow, когда я хочу установить верхний левый угол окна игры в положение [0,0]. Это нормально работает, но когда окно находится в полноэкранном режиме (покрывает два монитора) и получает фокус, оно иногда меняет положение. Затем новое положение верхнего левого угла начинается с 0, 1080, и я могу видеть только половину окна. Возможно, такое поведение связано с опцией основного экрана. Что означает главный экран для оконной системы x11? Мне не разрешено менять эту опцию. Как сохранить фиксированное положение окна? Есть ли какая-нибудь функция xlib или флаг, которые я могу использовать?


person Irbis    schedule 31.08.2014    source источник
comment
Возможный дубликат stackoverflow .com / questions / 17114738 /.   -  person n. 1.8e9-where's-my-share m.    schedule 01.09.2014


Ответы (1)


Диспетчер окон не сможет ничего сделать с окном, созданным с помощью этой опции.

// Create a window : 
window = XCreateSimpleWindow(dpy, RootWindow(dpy, 0), 
            win_X, win_Y, win_width,
            win_height, 0, 0, 0);

// Set non managed window
XSetWindowAttributes set_attr;
set_attr.override_redirect = True;
XChangeWindowAttributes(dpy, window, CWOverrideRedirect, &set_attr);

// Map the window on screen
XMapWindow(dpy, window);
person user43853    schedule 10.11.2014