From c256ca443ef70f1c69a62afebeb33a6bbe48c38c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Tue, 25 Jan 2022 15:47:23 +0100 Subject: [PATCH] style: Handle sections in submenus If a menu item in a submenu is part of a section, it should have rounded bottom corners if both the item and the section are the last child of its respective parent. To express that, add a new .popup-menu-section class and use that to undo/redo the rounding for items inside a section. It would be possible to do without a new class with a selector like > StBoxLayout > .popup-menu-item:last-child:hover, :last-child > .popup-menu-item:last-child:hover but that's hardly better with its heavy reliance on implementation details. https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4940 Part-of: --- data/theme/gnome-shell-sass/widgets/_popovers.scss | 7 +++++++ js/ui/popupMenu.js | 2 ++ 2 files changed, 9 insertions(+) diff --git a/data/theme/gnome-shell-sass/widgets/_popovers.scss b/data/theme/gnome-shell-sass/widgets/_popovers.scss index f523ec6dd..3ddca4f24 100644 --- a/data/theme/gnome-shell-sass/widgets/_popovers.scss +++ b/data/theme/gnome-shell-sass/widgets/_popovers.scss @@ -139,6 +139,13 @@ border-radius: 0 0 $base_border_radius $base_border_radius; } } + + .popup-menu-section { + .popup-menu-item:last-child:hover { border-radius: 0 } + &:last-child .popup-menu-item:last-child:hover { + border-radius: 0 0 $base_border_radius $base_border_radius; + } + } } // container for radio and check boxes diff --git a/js/ui/popupMenu.js b/js/ui/popupMenu.js index f9c3df0bf..0cb4970c1 100644 --- a/js/ui/popupMenu.js +++ b/js/ui/popupMenu.js @@ -1165,6 +1165,8 @@ var PopupMenuSection = class extends PopupMenuBase { this.actor = this.box; this.actor._delegate = this; this.isOpen = true; + + this.actor.add_style_class_name('popup-menu-section'); } // deliberately ignore any attempt to open() or close(), but emit the