位于原点的 window 左上角缺少像素

Missing pixels from upper left of window placed at origin

我有一个使用 non-decorated window 的应用程序(没有标题栏等等,它最终打算成为一个 full-screen 应用程序)。外部还有one-pixel-wide线图,与外界形成天然的边界。

当我 运行 此应用程序和 Window 获得其默认位置(即 not 在 (0,0) 原点)时,边框清晰可见。

但是,当我在主 window 的构造函数中执行 this.Move(0, 0) 以确保 window 正确定位时,upper-right 像素似乎消失了因此:

忽略那个截图中的 Act 文本,它实际上是 Gnome 桌面下的 Activities 菜单。 window 的实际 upper-left 像素是那两条红线相交的地方。

有谁知道可能导致此问题的原因是什么?是否可能与控制该区域的 Gnome Shell 扩展有关?

这就是 gnome-shell 渲染主显示器顶角的方式,它是一个圆角,只是黑色上的黑色不是很明显。更改此渲染不是应用程序应该做的事情。

如果您的应用程序应该是全屏的而不是仅仅位于角落,您可以请求 gnome-shell 使用 Window.fullscreen() 来做到这一点。不过,不要总是全屏显示:window 经理可以做出其他决定。

缺失的像素是 gnome-shell 为其 windows 制作圆角矩形的方式造成的。

如果你真的想改变它,你可以编辑文件/usr/share/gnome-shell/theme/gnome-shell.css。查找 CSS 选择器 .panel-corner 并将 -panel-corner-radius 设置为 0px。这将导致 windows 具有方角而不是圆角。您可能需要在通过按 Alt-F2 并输入 r 命令进行更改后重新启动 gnome-shell

不确定该编辑是否会在 gnome-shell(甚至是主题)更新后继续存在,您可能必须放置一些东西以使其保持您想要的值(或安装扩展程序来做到这一点)给你)。