从窗口管理器打开其他应用程序时,窗口冻结/无响应/不呈现

从窗口管理器打开其他应用程序时,窗口冻结/无响应/不呈现

我在使用 Windows 时遇到了一些问题,或者实际上是整个进程都冻结了,当另一个进程从它们启动时,直到该启动的进程再次关闭。

meph@mephtow:~$ neofetch
            .-/+oossssoo+/-.               meph@mephtow 
        `:+ssssssssssssssssss+:`           ------------ 
      -+ssssssssssssssssssyyssss+-         OS: Ubuntu 21.04 x86_64 
    .ossssssssssssssssssdMMMNysssso.       Kernel: 5.11.0-49-generic 
   /ssssssssssshdmmNNmmyNMMMMhssssss/      Uptime: 5 mins 
  +ssssssssshmydMMMMMMMNddddyssssssss+     Packages: 3438 (dpkg) 
 /sssssssshNMMMyhhyyyyhmNMMMNhssssssss/    Shell: bash 5.1.4 
.ssssssssdMMMNhsssssssssshNMMMdssssssss.   Resolution: 1920x1080, 1920x1080 
+sssshhhyNMMNyssssssssssssyNMMMysssssss+   WM: awesome 
ossyNMMMNyMMhsssssssssssssshmmmhssssssso   Theme: Greybird [GTK3] 
ossyNMMMNyMMhsssssssssssssshmmmhssssssso   Icons: elementary-xfce-darker [GTK3] 
+sssshhhyNMMNyssssssssssssyNMMMysssssss+   Terminal: urxvt 
.ssssssssdMMMNhsssssssssshNMMMdssssssss.   Terminal Font: monospace 
 /sssssssshNMMMyhhyyyyhdNMMMNhssssssss/    CPU: Intel i7-8086K (12) @ 5.000GHz 
  +sssssssssdmydMMMMMMMMddddyssssssss+     GPU: NVIDIA GeForce GTX 1070 Ti 
   /ssssssssssshdmNNNNmyNMMMMhssssss/      Memory: 2339MiB / 15938MiB 
    .ossssssssssssssssssdMMMNysssso.
      -+sssssssssssssssssyyyssss+-                                 
        `:+ssssssssssssssssss+:`                                   
            .-/+oossssoo+/-.

我已经安装了 XUbuntu,通常使用 awesomeWM 作为窗口管理器。此问题在 openbox 中也会出现,因此窗口管理器似乎没有问题。

如何重现该问题:

从另一个应用程序内生成任何其他进程或窗口。

  • 当当前没有打开浏览器时,从另一个应用程序(例如 Steam、电子邮件、Teamspeak)打开网络链接将导致打开浏览器窗口。
  • 从另一个进程/窗口中打开的另一个应用程序打开任何文件。
    • 例如在 Libreoffice 中使用“打开”选项打开一个文件,这将生成一个文件管理器来选择文件。
    • 通过 Obsidian 内部的 markdown 链接打开文件,这会导致该文件在其配置的标准应用程序中打开。

实际结果:

生成过程(即单击链接或打开文件的窗口)变得无响应,以至于窗口无法收到关闭它们的调用,或者实际上无法接收任何输入。窗口也无法渲染。窗口可以作为浮动移动、可平铺,但会显示窗口无法渲染的所有症状,这意味着窗口会“显示”之前在该位置缓冲区中的内容,而不会更新其内容。非常令人困惑的视觉效果,尤其是考虑到新生成的窗口通常会导致窗口重新排列,从而使这些效果变得明显。有趣的是:据我所知,生成的窗口/进程关闭的窗口是否再次变得响应并正常工作。有趣的是,对于 LibreOffice,内容在调整大小时可以正确呈现,菜单栏、工具栏和页脚也可以随窗口正确调整大小,但在 LibreOfficeCalc 中,表格不可滚动,窗口不可关闭。如果在程序的现有会话中打开文件,它将生成文件,因为 Web 链接只会在已经存在的浏览器会话中生成一个新选项卡,一切似乎都按预期工作。

预期结果:

生成的进程可以从源进程自由打开。生成的进程不会失去响应,因此不会变得完全不可用。我不必关闭生成的进程即可再次使用生成的进程。

窗口会生成其他窗口,使得生成的窗口在仍然清晰可见时无法访问,这让我意识到这与“使用我为您打开的此文件管理器选择一个文件”对话框中的行为相似。如果我没记错的话,在 Microsoft-Windows 中,当对话框仍然打开时,您无法单击生成的窗口或移动它。虽然我有点理解这种设计选择的优点,但如果我想观看朋友通过 Messenger 或其他方式发送给我的链接,我绝对不需要类似的行为。

我会寻求任何帮助和指导,看看在哪里可以找到问题。我通过包管理器重新安装了 X,但什么也没改变。

相关内容