我正在尝试使用XResizeWindow()创建一个跨越两个监视器的窗口,但是窗口管理器将其限制在一个窗口中。是否有提示或属性可以与窗口关联,告诉WM不要限制它?
对于我的测试用例,我有两个1600x1200的显示器,nVidia将其呈现为KDE4的一个3200x1200屏幕。 XDisplayWidth(display,0); 返回3200,XDisplayHeight(display,0);返回1200。
当我调用
对于一个220,0位置的1700x930窗口,我得到了一个1593x930的窗口,完全保留在左侧监视器上。任何大于这个大小的XResizeWindow都会被缩小到1593(我假设7个像素是窗口装饰,这没关系)。但是,如果我使用XMoveWindow(display,win,800,0)将其移动到跨越屏幕的位置,然后我可以将其放大到3200宽(减去一些像素)。有什么办法告诉窗口管理器或执行此操作的其他人不要将窗口限制为单个监视器,让我使用整个屏幕?谢谢!
对于我的测试用例,我有两个1600x1200的显示器,nVidia将其呈现为KDE4的一个3200x1200屏幕。 XDisplayWidth(display,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窗口,我得到了一个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