(双监视器和12.04)捕捉到全屏的窗口将窗口置于其他监视器上

背景

(Unity 2D中不会发生此问题)

当移动一个窗口,并将光标放在屏幕的顶部时,橙色框在屏幕上展开,你放开,窗口全屏显示….至少,它应该是。

当我不在Unity2D(即Unity 3D或简称“Unity”,因为它在我登录时显示)时,我可以将窗口全屏放在我的右侧显示器上,但如果我将窗口推到顶部离开显示器放开,它在右侧显示器上快速移动到全屏!

这真的令人沮丧,因为拥有两台显示器的全部目的当然是能够同时查看不同的东西。

有谁知道是什么原因造成的?

我觉得它可能正在接受右侧显示器作为“主要”或类似的东西。 它有时只发生,而不是经常发生。 它自从更新到12.04以来才开始这样做。 此外,即使计算机什么也没做,Compiz进程正在运行并占用了很多处理器。 我的CPU过去常常在30-31C左右闲置,但现在只是坐在那里,大概是39-41C ……在我看来,12.04正在吸引大量时间(不值得多)。

感谢您的投入!

我想到了。 就像Pauk所说,它与不同的分辨率有关。

只有在尝试将大尺寸窗口从大型显示器移动到小型显示器时才会出现这种情况。

解决问题:

调整大型显示器中的窗口大小,使其小于较小显示器上的全屏幕(即窗口将适合较小的显示器而不会触及任何边缘)。

接下来,将其拖动到较小的监视器的顶部并释放以使其全屏(或将其拖动到较小的监视器并“最大化”它)。

就像Miceterminator所说,你也可以拖到一边…..只是对窗口做的事情比小屏幕的全屏小。

讨论

所以问题是我们试图将一个大窗口(对我来说是1920×1080)放到一个较小的(1600×900对我来说)“canvas”上可以这么说。 这就解释了为什么它会弹回更大的显示器。 只需将其设置得足够小以适应“较小的canvas”,然后将其最大化以完全填充,似乎就是解决方案。

我很高兴我们弄清楚了!

我注意到当你的显示器上有不同的分辨率时会发生这种情况 例如,我的笔记本电脑分辨率为1366×768,外接显示器为1920×1080。 当您尝试最大化(通过将其捕捉到顶部边缘或通过最大化按钮)并且窗口高度大于屏幕垂直高度(在我的笔记本电脑上)时,它将在屏幕上以更高的分辨率(在外部监视器上)最大化。

我想指出的是,在我的双头设置上,窗口对齐也很奇怪。 但是,当compiz为全屏幕应用程序选择错误的显示器时,我会尝试将其捕捉到我想要的显示器一侧(显示器的一半带有窗口),当我尝试在显示器上再次最大化时,它作品。

还要注意两个显示器之间的鼠标屏障,有时窗口会在另一个显示器上移动,但鼠标会留在后面。 因此,如果您尝试最大化它,compiz将使用鼠标所在的显示器,因此它会捕捉到错误的显示器。 由于屏障只是访问第二台显示器上的启动器,我使用compiz-config-settings-manager(ccsm)来禁用屏障(我相信你可以在Unity插件设置下找到它)。