From 58477282fe9388092ddd1052343774f8f5669699 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Thu, 6 Sep 2012 11:41:23 +0200 Subject: [PATCH] popupSubMenu: Only remove padding when scrollbar is shown The special padding rules for submenu items currently ensure that content aligns properly when the scrollbar is shown. While they work nicely for the network menu, it looks odd for non-scrolled submenus, so make this case explicit by introducing a :scrolled pseudo class and adjust the style rules to use it. https://bugzilla.gnome.org/show_bug.cgi?id=683009 --- data/theme/gnome-shell.css | 4 ++-- js/ui/popupMenu.js | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/theme/gnome-shell.css b/data/theme/gnome-shell.css index ec4eabece..d2bd3da79 100644 --- a/data/theme/gnome-shell.css +++ b/data/theme/gnome-shell.css @@ -151,11 +151,11 @@ StScrollBar StButton#vhandle:active { box-shadow: inset 0px 2px 4px rgba(0,0,0,0.9); } -.popup-sub-menu .popup-menu-item:ltr { +.popup-sub-menu:scrolled .popup-menu-item:ltr { padding-right: 0em; } -.popup-sub-menu .popup-menu-item:rtl { +.popup-sub-menu:scrolled .popup-menu-item:rtl { padding-left: 0em; } diff --git a/js/ui/popupMenu.js b/js/ui/popupMenu.js index 5eba45f3a..5f8b999c2 100644 --- a/js/ui/popupMenu.js +++ b/js/ui/popupMenu.js @@ -1343,6 +1343,11 @@ const PopupSubMenu = new Lang.Class({ this.actor.vscrollbar_policy = needsScrollbar ? Gtk.PolicyType.AUTOMATIC : Gtk.PolicyType.NEVER; + if (needsScrollbar) + this.actor.add_style_pseudo_class('scrolled'); + else + this.actor.remove_style_pseudo_class('scrolled'); + // It looks funny if we animate with a scrollbar (at what point is // the scrollbar added?) so just skip that case if (animate && needsScrollbar)