screenshot: Use independent tooltips for the Screenshot/Screencast buttons

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6189

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2683>
This commit is contained in:
Automeris naranja 2023-03-06 19:44:43 -03:00 committed by Marge Bot
parent 9168e2fc63
commit 65ec7b3fa8

View File

@ -1226,6 +1226,12 @@ var ScreenshotUI = GObject.registerClass({
this._onShotButtonToggled.bind(this)); this._onShotButtonToggled.bind(this));
this._shotCastContainer.add_child(this._shotButton); this._shotCastContainer.add_child(this._shotButton);
this.add_child(new Tooltip(this._shotButton, {
text: _('Take Screenshot'),
style_class: 'screenshot-ui-tooltip',
visible: false,
}));
this._castButton = new St.Button({ this._castButton = new St.Button({
style_class: 'screenshot-ui-shot-cast-button', style_class: 'screenshot-ui-shot-cast-button',
icon_name: 'camera-web-symbolic', icon_name: 'camera-web-symbolic',
@ -1236,23 +1242,14 @@ var ScreenshotUI = GObject.registerClass({
this._onCastButtonToggled.bind(this)); this._onCastButtonToggled.bind(this));
this._shotCastContainer.add_child(this._castButton); this._shotCastContainer.add_child(this._castButton);
this._shotButton.bind_property('checked', this._castButton, 'checked', this.add_child(new Tooltip(this._castButton, {
GObject.BindingFlags.BIDIRECTIONAL | GObject.BindingFlags.INVERT_BOOLEAN); text: _('Record Screen'),
this._shotCastTooltip = new Tooltip(this._shotCastContainer, {
text: _('Screenshot / Screencast'),
style_class: 'screenshot-ui-tooltip', style_class: 'screenshot-ui-tooltip',
visible: false, visible: false,
}); }));
const shotCastCallback = () => {
if (this._shotButton.hover || this._castButton.hover) this._shotButton.bind_property('checked', this._castButton, 'checked',
this._shotCastTooltip.open(); GObject.BindingFlags.BIDIRECTIONAL | GObject.BindingFlags.INVERT_BOOLEAN);
else
this._shotCastTooltip.close();
};
this._shotButton.connect('notify::hover', shotCastCallback);
this._castButton.connect('notify::hover', shotCastCallback);
this.add_child(this._shotCastTooltip);
this._captureButton = new St.Button({ style_class: 'screenshot-ui-capture-button' }); this._captureButton = new St.Button({ style_class: 'screenshot-ui-capture-button' });
this._captureButton.set_child(new St.Widget({ this._captureButton.set_child(new St.Widget({