[gnome-shell] style: Handle sections in submenus
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] style: Handle sections in submenus
- Date: Thu, 27 Jan 2022 22:58:07 +0000 (UTC)
commit c256ca443ef70f1c69a62afebeb33a6bbe48c38c
Author: Florian Müllner <fmuellner gnome org>
Date: Tue Jan 25 15:47:23 2022 +0100
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: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2126>
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 f523ec6dd0..3ddca4f242 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 f9c3df0bf1..0cb4970c1f 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
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]