screenshot: Do not wrongly enable window button
The window button is disabled when - there are no windows - we are in screen-recording mode - the session mode doesn't allow windows However the last condition is only taken into account when opening the dialog, but not when switching from recording- to screenshot mode. Address this by updating the button's sensitivity in a separate function, so the different conditions are considered consistently. Closes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6990 Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2944>
This commit is contained in:
parent
8e30158c46
commit
521525948e
@ -1401,6 +1401,16 @@ export const ScreenshotUI = GObject.registerClass({
|
||||
this._castButton.reactive = Main.sessionMode.allowScreencast;
|
||||
}
|
||||
|
||||
_syncWindowButtonSensitivity() {
|
||||
const windows =
|
||||
this._windowSelectors.flatMap(selector => selector.windows());
|
||||
|
||||
this._windowButton.reactive =
|
||||
Main.sessionMode.hasWindows &&
|
||||
windows.length > 0 &&
|
||||
!this._castButton.checked;
|
||||
}
|
||||
|
||||
_refreshButtonLayout() {
|
||||
const buttonLayout = Meta.prefs_get_button_layout();
|
||||
|
||||
@ -1517,10 +1527,7 @@ export const ScreenshotUI = GObject.registerClass({
|
||||
});
|
||||
}
|
||||
|
||||
this._windowButton.reactive =
|
||||
Main.sessionMode.hasWindows &&
|
||||
windows.length > 0 &&
|
||||
!this._castButton.checked;
|
||||
this._syncWindowButtonSensitivity();
|
||||
if (!this._windowButton.reactive)
|
||||
this._selectionButton.checked = true;
|
||||
|
||||
@ -1763,9 +1770,7 @@ export const ScreenshotUI = GObject.registerClass({
|
||||
|
||||
this._captureButton.remove_style_pseudo_class('cast');
|
||||
|
||||
const windows =
|
||||
this._windowSelectors.flatMap(selector => selector.windows());
|
||||
this._windowButton.reactive = windows.length > 0;
|
||||
this._syncWindowButtonSensitivity();
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user