c -xlib如何使窗口全屏完整



我正在使用Xlib编写自己的平台库(Genius Play,我知道),但是我无法让全屏在基于Gnome的DE上工作。它在i3和XFCE上起作用,但在侏儒或统一上不起作用。这是我到目前为止所拥有的。

XSizeHints* size_hints;
long hints = 0;
size_hints = XAllocSizeHints();
if (XGetWMSizeHints(_platform.display, _window.window, size_hints, &hints,
    XInternAtom(_platform.display, "WM_SIZE_HINTS", False)) == 0) {
    puts("Failed.");
} 
XLowerWindow(_platform.display, _window.window);
XUnmapWindow(_platform.display, _window.window);
XSync(_platform.display, False);
printf("%ldn", hints);
XFree(size_hints);
Atom atoms[2] = { XInternAtom(_platform.display, "_NET_WM_STATE_FULLSCREEN", False), None };
XChangeProperty(
    _platform.display,
    _window.window,
    XInternAtom(_platform.display, "_NET_WM_STATE", False),
    XA_ATOM, 32, PropModeReplace, (unsigned char*)atoms, 1);
XMapWindow(_platform.display, _window.window);
XRaiseWindow(_platform.display, _window.window);

缩小所有XGetWMSizeHints代码,此代码在其他WMS和DES上正常工作。根据其他堆栈溢出问题,在GNOME上使用全屏工作的方法是更改某些WM-NORMAL_HINT值或完全删除它们(如何在Ubuntu和没有GNOME面板的Ubuntu和全屏窗口上打开未装修的全屏幕窗口)。

)。 )。 >

为了做,我必须使用XGetWMSizeHints,但是该功能失败了。我需要先创建窗口的属性,然后使用此功能?我应该在XSizeHints中设置什么值?

我已经在环境中尝试了您的解决方案,并且它有效。

我注意到的是XgetWmsizehints的返回值在失败上为0,而成功的零是非零的,这意味着您的示例是错误的打印"失败"。

相关内容

  • 没有找到相关文章

最新更新