quickSettings: Rotate menu arrows

Static arrows representing menus are inconsistent with the rest of
the platform, where we rotate arrows to represent that the menu is
open. Make quick settings arrows do the same.
This commit is contained in:
Georges Basile Stavracas Neto 2022-08-22 18:46:20 -03:00
parent 235dd7be76
commit c1d73d8cae

View file

@ -115,6 +115,7 @@ var QuickMenuToggle = GObject.registerClass({
child: new St.Icon({
style_class: 'quick-toggle-arrow',
icon_name: 'go-next-symbolic',
pivot_point: new Graphene.Point({x: 0.5, y: 0.5}),
}),
style_class: 'quick-toggle-arrow-button',
x_expand: false,
@ -133,6 +134,16 @@ var QuickMenuToggle = GObject.registerClass({
if (this.menuEnabled)
this.menu.open();
});
this.menu.connect('open-state-changed', (popup, isOpen) => {
const ltr = this.text_direction !== Clutter.TextDirection.RTL;
const angle = ltr ? 90 : -90;
this._menuButton.child.ease({
rotationAngleZ: isOpen ? angle : 0,
delay: isOpen ? 0 : POPUP_ANIMATION_TIME / 2,
duration: POPUP_ANIMATION_TIME / 2,
});
});
}
});
@ -200,7 +211,10 @@ var QuickSlider = GObject.registerClass({
sliderBin.connect('event', (bin, event) => this.slider.event(event, false));
this._menuButton = new St.Button({
child: new St.Icon({icon_name: 'go-next-symbolic'}),
child: new St.Icon({
icon_name: 'go-next-symbolic',
pivot_point: new Graphene.Point({x: 0.5, y: 0.5}),
}),
style_class: 'icon-button',
can_focus: true,
x_expand: false,
@ -216,6 +230,16 @@ var QuickSlider = GObject.registerClass({
if (this.menuEnabled)
this.menu.open();
});
this.menu.connect('open-state-changed', (popup, isOpen) => {
const ltr = this.text_direction !== Clutter.TextDirection.RTL;
const angle = ltr ? 90 : -90;
this._menuButton.child.ease({
rotationAngleZ: isOpen ? angle : 0,
delay: isOpen ? 0 : POPUP_ANIMATION_TIME / 2,
duration: POPUP_ANIMATION_TIME / 2,
});
});
}
});