diff --git a/src/vocalinux/ui/settings_dialog.py b/src/vocalinux/ui/settings_dialog.py index a894b29..6f8b8c7 100644 --- a/src/vocalinux/ui/settings_dialog.py +++ b/src/vocalinux/ui/settings_dialog.py @@ -4055,6 +4055,8 @@ class SettingsDialog(Gtk.Dialog): scrolled_window.set_min_content_height(60) scrolled_window.set_max_content_height(100) scrolled_window.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) + # GTK3 default IN shadow draws a left etched stripe on GNOME/Wayland (#847). + scrolled_window.set_shadow_type(Gtk.ShadowType.NONE) scrolled_window.get_style_context().add_class("test-area") self.test_textview = Gtk.TextView() diff --git a/tests/test_settings_dialog.py b/tests/test_settings_dialog.py index 7775a9a..84601be 100644 --- a/tests/test_settings_dialog.py +++ b/tests/test_settings_dialog.py @@ -1048,6 +1048,14 @@ class TestSettingsNavigation(unittest.TestCase): self.assertIn("Gtk.Separator", before_close) self.assertIn("footer.pack_start(close_separator", before_close) + def test_test_dictation_scrolled_window_has_no_shadow(self) -> None: + """GTK3 ScrolledWindow default shadow is a left stripe on GNOME/Wayland (#847).""" + footer_body = self.source_code.split("def _build_sidebar_footer")[1].split("\n def ")[0] + scrolled_block = footer_body.split("scrolled_window = Gtk.ScrolledWindow()")[1].split( + "self.test_textview = Gtk.TextView()" + )[0] + self.assertIn("scrolled_window.set_shadow_type(Gtk.ShadowType.NONE)", scrolled_block) + def test_sidebar_icons_use_adwaita_names(self): """Sidebar icons must resolve in the stock Adwaita theme.""" for icon in [