问题标签 [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.

0 投票
1 回答
431 浏览

c - Debian Squeeze/Wheezy 中缺少 XCB 标头

文档讨论了一个名为该文件的文件,该文件input.h似乎没有出现在任何包中,至少根据:

我需要它,因为我试图使用该功能xcb_input_open_device

我究竟做错了什么?

0 投票
1 回答
712 浏览

c++ - 我是否需要断开从 XGetXCBConnection 获得的 xcb_connection_t?

这是我看到的一些 GLX 代码的示例:

我注意到那里没有xcb_disconnect。它是否正确?还有,connection关闭显示后还有效吗?

0 投票
2 回答
1595 浏览

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包含类似原子的文件,但我找不到任何文档。

我该如何解决?

0 投票
1 回答
759 浏览

c++ - 当 VISUAL_ID 和 screen->root_visual 不相等时,glXCreateWindow 不起作用

我正在处理与此非常相似的代码:

http://xcb.freedesktop.org/opengl/

当我使用默认的帧缓冲区配置时它工作正常,尽管当我尝试查询某个它失败时。我已经确定它在任何时候都会失败VISUAL_IDvisualID在示例代码中)并且screen->root_visual是不同的值。

这是错误消息:

我能做些什么来解决这个问题?

0 投票
1 回答
1080 浏览

python - 如何使用 xcb python 为 X11 窗口管理器在根窗口上设置 SubstructureRedirect 事件掩码

我有这段代码没有给出任何异常,但我似乎没有收到像 MapRequests 或 ConfigureNotifys 这样的事件:

我正在 Xephyr 中对此进行测试。

难道我做错了什么?如果是这样,我该如何解决?

0 投票
1 回答
1259 浏览

linux - 如何在 python 中使用 xcb ConfigureWindow 正确配置窗口

我正在开发一个 X11 窗口管理器,用 python 编写它。我遇到了一个问题,我在哪里得到并处理 ConfigureWindowEvents。但是,即便如此,当一个窗口被映射时,它仍显示为一个高 2 个像素、宽 1 个像素的窗口。我整理了以下示例代码,以便其他人可以测试它,并告诉我我是否做错了。我基于 qtile 的 ConfigureEvent 处理代码

我正在使用 Checked 函数来捕捉错误

0 投票
1 回答
2142 浏览

c - 如何在使用 XCB 启动新应用程序时获取事件

我正在尝试制作一个非常简单的窗口管理器用于学习目的。我正在使用Cxcb图书馆。如果启动了新应用程序,我正在尝试引发事件。

现在,我创建了一个根窗口,我可以在其中接收鼠标和键盘事件。我还在窗口顶部画了一个彩色条。当我按下回车键时,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 事件的正确方法是什么?

0 投票
1 回答
3384 浏览

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 安装中

0 投票
2 回答
3939 浏览

fullscreen - 如何为 xcb 提供 _NET_WM_STATE_FULLSCREEN 提示?

我正在尝试使用 xcb 编写一个全屏应用程序来进行我自己的教育,但我遇到了上述问题。我发现了一些使用 Xlib 执行此操作的代码,但没有使用 xcb。我已经找到了xcb_ewmh_connection_t结构,我暂时这样使用它:

然后使用结构内部的原子EWMH._NET_WM_STATE等。

鉴于这个小背景,我如何才能暗示窗口管理器窗口应该是全屏的?

0 投票
2 回答
1387 浏览

python - 无法更改 _NET_WM_STRUT_PARTIAL 属性

我想在屏幕上为我用 Python 编写的 Gtk 应用程序保留一些空间。我写了这个函数:

它的调用如下所示:

不幸的是,它不起作用。我的代码哪里出错了?

UPD: 是我的 xprop 输出。我的 WM 是 Compiz。