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
This commit is contained in:
Florian Müllner 2011-09-10 03:41:39 +02:00
parent c9ba94d4d8
commit 0518d69b72

View File

@ -764,11 +764,21 @@ PanelCorner.prototype = {
},
_boxStyleChanged: function() {
let button;
let side = this._side;
if (this._side == St.Side.LEFT)
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;
}
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) {