Florian Müllner
a911447375
js: Port to ESM
...
The shell pulled the trigger and switched to ESM for all its
imports, follow suit.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/269 >
2023-08-06 15:59:35 +02:00
Florian Müllner
2d3307c657
window-list: Use InjectionManager instead of custom classes
...
Once the shell is ported to ESM, it will no longer be possible
to replace entire classes (even when imported). Prepare for that
by overriding methods of the regular WorkspaceBackground class
instead.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/268 >
2023-08-06 13:45:56 +02:00
Florian Müllner
d59bc0b7f0
window-list: Do not inject WindowPicker into Main
...
This will become impossible once Main is converted to ESM. Instead,
use the Extension class itself to hold the window picker.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/268 >
2023-08-06 13:45:56 +02:00
Florian Müllner
cb8c2eb27f
windowsNavigator: Use InjectionManager instead of custom classes
...
Once the shell is ported to ESM, it will no longer be possible
to replace entire classes (even when exported). Prepare for that
by overriding methods of the regular classes, instead of creating
custom subclasses.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/268 >
2023-08-06 13:45:56 +02:00
Florian Müllner
0544729bba
launch-new-instance: Use InjectionManager
...
The extension uses a straight-forward override that doesn't
benefit a lot from the new InjectionManager class, but let's
use the provided convenience API anyway.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/268 >
2023-08-05 21:32:27 +02:00
Florian Müllner
017c410a6a
native-window-placement: Use InjectionManager
...
The new convenience class was modelled after the code in the
extension, so it's a drop-in replacement.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/268 >
2023-08-05 18:53:41 +02:00
Florian Müllner
f2c73329be
extensions: Use new convenience classes
...
Convenience APIs for extensions are now provided as Extension/Prefs
base classes.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/268 >
2023-08-05 18:53:41 +02:00
Florian Müllner
e75a1a15ac
extensions: Import ExtensionUtils as module
...
ExtensionUtils has been converted to ESM and split into two modules,
for extensions and prefs respectively.
Adjust to those changes.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/266 >
2023-07-15 14:13:25 +02:00
Florian Müllner
1155170c7c
window-list: Stop using getCurrentExtension()
...
The method is no longer exported. There will be a nicer alternative
soon, in the meantime we can just keep track of our main Extension
object ourselves.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/266 >
2023-07-15 14:10:27 +02:00
Florian Müllner
6d8f54a20b
js: Really use connectObject()
...
I forgot in two places to change the actual connect() function
to connectObject() 🤦 ️
Fixes commit 3bfaf6f88a .
2023-07-10 07:22:25 +02:00
Florian Müllner
93a2e7bdba
extensions: Stop using global.log()
...
It has been deprecated since 3.6(!) in favor of the actually
global log().
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/264 >
2023-07-10 06:51:45 +02:00
Florian Müllner
3bfaf6f88a
js: Use connectObject()
...
gnome-shell added (dis)connectObject() methods to partially automate
signal handling. It doesn't only save a significant amount of code,
but also makes it harder to miss cleaning up on destroy.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/263 >
2023-07-09 18:45:07 +02:00
Florian Müllner
37baccd9fc
window-list: Remove some dead code
...
The code that connected the signal was removed in 9fa522c29a .
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/263 >
2023-07-09 18:33:52 +02:00
Florian Müllner
cf007dd472
extensions: Turn extensions into modules
...
As gnome-shell is moving to ESM, it will now load extensions as
standard modules instead of using legacy imports. The change boils
down to exporting the Extension class as default, but we can also
start using standard imports for introspected modules now, so do
that at the same time.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/259 >
2023-07-07 00:35:08 +02:00
Florian Müllner
701b14ecbf
extensions: Use extension class for all extensions
...
This will be the only supported entry point when extension loading
switches to dynamic imports, so prepare for that by wrapping the
remaining standalone enable()/disable() methods in Extension classes.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/259 >
2023-07-07 00:12:41 +02:00
Florian Müllner
b11f0f16f4
light-style: Always save scheme preference on enable()
...
Disable() should restore the scheme preference that was used when
the extension was enabled, not when it was first initialized.
Even if it's unlikely to be relevant in practice, let's make sure
we save the correct state.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/257 >
2023-07-02 23:24:33 +02:00
Florian Müllner
b7895ad956
extensions: Add new light-style extension
...
Now that gnome-shell supports a light style, people may want to
use it without forcing all apps to be light.
Add a small extension that switches the default to light, so the
shell follows the regular "dark style" preference.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/256 >
2023-06-23 14:36:09 +00:00
Arik W
22b9f888fb
window-list: Add tooltip for long window titles
...
Adds a tooltip feature to the window buttons.
If a button’s label is too long to fit, a tooltip will show the complete content when the user hovers over the button.
Fixes https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/170
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/251 >
2023-06-18 19:08:53 +00:00
Florian Müllner
61a260bc94
places-menu: Account for app menu removal
...
The app menu has been removed from the top bar, so we can no longer
base our own indicator position on it.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/255 >
2023-05-27 00:44:26 +02:00
Florian Müllner
904ead1fb1
window-list: Replace classic- with light style
...
Now that classic styling is based on color scheme instead of
a dedicated "classic" stylesheet, we should do the same for
extension styling, with the bonus that it also works with the
regular appearance setting outside the classic session.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/254 >
2023-05-26 20:26:43 +02:00
Alexander Weichart
ca1c4b0f9e
window-list: Improve default stylesheet
...
Adjust colors to be more consistent with the current shell look.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/253 >
2023-05-26 18:25:35 +02:00
robxnano
7e8ba59304
Center-align all menus
...
Make popup menus center-aligned on their parent buttons, to
match the default GNOME Shell panel menus. Affects:
- Places menu
- Drive menu
- Workspace indicator
- Window menu workspace indicator
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/246 >
2023-01-13 16:12:03 +00:00
Florian Müllner
cc72a34973
window-list: Explicitly dispose settings on destroy
...
This will not only disconnect the signal handler, but also remove
any bindings. This works around a crash that happens if a setting
that triggers the binding changes at the same time as a setting
that rebuilds the window list; in that case, the binding handler
runs after gjs has dropped its wrapper object, but before the
binding is removed automaticalled when the object is finalized.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/416
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/243 >
2022-09-30 19:55:44 +02:00
Florian Müllner
9f88e98d1b
extensions: Stop monkey-patching signal methods
...
gnome-shell added an EventEmitter class that can be used as base
for any non-GObject class that needs to emit signals.
Use that instead of the old monkey-patching.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/240 >
2022-08-20 19:03:36 +02:00
Florian Müllner
4b7055d0da
places-menu: Mark PlacesManager as exported
...
For some reason eslint failed to complain about this.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/240 >
2022-08-20 19:03:36 +02:00
Florian Müllner
563d7770d3
lint: Sync with gnome-shell
...
gnome-shell started transitioning to gjs' object spacing rule,
i.e. `{foo: 42}` instead of `{ foo: 42 }`.
We have a much smaller code base than the shell and aren't using
a secondary "allowed-but-deprecated" configuration that allows a
gradual transition, so just pull the switch and update to the new
style.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/240 >
2022-08-20 19:00:32 +02:00
Florian Müllner
f637e81c8c
native-window-placement: Minor style fix
...
JSDoc prefer "object" over "Object", so update the doc comment
accordingly.
2022-07-10 14:20:25 +02:00
Florian Müllner
4667b4704d
window-list: Open menu on long press
...
Right-click isn't available on touch, so implement long-press as
an alternative.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/146
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/233 >
2022-06-20 14:45:58 +02:00
Florian Müllner
fe60614b41
window-list: Fix primary button action on touch
...
If a click event was triggered via touch rather than a pointer
device, the button parameter is 0 rather than a mouse button
number.
Account for that to make sure that touch events are not misinterpreted
as right clicks.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/146
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/233 >
2022-06-20 14:45:58 +02:00
Florian Müllner
1e833f542f
screenshot-window-sizer: Delay size popup
...
We use the actual frame size for the popup rather than the target
size. That means (on wayland), we have to wait for the size to
actually change.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/232 >
2022-06-09 19:20:44 +02:00
Florian Müllner
faabfa11c2
screenshot-window-sizer: Remove superfluous check
...
We already filter out sizes that don't fit the screen when
building the scaledSizes array, no need to check again.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/232 >
2022-06-09 19:06:24 +02:00
Jason Lynch
412762ae9d
window-list: Set visibility based on the target monitor.
...
Currently, the visibility of the window list on a given monitor is set
according to the fullscreen status of the primary monitor. When a
fullscreen application is on a secondary monitor (but not on the primary
monitor), entering and exiting the overview will lead to the window list
incorrectly being visible on the monitor with the fullscreen
application.
Instead, determine the visibility based on the fullscreen status of the
monitor being evaluated.
Fixes https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/400
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/230 >
2022-05-19 18:31:33 -07:00
Florian Müllner
6e4f4126b6
native-window-placement: Adjust to 42 changes
...
gnome-shell's new screenshot UI reuses the overview's window
picker layout, but its window previews don't give access to
the underlying MetaWindow.
Adjust to that by using the boundingBox property instead, which
is all we really need from the window anyway.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/399
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/229 >
2022-05-19 19:08:59 +02:00
Florian Müllner
a51145f9db
window-list: Fix cleaning up signal on removal
...
The map uses windows as key, so trying to remove the handler ID
will leave stray windows/signals.
Spotted by Ron Yorston.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/225 >
2022-03-29 17:06:40 +02:00
Florian Müllner
72a9696249
build: Remove unused stylesheets
...
The only reason for installing empty stylesheets is minimizing
build system differences between extensions. That's not a very
good reason and we don't do this for other optional files like
schemas.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/223 >
2022-03-24 00:53:13 +01:00
Florian Müllner
3c5a56b440
auto-move: Bind list to model
...
Using a model gives us a clear separation between data and representation,
as well as between regular rows and the "new item" row at the end.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/218 >
2022-02-18 13:09:35 +01:00
Florian Müllner
725cf83551
auto-move-windows: Change 'update' action to 'rename'
...
Limiting the action to the row that changed instead of the list as
a whole makes it easier to only update the changed value and not
recreate the entire list.
This doesn't make a difference right now, because we carefully sync
the list to reuse existing rows, but we are about to back the list
with a GListModel instead of updating it manually.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/218 >
2022-02-18 13:08:09 +01:00
Florian Müllner
f91275ffd2
workspace-indicator: Bind list to model
...
Using a model gives us a clear separation between data and representation,
as well as between regular rows and the "new item" row at the end.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/218 >
2022-02-18 13:02:17 +01:00
Florian Müllner
f0e46f4b12
workspace-indicator: Change 'update' action to 'rename'
...
Limiting the action to the row that changed instead of the list as
a whole makes it easier to only update the changed value and not
recreate the entire list.
This doesn't make a difference right now, because we carefully sync
the list to reuse existing rows, but we are about to back the list
with a GListModel instead of updating it manually.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/218 >
2022-02-18 12:55:57 +01:00
Florian Müllner
57f7f21ecb
workspace-indicator: Bind name to action target
...
Since we now have an override for bind_properties_full(), we can
use that instead of an explicit notify handler.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/218 >
2022-02-18 12:42:07 +01:00
Florian Müllner
9f673f27ef
cleanup: Use static class blocks for gtype registration
...
gjs enabled support for static class blocks, which gives us a
less error-prone and more readable alternative to _classInit(),
provided we make sure to call registerClass() first.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/215 >
2022-02-18 03:34:06 +00:00
Florian Müllner
08db193b31
cleanup: Use regular constructors in GObject subclasses
...
As a side-effect of supporting class fields, regular constructors
now work in GObject subclasses. Using _init() still works and
there's no functional difference, but it's simply much nicer
to use the same syntax for all classes.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/215 >
2022-02-18 03:34:06 +00:00
Florian Müllner
0be8b10995
cleanup: Simplify action handling
...
GTK4 has dedicated API for widget-specific actions, make use of that
instead of explicitly managing an action group.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/215 >
2022-02-18 03:34:06 +00:00
Florian Müllner
f7b5836c75
auto-move-windows: Use custom spin button in prefs
...
Gtk.SpinButton doesn't look great in lists, so replace it with a
small custom widget based on current mockups from the design team.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/213 >
2022-02-12 02:05:50 +00:00
Florian Müllner
ffb2b27477
auto-move-windows: Use libadwaita's row widgets
...
We get to remove a bunch of boring code, and get something better
looking and more standardized in return.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/213 >
2022-02-12 02:05:50 +00:00
Florian Müllner
dd3c524c49
prefs: Replace 'content' list style
...
It's deprecated in favor of 'boxed-list'.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/213 >
2022-02-12 02:05:50 +00:00
Florian Müllner
b92973df00
cleanup: Simplify promisify() calls
...
If the finish function isn't specified, promisify will now try
to use the async name without '_async'/'_begin' suffix (if any)
and '_finish' appended.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/214 >
2022-02-11 16:22:38 +01:00
Florian Müllner
0b7e8f9720
user-theme: Stop using Gio._LocalFilePrototype
...
Now that promisify() works on interfaces, we don't need this
cludge anymore.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/214 >
2022-02-11 16:22:38 +01:00
Florian Müllner
f6342d3b52
cleanup: Replace Promise wrappers
...
gjs now supports overriding interface methods, which means that
promisify started to work on interfaces.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/214 >
2022-02-11 16:22:38 +01:00
Florian Müllner
013b3fb73c
apps-menu: Adapt to Clutter.Grab changes
...
Device grabs are gone, switch to the new API.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/212 >
2022-02-10 00:28:04 +01:00