2014-08-31 2 views
0

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

+0

Возможный дубликат http://stackoverflow.com/questions/17114738/how-to-make-x11-window-span-multiple-monitors –

ответ

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);