Florian Müllner
cc45bd63ab
cleanup: Use new gettext() convenience
...
gnome-shell now includes convenience helpers for gettext functions that
use an extension's text domain (as initialized by initTranslations()).
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/183 >
2021-08-14 23:15:56 +02:00
Florian Müllner
d0b9c9b54a
cleanup: Document functions
...
gjs now enforces this in its eslint configuration. Adding type
information generally is a good idea, so add appropriate comments
to public functions before picking up that configuration change.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/180 >
2021-08-13 04:48:22 +02:00
Florian Müllner
0d06cc685e
extensions: Pick up gettext domain from metadata
...
Since commit a6ee142f21 , the extension archives that are uploaded
to extensions.gnome.org only contain strings that are relevant for
the extension, not all translations from all extensions.
Unfortunately all extensions still share a common gettext domain,
so the extension with the last bind_textdomain() call wins and
leaves the others without translations.
We'll address this by using distinct domains when not installed
system-wide. That becomes easier if there is a canonical place
for the text domain, with the existing metadata key being the
natural choice.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/335
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/179 >
2021-08-11 18:42:43 +02:00
Florian Müllner
fdfa46099b
workspace-indicator: Improve preview styling
...
The current styling doesn't indicate the active workspace very well, and
makes it difficult to differentiate empty workspaces from workspaces with
maximized windows.
Tweak the styling to address those issues.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/283
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/166 >
2021-03-11 12:08:38 +00:00
Florian Müllner
f987e5f13d
workspace-indicator: Reindent stylesheet
...
For some reason the CSS here uses a different indentation than
gnome-shell or the other extensions, fix that.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/283
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/166 >
2021-03-11 12:08:38 +00:00
Florian Müllner
bb2b1204b4
workspace-indicator: Only show previews for up to six workspaces
...
On request of GNOME Classic users, we add GNOME2-like workspace previews
when using a horizontal workspace layout. The previews scale a lot worse
than the menu though, with the risk that they take up all the available
width in extreme cases.
Address this by also taking the number of workspaces into account, and
switch to the menu when we have more than six.
This is particularly important now that we switched to a horizontal
layout by default.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/165 >
2021-03-10 20:11:18 +01:00
Florian Müllner
c33be29f56
workspace-indicator: Add tooltips to workspace thumbnails
...
When showing previews instead of the menu, the workspace names from
our preferences don't appear anywhere. Some users care strongly about
those, so expose them as tooltip on hover.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/155 >
2021-01-20 23:58:13 +01:00
Florian Müllner
5df0fa145b
workspace-indicator: Use Gtk.Button.icon_name property
...
Image buttons are a very common pattern, so GTK4 added some
convenience API we can use to construct them.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/148 >
2021-01-14 14:40:55 +01:00
Florian Müllner
f0ff0e1400
workspace-indicator: Stop using header func for separators
...
GTK4 added built-in support for this common pattern, so use that
instead.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/148 >
2021-01-14 14:40:55 +01:00
Florian Müllner
22ea58a849
workspace-indicator: Port to GTK4
...
With this port, all extensions now use GTK4 for their preferences.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/148 >
2021-01-14 14:40:55 +01:00
Florian Müllner
50d3ee5703
workspace-indicator: Use overlap to determine preview visibility
...
In order to better reflect the actual workspace, show any preview
that is at least partially located on the monitor, not only those
that have the major part on that monitor.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/142 >
2020-12-02 19:27:44 +01:00
Florian Müllner
6949a5d075
workspace-indicator: Account for monitor offset in window previews
...
Windows' frame rects are in screen coordinates, while the workspace
thumbnails are based on the monitor work area. Unless we account
for the difference, previews end up mispositioned in multi-monitor
setups.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/142 >
2020-12-02 19:22:12 +01:00
Florian Müllner
f5128e13f2
workspace-indicator: Round calculated preview sizes
...
While not strictly necessary, there's no reason to differ from the
copy in the window-list extension ...
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/142 >
2020-12-02 19:17:36 +01:00
Florian Müllner
81be1d2e2f
workspace-indicator: Use custom layout manager for thumbnails
...
The current code positions window previews explicitly using a fixed
layout manager. For that it relies on a valid parent allocation,
which is error-prone and frequently results in warnings.
Address this by moving the positioning code into a custom layout
manager, and only update the visibility from the window preview.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/260
2020-10-21 03:09:40 +02:00
Florian Müllner
623bc6dbf3
workspace-indicator: Adjust to overview changes
...
Window DND in the overview is now based on the metaWindow,
not the window actor (misnamed as "real window").
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/133
2020-10-21 01:05:07 +00:00
Florian Müllner
8c53fd9590
workspace-indicator: Stop using obsolete StBin properties
...
Those properties were deprecated (and made no-ops) last cycle, and
have now been removed altogether.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/122
2020-05-28 02:46:06 +02:00
Florian Müllner
90d3c5c51d
workspace-indicator: Overhaul prefs widget
...
Inline toolbars are an outdated UI pattern, and both the toolbar widget
and the inline styling have been removed from GTK4. Making sure the
extension doesn't get in the way of a future GTK4 port is a good excuse
for modernizing the UI, so do just that :-)
Replace treeview and toolbar with an editable list as outline in the HIG:
https://developer.gnome.org/hig/stable/lists.html.en
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/120
2020-04-17 17:54:15 +02:00
Florian Müllner
95131dc252
workspace-indicator: Exclude DESKTOP windows from window previews
...
While nautilus removed its desktop support a while ago in favor of an
extension, it's still possible that some external X11 desktop icon app
is used. As DESKTOP windows cannot be moved between workspaces or stacked,
and aren't perceived as regular windows, it doesn't make sense to show
them as previews in the workspace switcher.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/93
2019-11-21 21:42:16 +00:00
Florian Müllner
30ad3d670f
extensions: Stop setting GTypeName
...
The type name generated by gjs now includes the filename, so we
don't have to set it ourselves to make sure it's unique.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/95
2019-11-21 22:25:43 +01:00
Florian Müllner
7c170e7e90
cleanup: Always use type-safe comparisons
...
The type coercion performed by the regular == and != operators can
have surprising results. It is therefore considered good practice
to use the type-safe === and !== variants instead.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/91
2019-08-21 15:13:44 +00:00
Florian Müllner
eb79f5b512
cleanup: Require "dangling" commas
...
Since ES5, trailing commas in arrays and object literals are valid.
We generally haven't used them so far, but they are actually a good
idea, as they make additions and removals in diffs much cleaner.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/91
2019-08-21 15:13:44 +00:00
Florian Müllner
eceff51ba1
cleanup: Use consistent brace style of blocks
...
Our coding style has always been to avoid braces when all blocks
are single-lines. Make sure we apply that style consistently.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/91
2019-08-21 15:13:44 +00:00
Florian Müllner
fdc3dda484
cleanup: Fix stray/missing spaces
...
Those are wrong according to our style guidelines, but the previous
eslint ruleset didn't catch them.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/91
2019-08-21 15:13:44 +00:00
Florian Müllner
5f96b3c11c
cleanup: Don't omit parens when constructing
...
While it is legal to omit parentheses when invoking a constructor
with no arguments, we generally avoid that in our coding style.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/91
2019-08-21 15:13:43 +00:00
Florian Müllner
91c9982d7f
workspace-indicator: Remove some inactive code
...
This code has been commented out since it was added, presumably due to
difficulty in avoiding a cycle of reloading rows on settings changes
and writing settings on row changes.
Considering that the setting changing while the preference dialog is
up is extremely unlikely, don't bother with making it work and just
remove the dead code.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/91
2019-08-21 15:13:43 +00:00
Florian Müllner
c6d2063f4d
workspace-indicator: Show previews in workspace switcher
...
Currently the new horizontal workspace switcher only shows a series of
buttons, with no indication of the workspaces' contents. Go full GNOME 2
and add tiny draggable preview rectangles that represent the windows
on a particular workspace.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/77
2019-07-19 13:48:21 +02:00
Florian Müllner
52f373fb70
workspace-indicator: Support horizontal workspace layout
...
Just like we did for the workspace indicator in the window-list, improve
the handling of horizontal workspace layouts by showing the switcher
in-place instead of delegating the functionality to a menu.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/71
2019-07-19 13:42:44 +02:00
Florian Müllner
283a1ec5c2
workspace-indicator: Minor cleanup
...
Pass the style class at construction time instead of setting it later.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/71
2019-07-19 13:24:50 +02:00
Florian Müllner
c516f05927
workspace-indicator: Refactor workspace signal handlers
...
We are about to support a separate representation if horizontal
workspaces are used. To prepare for that, rename the handlers to
something more generic and split out menu-specific bits into a
dedicated helper function.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/71
2019-07-19 13:24:50 +02:00
Florian Müllner
e836a9e5e0
workspace-indicator: Minor cleanup
...
Mutter has a dedicated method for getting the index of the active
workspace, use that instead of getting first the active workspace
and then its index.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/71
2019-07-19 13:24:50 +02:00
Florian Müllner
d1674c5f75
workspace-indicator: Update workspace names in-place
...
There's no good reason to rebuild the entire menu on workspace names
changes, we can simply update the labels in-place.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/71
2019-07-19 13:24:50 +02:00
Florian Müllner
9fa283877c
workspace-indicator: Make some properties private
...
There's no reason why they should be public.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/71
2019-07-19 13:24:50 +02:00
Florian Müllner
f1a154207f
workspace-indicator: Fix whitespace error
...
We only want a single space before and after operators, not at least
one. Unfortunately eslint only enforces the latter ...
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/71
2019-07-19 13:24:50 +02:00
Florian Müllner
2db4589dea
cleanup: Re-order imports
...
They should be grouped between external (GI/gjs) and shell and in
alphabetical order. Until commit bab4be1a ExtensionUtils was special
as it was required for some imports, but that's no longer the case
for most extensions.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/76
2019-06-28 21:51:38 +02:00
Florian Müllner
3d5687ae3c
workspace-indicator: Reindent to conform with new style
...
Instead of aligning arguments like we used to do, use a consistent
four-space indent as mandated by gjs' current style guide.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/66
2019-05-22 20:40:18 +02:00
Florian Müllner
d83d6e857a
style: Use single-quotes for translated strings
...
The coding style of using double quotes for translatable strings
and single quotes otherwise is unnecessarily complex and cannot
be enforced with an eslint rule.
Simply use single quotes consistently for all strings.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/57
2019-02-28 23:29:31 +01:00
Florian Müllner
db35d7ae7c
style: Change indentation style of object literals
...
Instead of keeping the first property on the same line as the opening
brace and aligning the properties, use a four-space indent. This brings
us closer to gjs' coding style, and as a bonus helps keeping lines in
the soft 80 character limit.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/57
2019-02-28 23:29:24 +01:00
Florian Müllner
0d41643866
cleanup: Use destructuring for imports from GI
...
This is *much* nicer than repetitive "imports.gi" lines ...
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/54
2019-02-16 00:49:44 +01:00
Florian Müllner
bab4be1a59
extensions: Drop Convenience library
...
Its methods are now provided by gnome-shell itself and can be used
as an easy drop-in replacement.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/44
2019-02-06 20:17:59 +01:00
Florian Müllner
3861ffae31
extensions: Mark exported symbols
...
eslint obviously doesn't know about gnome-shell's extension API, so
the various entry points trigger unused-variable errors. To fix,
explicitly mark those symbols as exported.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/50
2019-01-28 06:51:20 +01:00
Florian Müllner
7b363fd659
cleanup: Mark unused arguments as unused
...
This will stop eslint from warning about them, while keeping their
self-documenting benefit.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/50
2019-01-28 06:51:02 +01:00
Florian Müllner
b3f009017c
style: Use consistent style for object literal parameters
...
Spotted by eslint.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/49
2019-01-28 06:37:28 +01:00
Florian Müllner
8a2b9abc09
style: Stop using string concatenation
...
String concatenation is considered bad style after ES6 added
template strings. The latter is the replacement we generally
want, except where the aforementioned xgettext bug would trip
over the backtick/slash combination.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/49
2019-01-28 06:37:28 +01:00
Florian Müllner
1be7061da0
style: Fix stray/missing spaces
...
Spotted by eslint.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/49
2019-01-28 06:37:28 +01:00
Florian Müllner
aaeff6d12b
style: Use camelCase for variable names
...
Spotted by eslint.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/49
2019-01-28 06:37:28 +01:00
Florian Müllner
912ba1e651
cleanup: Remove unhelpful unused init() argument
...
Virtually all extensions use the getCurrentExtension() helper instead
of the obscure init() argument, and we are no exception.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/49
2019-01-28 06:37:28 +01:00
Florian Müllner
d7414025a5
cleanup: Remove unused variables
...
Spotted by eslint.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/49
2019-01-28 06:37:28 +01:00
Florian Müllner
a317d75f70
cleanups: Clean up unused imports
...
Spotted by eslint.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/49
2019-01-28 06:37:28 +01:00
Florian Müllner
7eae32eb76
workspace-indicator: Don't override ClutterActor.destroy()
...
Now that PanelMenu.Button was made an StWidget subclass, the destroy()
method actually maps to the ClutterActor method, and overriding it
results in warnings when the extension is disabled. So instead, use
the existing ::destroy handler.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues/113
2018-11-12 23:42:06 +00:00
Florian Müllner
34c20e6176
workspace-indicator: Stop using compatibility actor property
...
PanelMenu.Button sets up a `this.actor = this` property for compatibility,
but let's reflect the actual new object hierarchy.
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues/113
2018-11-12 23:42:06 +00:00