[gnome-shell] panel: Fix corner highlight



commit 0518d69b72ecec0153a6a4fcc6cc09ce7f1708b5
Author: Florian MÃllner <fmuellner gnome org>
Date:   Sat Sep 10 03:41:39 2011 +0200

    panel: Fix corner highlight
    
    The style of the top bar's corners is bound to the style of the
    corresponding button; we used to hardcode this association, but
    as the login mode does have a different layout, the button is now
    determined programmatically.
    Unfortunately, some containers take the text direction into account
    when ordering their children, while some don't, so the current
    code returned the wrong button in RTL locales.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=658983

 js/ui/panel.js |   16 +++++++++++++---
 1 files changed, 13 insertions(+), 3 deletions(-)
---
diff --git a/js/ui/panel.js b/js/ui/panel.js
index 57c5df4..b64a1b2 100644
--- a/js/ui/panel.js
+++ b/js/ui/panel.js
@@ -764,11 +764,21 @@ PanelCorner.prototype = {
     },
 
     _boxStyleChanged: function() {
-        let button;
+        let side = this._side;
+
+        let rtlAwareContainer = this._box instanceof St.BoxLayout;
+        if (rtlAwareContainer &&
+            this._box.get_direction() == St.TextDirection.RTL) {
+            if (this._side == St.Side.LEFT)
+                side = St.Side.RIGHT;
+            else if (this._side == St.Side.RIGHT)
+                side = St.Side.LEFT;
+        }
 
-        if (this._side == St.Side.LEFT)
+        let button;
+        if (side == St.Side.LEFT)
             button = this._findLeftmostButton(this._box);
-        else if (this._side == St.Side.RIGHT)
+        else if (side == St.Side.RIGHT)
             button = this._findRightmostButton(this._box);
 
         if (button) {



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]