如何在 Awesome WM v3.5.2 到 3.5.5(到目前为止)中重现:
在这一点上,我希望鼠标的行为与“普通”应用程序一样。相反,我观察到以下几点:
就好像有些东西没有检测到窗口坐标发生了变化。
当您在同一标签中打开另一个应用程序时,会发生类似但更烦人的错误- 鼠标行为就好像窗口根本没有移动一样。
当您切换另一个已打开应用程序的标签时- “虚拟鼠标桌面”将移至主屏幕的左上角。
由于在 OpenJDK 和 Oracle Java 中都观察到了这些错误,在不同的 Java 应用程序中,该错误似乎很可能在 Awesome WM 中。
根据我的经验,您需要向窗口管理器的源代码添加特殊定义。
几年前,我在 MATE 桌面的marco
窗口管理器中就遇到过这种情况;“修复”是让 marco 假装是其父项目 metacity,以利用 JDK 的内置修复来修复 metacity。
从src/core/display.c
:
meta_prop_set_utf8_string_hint (the_display,
the_display->leader_window,
the_display->atom__NET_WM_NAME,
"Metacity (Marco)");
Run Code Online (Sandbox Code Playgroud)
这个修复有点像网络浏览器世界中用户代理字符串所发生的情况,但它对我有用。
此外,arch wiki 甚至在有关模拟其他窗口管理器的部分中提到了 Awesome WM,其中推荐wmname
:
https ://wiki.archlinux.org/index.php/Java#Impersonate_another_window_manager
您可以使用suckless.org 中的wmname 来使JVM 相信您正在运行不同的窗口管理器。这可以解决在 Awesome、Dwm 或 Ratpoison 等窗口管理器中出现的 Java GUI 渲染问题。
$ wmname LG3D
发出 wmname 命令后,您必须重新启动相关应用程序。
这是可行的,因为 JVM 包含已知的、非重新父子窗口管理器的硬编码列表。为了最大程度地讽刺,一些用户更喜欢模仿 LG3D,这是 Sun 用 Java 编写的非重新父子窗口管理器。
归档时间: |
|
查看次数: |
2915 次 |
最近记录: |