Florian Müllner
253ddb8642
extensions: Remove modelines
...
We already include an .editorconfig that is supported by many
editors, including emacs, so no need to repeat an emacs-specific
modeline in every source file.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/353 >
2024-10-20 22:23:28 +00:00
Florian Müllner
46a4fa0976
cleanup: Use null for nick/blurb in ParamSpecs
...
As they are only used by gstreamer for gst-inspect & other tools.
Projects like mutter and gtk have already completely dropped them,
so follow their lead.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/347 >
2024-10-17 22:52:17 +02:00
Florian Müllner
51ce4981c8
window-list: Add workspaces page to prefs
...
This brings back the workspace-previews setting, and adds the
ability to change the workspace names.
Given that those names are used as tooltips or preview titles,
it makes sense to allow editing them from the extension prefs
rather than relying on external tools (like dconf-editor).
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/344 >
2024-10-16 14:36:32 +02:00
Florian Müllner
63ea38a16d
window-list: Remove workspace-previews setting from prefs
...
We are about to include the workspace prefs page from the
workspace-indicator extension, which already includes
the setting.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/344 >
2024-10-16 14:36:32 +02:00
Florian Müllner
3bc06bb78f
window-list: Set title and icon on prefs page
...
Like the workspace prefs page, the existing window list prefs
should set title and icon for the view switcher.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/344 >
2024-10-16 14:36:32 +02:00
Florian Müllner
fa3f9bcaee
window-list: Save and restore positions as runtime state
...
While it doesn't make sense for window list positions to be truly
persistent like dash items, some persistence is desirable.
Otherwise any manually set position is lost when the extension
is disabled, for example when locking the screen.
To address this, serialize the positions as runtime state on drop,
and restore them when populating the list.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/338 >
2024-10-16 12:19:52 +00:00
Florian Müllner
3f660ee973
window-list: Add id property to buttons
...
A string ID that uniquely identifies a button will allow to
serialize/deserialize the positions in the next commit.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/338 >
2024-10-16 12:19:52 +00:00
Florian Müllner
f87a25e913
window-list: Handle DND events near the drop target
...
Even with the previous change, the dragged actor has the tendency
of obscuring the possible drop target. To alleviate this, handle
DND events near drop targets as if they occurred on the target.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/338 >
2024-10-16 12:19:52 +00:00
Florian Müllner
228811b873
window-list: Shrink drag-actor size during drags
...
Like the previous commit, this helps with putting the focus on
the target location instead of the dragged item.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/338 >
2024-10-16 12:19:52 +00:00
Florian Müllner
9b34ac1eea
window-list: Fade out drag source during drag
...
During a drag operation, the focus is on the where to drop the dragged
item, not to identify it or its origin.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/338 >
2024-10-16 12:19:52 +00:00
Jakub Steiner
a725361fc9
window-list: Indicate drop target more prominently
...
The drop target is the main focus of the drag operation, so make
its styling more prominent.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/338 >
2024-10-16 12:19:52 +00:00
Florian Müllner
3461a0523c
window-list: Allow rearranging window buttons
...
We currently sort buttons by the stable sequence to get a persistent
and predictable order. However some users want to customize that
order, and rearrange the buttons as they see fit.
Support that use case by implementing drag-and-drop behavior based
on the overview's dash.
Closes https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues/4
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/338 >
2024-10-16 12:19:52 +00:00
Florian Müllner
911387bc49
window-list: Rename XDND related methods and props
...
The window list buttons themselves will become draggable, so
include "xdnd" in the existing drag handling to disambiguate
it.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/338 >
2024-10-16 12:19:52 +00:00
Florian Müllner
93a75dccd7
window-list: Split out _createTitleActor() hook
...
This will allow creating a suitable drag actor that matches the
current title. In particular this allows for a drag actor that
isn't based on `ClutterClone`, and therefore doesn't inherit
focus/active/minimize/etc. styles that don't make sense outside
the actual window list.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/338 >
2024-10-16 12:19:52 +00:00
Florian Müllner
763d66b827
window-list: Add TitleWidget:abstract-label property
...
When true, the real label is replaced by a more abstract
representation. When used as drag actor, the focus is not
on identifying the window/app, but about picking a drop
location, and the reduced style helps with that.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/338 >
2024-10-16 12:19:52 +00:00
Florian Müllner
3c325c1562
window-list: Split out common TitleWidget class
...
Both app- and window title use the same structure, so add a shared
base class.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/338 >
2024-10-16 12:19:52 +00:00
Florian Müllner
dba3de2a8e
window-list: Split out some common code
...
Adding an app button and adding a window button involves some
shared steps, move those to a shared `_addButton()` method.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/338 >
2024-10-16 12:19:52 +00:00
Florian Müllner
f1671bc206
window-list: Remove outdated style
...
A long time ago, the window list used to embed the bottom message
tray, which caused notifications to inherit the window-list's
font style.
Since that's no longer the case, we have no business in messing
with notification styling, so stop doing that.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/338 >
2024-10-16 12:19:52 +00:00
Florian Müllner
548d7659e1
window-list: Switch to Adw.SwitchRow
...
libadwaita fixed the actionable implementation of Adw.SwitchRow,
so can use the convenience widget instead of composing our own.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/341 >
2024-10-07 19:17:54 +00:00
Florian Müllner
0162644041
window-list: Remove superfluous bindings
...
The setting is already bound to the switch via the corresponding action,
no need to also set up a binding.
In fact, the second binding is actively harmful, as it keeps the
connection alive until dispose, so the setting is reset on
garbage collection.
Closes https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/511
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/341 >
2024-10-07 19:17:54 +00:00
Florian Müllner
062a3d21ab
window-list: Add missing action
...
Commit 24ba03fe9 added a new setting, but forgot to create the
corresponding action.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/341 >
2024-10-07 19:17:54 +00:00
Florian Müllner
a5a92026ac
window-list: Fix active state
...
Commit c72b8b21 fixed the styling of the active window's button,
but missed that the `active` property uses the style information
as well.
Adjust it to use the correct actor when checking for the style class.
Closes https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/529
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/342 >
2024-10-07 18:51:32 +00:00
Florian Müllner
28fd210f28
window-list: Fix minimized styling
...
Commit 039c66e7b7 wrapped the button in a container to
animate transitions, but didn't adjust the `.minimized`
styling to still apply to the button (where it is
expected) rather than the wrapper.
Fix this just like commit c72b8b21 did for the
`.focused` styling.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/342 >
2024-10-07 18:51:32 +00:00
Florian Müllner
9d7d52c1de
window-list: Simplify app button
...
Depending on the number of windows, the button either shows the
title of the lone window, or the app title for multiple windows.
While we always recreate the single-window title, we only create
the app title once and hide it as necessary. Avoiding re-creating
a simple actor 50% of mode transitions isn't worth the additional
complexity, so just handle both single- and multi-window titles
the same way.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/337 >
2024-09-25 16:44:48 +02:00
Florian Müllner
3830985fa9
window-list: Split out AppTitle class
...
Even though it's just a box with icon and label, it's cleaner to
have a dedicated class.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/337 >
2024-09-25 16:44:48 +02:00
Florian Müllner
d43abe0869
window-list: Don't recreate icons on theme changes
...
All icons use `StIcon`, which already updates itself correctly
on icon theme changes.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/337 >
2024-09-25 03:45:39 +02:00
Florian Müllner
860c56f83e
window-list: Small stylesheet cleanup
...
The light stylesheet duplicates some declarations, and the
last occurrence matches what we already inherit from the
dark stylesheet.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/337 >
2024-09-25 03:39:28 +02:00
Jakub Steiner
e28215f38f
window-list: Update styling
...
- Contemporary look. Fewer borders, thinner outlines for workspace indicators
- Lacks the designed unfocused window separators.
- Relies on https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/328
Fixes https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/421
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/330 >
2024-07-31 14:37:31 +00:00
Florian Müllner
c72b8b2122
window-list: Fix .focused styling
...
Commit 039c66e7b7 wrapped the button in a container to
animate transitions, but didn't adjust the `.focused`
styling to still apply to the button (where it is
expected) rather than the wrapper.
Fix that.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/328 >
2024-07-13 00:11:19 +02:00
Florian Müllner
0554a8e97d
window-list: Replace custom tooltip implementation
...
DashItemContainer already has support for showing a tooltip-like
label, so now that we use that for animating items, we can use
it for tooltips as well.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/325 >
2024-06-29 13:43:55 +02:00
Florian Müllner
039c66e7b7
window-list: Animate buttons in and out
...
Buttons are currently added and removed from the list without
any transitions, which gives the list a "jumpy" feel. Instead,
do what we do elsewhere and smoothly animate additions and
removals by re-using the dash's ItemContainer class.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/325 >
2024-06-29 13:43:55 +02:00
Florian Müllner
7eb00e350e
window-list: Don't hide window button while unmanaging
...
This will allow to animate the transition.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/325 >
2024-06-29 13:43:55 +02:00
Florian Müllner
f76f9e8220
window-list: Don't use homogeneous layout
...
We want all buttons in the window list to have the same size,
but that's already achieved via max/natural-width in the CSS.
Not enforcing the equal size via the layout manager will allow
buttons to temporarily have a different size when we start
animating additions and removals.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/325 >
2024-06-29 13:13:12 +02:00
Florian Müllner
da90d365ec
window-list: Use getter methods for events
...
The underlying structs were made opaque a while ago, so direct
access to the struct fields is no longer possible.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/320 >
2024-04-26 15:22:16 +02:00
Florian Müllner
24ba03fe96
window-list: Expose workspace preview option
...
Now that we have the option, the window-list should expose it
in its preference window like the workspace-indicator.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/316 >
2024-04-24 14:23:22 +00:00
Florian Müllner
69d8d1a335
workspace-indicator: Make previews configurable
...
Now that previews scroll when there are too many workspaces,
there is no longer a reason for the 6-workspace limit.
However some users do prefer the menu, so rather than drop it,
turn it into a proper preference.
Closes
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/336
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/316 >
2024-04-24 14:23:22 +00:00
Florian Müllner
0c42f162d3
window-list: Use actual copy of workspace-indicator
...
We are now at a point where the code from the workspace-indicator
extension is usable from the window-list.
However instead of updating the copy, go one step further and
remove it altogether, and copy the required files at build time.
This ensures that future changes are picked up by both extensions
without duplicating any work.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/307 >
2024-04-24 14:19:51 +00:00
Florian Müllner
9c97f01bc2
window-list: Handle changes to workspace menu
...
For now the menu is always set at construction time, however this
will change in the future. Prepare for that by handling the
`menu-set` signal, similar to the top bar.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/307 >
2024-04-24 14:19:51 +00:00
Florian Müllner
8693a8a74c
window-list: Externally adjust workspace menu
...
In order to use a PanelMenu.Button in the bottom bar, we have
to tweak its menu a bit.
We currently handle this inside the indicator, but that means the
code diverges from the original code in the workspace-indicator
extension.
Avoid this by using a small subclass that handles the adjustments.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/307 >
2024-04-24 14:19:51 +00:00
Florian Müllner
47c12c6279
window-list: Override base style class
...
Apply the changes from the last commit to the workspace-indicator
copy, and override the base style class from the extension.
This will eventually allow us to share the exact same code between
the two extensions, but still use individual styling if necessary.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/307 >
2024-04-24 14:19:51 +00:00
Florian Müllner
d3debab713
window-list: Use consistent style class prefix
...
This will eventually allow us to re-use the workspace-indicator
extension without changing anything but the used prefix.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/307 >
2024-04-24 14:19:51 +00:00
Florian Müllner
56a74abb8a
window-list: Use more appropriate fallback icon
...
'icon-missing' is not an actual icon name. It somewhat works
because an invalid icon name will fallback to the correct
'image-missing', however for apps the generic app icon is
a better fallback.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/315 >
2024-04-24 14:10:41 +00:00
Florian Müllner
f6c74e93b7
window-list: Replace Meta.Rectangle
...
It's deprecated in favor of Mtk.Rectangle, which is a drop-in
replacement.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/306 >
2024-02-22 00:02:40 +00:00
Florian Müllner
f53984670c
window-list: Fix menu ornament in workspace indicator
...
The default ornament is now HIDDEN, so in order to align items,
we always have set an initial ornament.
In gnome-shell 46, the expected "counter ornament" to DOT is NO_DOT
rather than NONE, so use that.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/305 >
2024-02-21 00:07:15 +01:00
Florian Müllner
b00f5c4604
window-list: Fix window previews
...
St.Bin no longer expands its child automatically. Unless do we do
explicitly, the preview actor will be allocated with a size of 0x0.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/304 >
2024-02-19 19:59:54 +01:00
Florian Müllner
071584621e
window-list: Update visibility on window-type changes
...
The visibility depends on the type, so we should listen for
changes (even if the property is unlikely to change).
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/292 >
2023-12-01 19:10:08 +01:00
Florian Müllner
5c57f44838
window-list: Don't hide previews on other monitors
...
Workspace thumbnails are clipped, so there's no major benefit
of hiding the actors explicitly.
On the other hand, the check is useful on size/position changes
to avoid unnecessary relayouts.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/292 >
2023-12-01 19:09:30 +01:00
Florian Müllner
93741e9e1c
Revert "window-list: Only initialize preview visibility on map"
...
It is not possible to unmap an actor from within the map vfunc,
so the fix broke the initial visibility again.
This reverts commit 8b7cfff558 .
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/292 >
2023-12-01 19:09:30 +01:00
Florian Müllner
836f81f2e2
window-list: Move additional padding into buttons
...
Commit ca1c4b0f9e added additional padding, which means that the
interactive area of buttons no longer extends to the bottom of
the screen.
Address this by moving the new padding into the buttons themselves.
That restores the Fittsability of the bottom bar, without affecting
the cleaner visual appearance.
Close https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/453
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/291 >
2023-12-01 12:34:20 +00:00
Florian Müllner
574638328e
window-list: Clean up stylesheet indent
...
Replaces tabs with spaces.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/291 >
2023-12-01 12:34:20 +00:00