Florian Müllner e75a2ca146 extensions-app: Only change state if necessary
The `state-set` signal is emitted to change the underlying state,
which can have two reasons:

 1. the user toggled the switch
 2. the extension's `enabled` state changed externally

In the second case, calling enable/disable is pointless at best,
and can mess up the expected state by permanently disabling an
extension that was disabled because of the global kill switch.

Address this by only calling enable/disable if the new state does
not already match the current value of the `enabled` property.

Close https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7305

Fixes: fec523f83f ("extensions-app: Use new 'enabled' property")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3090>
2024-01-07 10:02:23 +00:00
..
2020-03-29 17:49:08 +00:00

logo GNOME Extensions

GNOME Extensions is a small app for managing GNOME Shell extensions. It is usually built as part of gnome-shell, but can be used as a stand-alone project as well.

Bugs should be reported to the GNOME bug tracking system.

Installation

If Extensions is not already installed on your GNOME system, we recommend getting it from flathub.

Download on Flathub

Building

Before the project can be built stand-alone, the po directory has to be populated with translations (from gnome-shell).

To do that, simply run the included script:

$ ./generate-translations.sh

You can then build and install the project:

$ meson setup --prefix=/usr _build
$ meson compile -C _build
$ meson install -C _build
$ /usr/bin/gnome-extensions-app

For development you can also install the project to a temporary directory (e.g. replace /usr with /tmp/install above).

License

gnome-extensions-app is distributed under the terms of the GNU General Public License, version 2 or later. See the COPYING file for details.