使用 XLib 创建不可调整大小的窗口

问题描述 投票:0回答:1

我想在X11中创建一个不可调整大小的窗口,所以我必须将override_redirect窗口属性设置为True。但是,我仍然希望该窗口与所有其他窗口交互并显示在侧槽中(显示当前打开的窗口)。我希望我的窗口与其他窗口重叠并通过

Alt+Tab
进行切换。

此类应用程序的示例是Telegram Desktop。它没有默认的窗口装饰,但看起来仍然像一个功能齐全的 X11 应用程序。enter image description here

c x11 xlib
1个回答
0
投票

重复禁用 X11 窗口大小调整


来自这个答案https://stackoverflow.com/a/5558000/23803348

您可以使用

XSetWMNormalHints()
执行此操作,它指定 WM 应允许的大小调整。如果将最小值和最大值设置为与宽度相同,则普通 WM 将不允许调整大小。

请注意,这被称为提示是有原因的; WM 可以随意忽略您,大多数平铺 WM 都会。

这是一个例子:

XSizeHints *size_hints = XAllocSizeHints();
size_hints->flags = PMinSize | PMaxSize;
size_hints->min_width = size_hints->max_width = 800;
size_hints->min_height = size_hints->max_height = 600;
XSetWMNormalHints(display, window, size_hints);
XFree(size_hints);
© www.soinside.com 2019 - 2024. All rights reserved.