问题标签 [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 投票
2 回答
2827 浏览

x11 - xcb 键盘按钮掩码含义

我试图弄清楚哪些键由以下人员处理:

  • XCB_MOD_MASK_1
  • XCB_MOD_MASK_2
  • XCB_MOD_MASK_3
  • XCB_MOD_MASK_4
  • XCB_MOD_MASK_5

在 xcb 中,对于 XCB_MOD_MASK_1,它似乎是 Alt(我是正确的?),但对于其他按钮,我无法在任何地方找到映射(我在发布之前尝试用谷歌搜索它们,但没有成功)。

那么与这些面具相关的常用键是什么?

0 投票
1 回答
883 浏览

c - XCB:窗口被映射一次后不会取消映射

我有一个用 C 语言编写的小示例程序,它使用 XCB API 打开一个窗口。

严格来说,在我创建并显示了窗口之后,我会(稍后)想要隐藏窗口。

(很明显,在这个特定的例子中,我可以删除对 xcb_map_window 的调用,并且窗口将被隐藏,但我想稍后在我的较大应用程序中执行此操作,例如显示/隐藏窗口的切换,注意:我不想最小化它)。

这是示例代码(注意:由于答案,此代码现在可以工作):

我编译和运行的是:

从我在谷歌或这里可以找到的任何内容中,我做的一切都是正确的。因此,为了澄清起见,我使用的是 Unity 和 Ubuntu 12.04 LTS:

unity --version 报告:

uname -a 报告:

谁能解释我在这段代码中哪里出错了?

编辑:在 xcb_unmap_window() 之后使用 flush() 更新代码;还是不行。

EDIT2:尝试使用肉桂 WM 的代码;仍然不起作用(这不是 Unity 错误)。

EDIT3:这篇文章中更新的代码现在可以工作了。

0 投票
0 回答
408 浏览

x11 - 显示带有 XCB / 奇怪行为的窗口

我试图在主窗口内的 xcb 中显示一个窗口,但实际上没有运气。

这个想法是,当用户按下一个按钮(在这种情况下是 X 按钮)时,会显示一个小的白色窗口(仅用于测试)。

但实际上我被困在这一步。我在这里观看了示例代码: http ://en.wikibooks.org/wiki/X_Window_Programming/XCB

并试图在我的应用程序中做同样的事情。

[编辑 28/10/2013 ]现在使用该代码我可以显示一个窗口,但是如果我尝试添加其他变量,例如 int i=0 或其他变量,则该窗口不会出现,并且没有引发暴露事件(所有引发的事件是 0 或 2(即使我在其他事件中添加变量)。知道吗?

这是 XCB_KEY_PRESS 事件处理程序代码: 编辑(使用新代码)

root 是从 xcb_screen_t 变量获得的根窗口。

背景和胜利的定义如下:

我什至添加了一个 XCB_EXPOSE 事件处理程序:

该代码有什么问题?我错过了什么?(我正在尝试开发一个非常基本的窗口管理器,只是为了好玩)

(我对该程序的想法是,当按下 x 时会显示一个输入框,您对如何执行此操作有任何建议吗?)

0 投票
0 回答
231 浏览

x11 - 自定义窗口管理器和与应用程序的交互

我读过窗口管理器负责窗口装饰(标题栏、关闭按钮等)。因此,如果我可以处理,当创建窗口并以某种方式对其进行修改(为其创建标题栏、关闭按钮等)时,当单击关闭按钮时,如何通知该窗口的应用程序?在 QT 等现代工具包中总是有一些处理程序,我可以在其中对窗口关闭做出反应。必须以某种方式告诉可能的应用程序“嘿,您的窗口正在关闭,想做点什么吗?”。我找不到这种行为的解释。

0 投票
3 回答
641 浏览

c++ - xcb 鼠标移动导致输入延迟

我已经编写了一些基本的 OpenGL 应用程序,使用 XCB 作为后端(当然是用于 GLX 的 xlib),并且在我编写的每个测试中,当我将鼠标移到窗口上时,它会导致所有输入都得到某种“缓冲”并且只响应一段时间后的事件(取决于输入的数量)。

我正在调用 xcb_poll_events 并以这种方式获取事件信息,然后将其加载到自定义事件类中,但这在我的旧 xlib 实现中从来没有慢过。

什么可能导致这种滞后?

事件轮询:

和测试应用程序中的事件循环:

0 投票
2 回答
574 浏览

c - 等待终端输入时如何处理窗口事件?

我有一个跨平台(windows 和 unix+xcb)终端+graphics_window 应用程序,它大部分工作正常,直到您在输入提示符处等待太久,在重负载下图像可能会消失。:(

我有一个用于解释器(postscript 解释器)的主循环(REPL),它每次围绕它的循环调用一个事件处理函数。事件处理程序对通常是窗口的消息/事件循环执行一次迭代。但是输入是用普通的 C i/o 处理的,因此事件处理程序在阻塞时永远不会被调用fgetc()

图形窗口仅用于输出。它没有按钮,只需要响应 Raise、Map、Expose 等事件。

如何安排在调用堆栈更深处的输入读取循环期间调用事件处理程序?这需要可以使用 POSIX 和 win32 API 来实现。

选项似乎是

  • 非阻塞 i/o
    在 unix 中相对简单。看起来像窗户的痛苦
  • 轮询
  • 输入线程
    pthreads?
  • 窗口线程
    pthreads?

这些中的任何一个都可能比其他的痛苦少吗?

如果我可以留在 unix 上,那么这似乎可以解决问题:

0 投票
2 回答
6900 浏览

c++ - 在 OSX -qt-xcb 上安装 Qt5

我在 OSX 上安装 Qt5 时遇到问题。

Mac OSX的Qt 要求已完成 - 已安装 Xcode 和命令行。然后我按照以下步骤操作:

然后我也试过

有关相关问题的其他一些链接是:

然后Xquartz也安装了,假设问题是因为OSX Mountain Lion上缺少X11,重启电脑再次尝试安装。它没有解决一点问题。

在 Linux Qt5 上安装很顺利,没有任何麻烦。但在 OSX 上它不起作用。

我希望有人可以提出任何建议。

0 投票
1 回答
1386 浏览

x11 - XCB + 记录 x11 扩展示例

您能否提供通过XCB使用记录扩展的示例代码(任何语言) ?有很多关于如何使用Xlib ( https://gist.github.com/whym/402801 ) 的示例,但我不明白如何将这部分Xlib代码转换为XCB

xcb_record_create_context(...)的 XCB 文档完全是一团糟。任何工作代码都会有所帮助。

0 投票
1 回答
1942 浏览

c - 如何通过 xcb RandR 扩展获得 RandR 输出的分辨率?

我正在开发一个已经在使用 xcb 并且需要获得单个输出的分辨率而不是组合屏幕的分辨率的项目。我可以使用 xcb 的 RandR 扩展来执行此操作吗?如果是这样,我该如何使用我的xcb_connection_t对象来做到这一点。

0 投票
1 回答
681 浏览

linux - XCB按键输入拦截?

XCB 协议中拦截关键输入的代码是什么?

为此,我在 XCB 文档中找不到任何内容(或者我看不到正确的文档/代码)。我使用 Python,但一个 C 示例有助于理解代码。谢谢。