我正在尝试使用 XResizeWindow() 创建一个跨越 2 个监视器的窗口,但是 ? 窗口管理器?将其限制为一个。
是否有我可以与窗口关联的提示或属性来告诉 WM 不要限制它?
对于我的测试案例,我有两台 1600x1200 显示器,nVidia 将它们作为一个 3200x1200 屏幕呈现给 KDE4。XDisplayWidth(显示, 0); 返回 3200 和 XDisplayHeight(display, 0); 返回 1200。
当我打电话
XCreateWindow(display, DefaultRootWindow(display),
220, 0, 1700, 930,
1, DefaultDepth(display,screen),
InputOutput, CopyFromParent,
CWCursor, &attributes);
对于 220,0 的 1700x930 窗口,我在 0,0 得到一个 1593x930 的窗口,将其完全保留在左侧显示器上。任何大于该值的 XResizeWindow 都会缩小到 1593。(我假设 7 个像素是窗口装饰,这很好。)
但是,如果我然后 XMoveWindow(display, win, 800, 0),它将移动窗口以跨越屏幕,然后我可以将其放大到 3200 宽(减去几个像素)。
有什么我可以告诉窗口管理器或执行此操作的人,不要将窗口限制为单个监视器,让我使用整个屏幕吗?
谢谢!
%xrandr -q --verbose
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 3200 x 1200, current 3200 x 1200, maximum 3200 x 1200
default connected 3200x1200+0+0 (0x161) normal (normal) 0mm x 0mm
Identifier: 0x160
Timestamp: 64409661
Subpixel: unknown
Clones:
CRTC: 0
CRTCs: 0
Transform: 1.000000 0.000000 0.000000
0.000000 1.000000 0.000000
0.000000 0.000000 1.000000
filter:
3200x1200 (0x161) 192.0MHz *current
h: width 3200 start 0 end 0 total 3200 skew 0 clock 60.0KHz
v: height 1200 start 0 end 0 total 1200 clock 50.0Hz