问题标签 [xcb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 我是否需要断开从 XGetXCBConnection 获得的 xcb_connection_t?
这是我看到的一些 GLX 代码的示例:
我注意到那里没有xcb_disconnect
。它是否正确?还有,connection
关闭显示后还有效吗?
c++ - XCB STRING 和 WM_NAME 未定义
在哪里STRING
定义WM_NAME
?
我的xcb_atom.h
文件只包含 3 个函数声明,当我期望它看起来像这样时:http ://www.opensource.apple.com/source/X11libs/X11libs-40/xcb-util/xcb-util-0.3.3/原子/xcb_atom.h
我也有一个xcb_ewmh.h
包含类似原子的文件,但我找不到任何文档。
我该如何解决?
c++ - 当 VISUAL_ID 和 screen->root_visual 不相等时,glXCreateWindow 不起作用
我正在处理与此非常相似的代码:
http://xcb.freedesktop.org/opengl/
当我使用默认的帧缓冲区配置时它工作正常,尽管当我尝试查询某个它失败时。我已经确定它在任何时候都会失败VISUAL_ID
(visualID
在示例代码中)并且screen->root_visual
是不同的值。
这是错误消息:
我能做些什么来解决这个问题?
python - 如何使用 xcb python 为 X11 窗口管理器在根窗口上设置 SubstructureRedirect 事件掩码
我有这段代码没有给出任何异常,但我似乎没有收到像 MapRequests 或 ConfigureNotifys 这样的事件:
我正在 Xephyr 中对此进行测试。
难道我做错了什么?如果是这样,我该如何解决?
linux - 如何在 python 中使用 xcb ConfigureWindow 正确配置窗口
我正在开发一个 X11 窗口管理器,用 python 编写它。我遇到了一个问题,我在哪里得到并处理 ConfigureWindowEvents。但是,即便如此,当一个窗口被映射时,它仍显示为一个高 2 个像素、宽 1 个像素的窗口。我整理了以下示例代码,以便其他人可以测试它,并告诉我我是否做错了。我基于 qtile 的 ConfigureEvent 处理代码
我正在使用 Checked 函数来捕捉错误
c - 如何在使用 XCB 启动新应用程序时获取事件
我正在尝试制作一个非常简单的窗口管理器用于学习目的。我正在使用C
和xcb
图书馆。如果启动了新应用程序,我正在尝试引发事件。
现在,我创建了一个根窗口,我可以在其中接收鼠标和键盘事件。我还在窗口顶部画了一个彩色条。当我按下回车键时,xterm 将使用 fork 和 execvp 启动。这一切都很好。
当 xterm(或我认为的任何应用程序)启动时,它会绘制在条形图的顶部(x = 0,y = 0)。我想将它移低一点(x = 0,y = 16)。我想我知道如何移动窗口,使用xcb_configure_window
. 但我不知道如何为新启动的应用程序获取事件。
编辑:
经过一番折腾,我得出以下结论:
如果我像这样创建父窗口:
当我生成一个新终端时,我将收到 XCB_CREATE_NOTIFY。但是,我无法在屏幕上绘制任何内容,因为我没有“订阅”该XCB_EVENT_MASK_EXPOSE
事件。如果我将 values[0] 行更改为:
我仍然会收到创建事件,但是程序启动后不会立即调用公开事件,因此我的条不会被绘制。不过,一旦我启动一个新终端,它就会得到一个暴露事件,但我的初始绘图不会发生。
我创建父窗口的旧方法是:
这将绘制一个白色背景并绘制我的彩色条,因为它会立即获得 XCB_EVENT_MASK_EXPOSURE 事件。但它不会得到 XCB_CREATE_NOTIFY 事件。
那么获取 XCB_CREATE_NOTIFY 事件和 XCB_EVENT_MASK_EXPOSURE 事件的正确方法是什么?
linux - Linux 中的 Qt 线程问题
我已经在我的项目中使用 Qt 开发了一段时间,并且我们开始转向更加面向线程的设计。在将一些 GL 渲染小部件移动到其他线程时,我发现了一些非常奇怪的行为。看来,如果 GL Widget 在接受用户输入(例如 QTextEdit)的小部件获得焦点之前开始从另一个线程(boost 线程或 QThread)更新,我会得到如下所示的 XCB 崩溃:
为了测试这一点,我实际上可以对 GLHypnotizer 演示进行简单修改以重现崩溃。该演示可以在这里找到:http: //qt-project.org/doc/qt-4.8/demos-glhypnotizer.html [qt-project.org]
如果我添加行'mdiArea.addSubWindow(new QTextEdit(this));' 在第 313 行左右(在调用 newThread() 之前),然后当演示开始时,将有一个 QTextEdit 和一个 GL Hypnotizer Widget。如果我然后单击 QTextEdit 来获取焦点,我每次都会遇到上述崩溃。
任何人都可以使用上述说明在 Linux 安装上重现错误吗?有没有人在使用 Qt 和线程之前在 Linux 上遇到过这些类型的问题?
注意:我使用的是 Ubuntu 12,此崩溃发生在 VirtualBox 和非 VirtualBox Ubuntu 安装中
fullscreen - 如何为 xcb 提供 _NET_WM_STATE_FULLSCREEN 提示?
我正在尝试使用 xcb 编写一个全屏应用程序来进行我自己的教育,但我遇到了上述问题。我发现了一些使用 Xlib 执行此操作的代码,但没有使用 xcb。我已经找到了xcb_ewmh_connection_t
结构,我暂时这样使用它:
然后使用结构内部的原子EWMH._NET_WM_STATE
等。
鉴于这个小背景,我如何才能暗示窗口管理器窗口应该是全屏的?
python - 无法更改 _NET_WM_STRUT_PARTIAL 属性
我想在屏幕上为我用 Python 编写的 Gtk 应用程序保留一些空间。我写了这个函数:
它的调用如下所示:
不幸的是,它不起作用。我的代码哪里出错了?
UPD: 这是我的 xprop 输出。我的 WM 是 Compiz。