相关疑难解决方法(0)

X11 - 在叠加窗口上绘制

我想在屏幕上的特定像素处绘制简单的图元(类似于这个问题).为了做到这一点,我使用窗口管理器的叠加窗口绘制所有窗口的顶部.我可以看到我正在绘制的形状和鼠标事件通过,但我没有看到例如窗口移动位于叠加窗口下方(除非我杀死我的应用程序).我是Xlib编程的新手,sry可能会问一个简单的问题.

#include <assert.h>
#include <stdio.h>
#include <X11/Xlib.h>

#include <X11/extensions/Xcomposite.h>
#include <X11/extensions/Xfixes.h>
#include <X11/extensions/shape.h>

#include <cairo.h>
#include <cairo-xlib.h>

Display *d;
Window overlay;
Window root;
int width, height;

void
allow_input_passthrough (Window w)
{
    XserverRegion region = XFixesCreateRegion (d, NULL, 0);

    XFixesSetWindowShapeRegion (d, w, ShapeBounding, 0, 0, 0);
    XFixesSetWindowShapeRegion (d, w, ShapeInput, 0, 0, region);

    XFixesDestroyRegion (d, region);
}

void
prep_overlay (void)
{
    overlay = XCompositeGetOverlayWindow (d, root);
    allow_input_passthrough (overlay);
}

void draw(cairo_t *cr) {
    int quarter_w = width / 4; …
Run Code Online (Sandbox Code Playgroud)

c linux x11

8
推荐指数
2
解决办法
5418
查看次数

带有框的pygtk窗口忽略所有X(鼠标)事件(传递它们)

我想做以下事情:创建一个全屏,始终在顶部pygtk窗口,其中webkit小部件显示一些html,但是有一个完全透明的框,以便下面的窗口可见.(这似乎是可能的:是否可以使用WebKit在清晰的背景上呈现Web内容?)

我想要的是(有时)将透明框中出现的所有鼠标事件传递到应用程序窗口下方的窗口,以便我可以正常地与它们进行交互.因此,不仅视觉上透明,而且对鼠标事件也是透明的.

从理论上讲,我想我可以通过pygtk Eventbox捕获我感兴趣的所有事件,使用wnck在我的正下方找到窗口,并使用python-xlib将此事件传递给它.

这似乎不是最优雅的解决方案; 有没有更好的办法?

python x11 pygtk xlib wnck

5
推荐指数
1
解决办法
654
查看次数

标签 统计

x11 ×2

c ×1

linux ×1

pygtk ×1

python ×1

wnck ×1

xlib ×1