screenshot: Connect shot/cast toggle with bind_property
This way we don't need to uncheck the other button manually, and it also allows switching the mode by setting the other button's checked to false, and not just by setting the target mode's button to true. An example clean-up can be seen in the "V" key handler. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2107>
This commit is contained in:
parent
b0ebbb00b8
commit
6d3dd232ad
@ -1212,6 +1212,9 @@ var ScreenshotUI = GObject.registerClass({
|
||||
this._onCastButtonToggled.bind(this));
|
||||
this._shotCastContainer.add_child(this._castButton);
|
||||
|
||||
this._shotButton.bind_property('checked', this._castButton, 'checked',
|
||||
GObject.BindingFlags.BIDIRECTIONAL | GObject.BindingFlags.INVERT_BOOLEAN);
|
||||
|
||||
this._shotCastTooltip = new Tooltip(this._shotCastContainer, {
|
||||
text: _('Screenshot / Screencast'),
|
||||
style_class: 'screenshot-ui-tooltip',
|
||||
@ -1638,7 +1641,6 @@ var ScreenshotUI = GObject.registerClass({
|
||||
_onShotButtonToggled() {
|
||||
if (this._shotButton.checked) {
|
||||
this._shotButton.toggle_mode = false;
|
||||
this._castButton.checked = false;
|
||||
|
||||
this._stageScreenshotContainer.show();
|
||||
this._stageScreenshotContainer.remove_all_transitions();
|
||||
@ -1655,7 +1657,6 @@ var ScreenshotUI = GObject.registerClass({
|
||||
_onCastButtonToggled() {
|
||||
if (this._castButton.checked) {
|
||||
this._castButton.toggle_mode = false;
|
||||
this._shotButton.checked = false;
|
||||
|
||||
this._captureButton.add_style_pseudo_class('cast');
|
||||
|
||||
@ -1966,11 +1967,7 @@ var ScreenshotUI = GObject.registerClass({
|
||||
}
|
||||
|
||||
if (symbol === Clutter.KEY_v || symbol === Clutter.KEY_V) {
|
||||
if (this._shotButton.checked)
|
||||
this._castButton.checked = true;
|
||||
else
|
||||
this._shotButton.checked = true;
|
||||
|
||||
this._castButton.checked = !this._castButton.checked;
|
||||
return Clutter.EVENT_STOP;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user