我使用wayland
和xwayland
并从正在运行的应用程序weston
运行应用程序。这包括我的浏览器、Firefox 和 Chromium,因为据我所知,它们目前无法本地运行。问题是单击任何菜单项都不会产生任何效果。例如,在 Chromium 中,当我单击“新选项卡”时,不会打开新选项卡。一般来说,菜单项没有任何效果。我尝试发行X11
xserver
wayland/weston
wayland/weston
export GDK_BACKEND=wayland
无济于事。该问题影响我的两个浏览器:Firefox 和 Chromium。其他应用程序不会显示这种行为。有人可以提供解释并最好提供解决方案吗?
这里有一个链接到韦斯顿截屏视频这就说明了问题。
答案1
问题在于xwayland
和的组合weston
。菜单表面接收到按下事件,但没有接收到释放事件,因为wl_pointer
无法weston
观察到这一点。weston
将把输入焦点设置到菜单。这是一个覆盖重定向窗口。这种行为weston
是错误的并会导致此错误。但这可以通过在 in 中应用以下补丁轻松解决window.manager.c
:
xwayland/window-manager.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/xwayland/window-manager.c b/xwayland/window-manager.c
index a216b76..bf39fab 100644
--- a/xwayland/window-manager.c
+++ b/xwayland/window-manager.c
@@ -701,6 +701,9 @@ weston_wm_window_activate(struct wl_listener *listener, void *data)
}
if (window) {
+ if (window->override_redirect)
+ return;
+
client_message.response_type = XCB_CLIENT_MESSAGE;
client_message.format = 32;
client_message.window = window->id;
--
这已在 wayland bugs 邮件中讨论并发布列表。