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;
|
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() {
|
_refreshButtonLayout() {
|
||||||
const buttonLayout = Meta.prefs_get_button_layout();
|
const buttonLayout = Meta.prefs_get_button_layout();
|
||||||
|
|
||||||
@ -1517,10 +1527,7 @@ export const ScreenshotUI = GObject.registerClass({
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
this._windowButton.reactive =
|
this._syncWindowButtonSensitivity();
|
||||||
Main.sessionMode.hasWindows &&
|
|
||||||
windows.length > 0 &&
|
|
||||||
!this._castButton.checked;
|
|
||||||
if (!this._windowButton.reactive)
|
if (!this._windowButton.reactive)
|
||||||
this._selectionButton.checked = true;
|
this._selectionButton.checked = true;
|
||||||
|
|
||||||
@ -1763,9 +1770,7 @@ export const ScreenshotUI = GObject.registerClass({
|
|||||||
|
|
||||||
this._captureButton.remove_style_pseudo_class('cast');
|
this._captureButton.remove_style_pseudo_class('cast');
|
||||||
|
|
||||||
const windows =
|
this._syncWindowButtonSensitivity();
|
||||||
this._windowSelectors.flatMap(selector => selector.windows());
|
|
||||||
this._windowButton.reactive = windows.length > 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user