当窗口在xlib / xcb

时间:2019-01-08 09:22:04

标签: c++ ubuntu xcb

在Ubuntu 18.04 KDE桌面上,当窗口移动时,我无法确切获得窗口的位置。

使用xcb_get_geomerty()函数,我可以获取窗口的位置。

但是当窗口移动时,窗口的位置仍与以前相同,没有变化。当释放鼠标并完成窗口移动时,我便可以准确地获得窗口的位置。

    auto geom = xcb_get_geometry(xcb_connection(), window);
    auto offset = xcb_translate_coordinate(xcb_connection(), window, rootwin, geom->x, geom->y);

    offset->dst_x // top-level window's x offset on the screen
    offset->dst_y // top-level window's y offset on the screen
    geom->width   // top-level window's width
    geom->height  // top-level window's height

在其他桌面环境(例如gnome,xfce)(而非KDE)中移动窗口时,正确获取窗口的位置。还有什么其他方法或xwindow属性可以在移动时获取窗口的位置吗?

0 个答案:

没有答案