防止带有圆角的未装饰窗户上的彩色角

问题描述

我有一个窗口,我想将其渲染为带有圆角的未装饰(无标题栏)窗口。该窗口被设计为一个短暂的弹出窗口。

这是我创建窗口的方法

Gtk.Window.__init__(
  self,title="Emote",window_position=Gtk.WindowPosition.CENTER,resizable=False,deletable=False,decorated=False,name="emote_window",)

这是正在加载的 CSS 的相关部分:

#emote_window {
  border-radius: 4px;
}

正如您从下面的屏幕截图中看到的,尽管窗口正确地应用了边框半径,但窗口后面有一个黑色背景,在现在被剪裁的角落中可见。

window with black corners

我不明白为什么会发生这种情况。我需要在我的应用程序中做些什么来防止这种情况发生?我正在运行 Pop!_OS 20.10 并且没有其他应用程序有这个问题。例如,Ulauncher 是一个类似的带有圆角的未装饰窗口,它的显示效果与您预期的一样。

我想检查是否还有另一个选择器我也需要应用该样式,所以我添加了这个额外的调试样式以查看是否有问题:

* {
  background: none;
  border-radius: 20px;
}

它应该使所有东西都有夸张的圆角,并确保所有背景都是透明的。正如您在下面看到的 - 我的 css 似乎没有问题:

everything with rounded corners apart from the window itself

可以在此处的 v2-ui 分支上找到完整的源代码https://github.com/tom-james-watson/Emote/tree/v2-ui

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)