Commit graph

8894 commits

Author SHA1 Message Date
Julian Sparber
e514b47444 GtkNotificationDaemon: Add show-as-new display-hint
This allows apps to specify if a notification should replace a previous
one with animation or just update it.
2024-06-25 12:26:15 +02:00
Julian Sparber
97fdc19baa WIP: add sound to gtk notification api 2024-06-25 12:26:15 +02:00
Julian Sparber
16f3c47f24 GtkNotificationDaemon: Add display-hint property
The display-hint property can be used by apps to control how a
notification should be displayed by GNOME Shell.
2024-06-25 12:26:15 +02:00
Julian Sparber
2f7c37809a GtkNotificationDaemonNotification: Use markup for body if requested
This adds a new property `markup-body` that let's application set a body
that includes markup.
2024-06-25 12:26:15 +02:00
Julian Sparber
6cf4f49919 GtkNotificationDaemon: Improve notification construction
Instead of setting properties after GtkNotificationDaemonNotification
construction, pass properties directly to constructor chain up.
2024-06-25 12:26:15 +02:00
Julian Sparber
d3213c013f MessageList: Use NO_BANNER display-hint to set whether to show banners
This implements the NO_BANNER display-hint so that users can actually
control whether a banner is shown.
2024-06-25 12:26:15 +02:00
Julian Sparber
9762f43227 MessageList: Use PERSISTENT display-hint to set whether messages is closable
This drops `Message::canClose()` since users should set the appropriate
display hint instead.
2024-06-25 12:26:15 +02:00
Julian Sparber
b2b05a9770 messageTray: Use display-hint property instead of individual properties
This makes use of the new display-hint instead of using individual
properties.
2024-06-25 12:26:15 +02:00
Julian Sparber
a1d5663085 messageTray: Introduce display hint property for Message
This will be used by the new display-hint property for
org.gtk.Notifications API. This will also be used to replace individual
properties like `isTransient` and `forFeedback`.
2024-06-25 12:26:15 +02:00
Julian Sparber
9ac4ccb0da overview: Drop unused ShellInfo object
This object isn't used anymore and it's really easy to create a new
system notification via the appropriate notification source.
2024-06-25 12:26:15 +02:00
Julian Sparber
fc6112973f appFavorites: Display it's own notification for every pin/unpin
Show a notification for each user action instead of updating the
notification currently displayed when the user pins or unpins.
2024-06-25 12:26:15 +02:00
Julian Sparber
3c6644ca8c fdoNotificationDaemon: Don't reshow a banner for updated notifications
There is arguably some room for interpretation but the notification
specs suggest that a notification should be updated without any "visual
cues" therefore the notification shouldn't show a banner again when it's
replaced.
2024-06-25 12:26:15 +02:00
Julian Sparber
37c3ce5060 fdoNotificationDaemon: Show banner for resident notification when app has focus
This drops an undocumented behavior that was introduced for media
players (they now use MPRIS anyways).
2024-06-25 12:26:15 +02:00
Julian Sparber
6055d49802 messageTray: Drop Source.destroyNonResidentNotifications()
It was only used in a specific case for FDO notifications, which was
removed in a previous commit.
2024-06-25 12:26:15 +02:00
Julian Sparber
e169c208ad fdoNotificationDaemon: Don't close all notifications of a source on activation
Don't close all notifications of a source when a notification, without
a default action, is activated.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6983
destroyNonResidentNotifications
2024-06-25 12:26:15 +02:00
Julian Sparber
6985700127 GtkNotificationDaemon: Add ActionInvoked signal
For the notification portal we need to provide the option to use unexported
actions.
2024-06-24 12:09:36 +02:00
Sundeep Mediratta
46c74acb1b workspace: Use better window check option in existing code
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3386>
2024-06-23 15:32:28 -04:00
Sundeep Mediratta
8af8a27d91 workspace: Initialize overview windows correctly in constructor
Currently overview windows added in workspace constructor lack monitoring
the skip-taskbar property. All other windows added after this have
this monitoring.

This uses existing code to correctly add the signal and removes all redundant
code.

It also insures all transients are handled correctly on initialization using
the existing code.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3386>
2024-06-23 15:32:18 -04:00
Keyu Tao
ab87629241 workspacesView: Make active workspace above siblings
If there's a window flowing over the left edge in a workspace, the
animation of showing or hiding overview in the left adjacent workspace
would glitch, as the window would appear or disappear suddenly.

This commits tries to fix it by making sure the active workspace are
above other workspaces when updating workspaces or active workspace
changed in workspacesView.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7364
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3378>
2024-06-22 03:26:31 +08:00
Florian Müllner
1bab7b32e5 barLevel: Update cached style values before chaining up
St.DrawingArea emits the `repaint` signal on style changes, so
if we chain up first, drawing still happens with the previously
cached values.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3376>
2024-06-20 14:45:55 +02:00
Daniel Ruiz de Alegría
946ee93692 switch: Make handle draggable
Listen to state changes for switch menu items, since they can also be
changed without activating them now.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2717>
2024-06-20 13:30:58 +02:00
Daniel Ruiz de Alegría
71f2355b8a switch: Animate transitions
Use a constraint align instead of :x-align to animate it. Match GTK
duration.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2717>
2024-06-20 13:30:58 +02:00
Alice Mikhaylenko
cca34af31e switch: Add hover styles
Same as checkboxes.

Closes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6455

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2717>
2024-06-20 13:30:57 +02:00
Daniel Ruiz de Alegría
259eaa9bbb switch: Style switches with pure CSS
Drop hardcoded assets, have a handle actor instead, change its align to
move it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2717>
2024-06-20 13:30:57 +02:00
Alice Mikhaylenko
e75839bd5d checkBox: Reimplement styles in CSS
Stop using SVG assets other than the actual check icon. This will help
making it recolorable.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2717>
2024-06-20 13:30:57 +02:00
Bilal Elmoussaoui
0cdddaa4a7 ui/animation: Fix a de-ClutterColor fallout
Fixes: 7f0b1e98c ("cleanup: Adapt to removed ClutterColor")
Closes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7722

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3371>
2024-06-14 19:07:30 +02:00
Bilal Elmoussaoui
7f0b1e98cf cleanup: Adapt to removed ClutterColor
It was replaced by CoglColor

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3142>
2024-06-13 18:29:13 +00:00
Bilal Elmoussaoui
d911b6689c ui/background: Update default bg color
To match system_base_color from the theme
See
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3367#note_2137704
for context

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3367>
2024-06-12 16:09:43 +00:00
Bilal Elmoussaoui
4b3bbc50ff cleanup: Prefer using Color struct constructor
Instead of Color.from_pixel or Color.new as both would be removed
to simplify the Color API

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3367>
2024-06-12 16:09:43 +00:00
Jonas Dreßler
c576f82bdf overviewControls: Make sure thumbnails expandFraction is bound to visibility
We set the expand-fraction property of the workspace thumbnails on changes
to their should-show property. The should-show property defaults to true, and
the expand-fraction property defaults to 1. The should-show property gets
updated in the constructor of the ThumbnailsBox though, and it might become
false (that is the case when starting up the shell) during construction.

In this case we're not yet listening to "notify::should-show" in the
ControlsManager, and therefore forget to update the expand-fraction
accordingly. Fix that and ensure the expandFraction is always set to the value
we expect after hiding or showing the thumbnails (we call _updateThumbnailsBox()
from _update(), which we call in the constructor).

This should be the proper fix for the problem that 9bf550da8 (which caused
the workspace thumbnails to never show) originally tried to fix.

Fixes: 9bf550da88 ("overviewControls: Set expandFraction for ws thumbnails to 0 when hidden")
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7668
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3323>
2024-06-08 02:40:38 +00:00
Carlos Garnacho
5c69bb067f keyboard: Disable unredirection when the OSK is shown
The OSK might be wanted over fullscreen windows triggering
unredirection, and the unredirection should be temporarily
overridden in that case.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7692
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3356>
2024-06-05 15:26:02 +00:00
Philip Withnall
8176d6b51c messageTray: Ensure _updateDatetimeId idle callback is cancelled
If the idle callback is not explicitly removed when the notification is
destroyed, it may be invoked after destruction, and try to modify the
notification after it’s been freed.

Signed-off-by: Philip Withnall <pwithnall@gnome.org>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3352>
2024-05-28 18:06:32 +00:00
Marco Trevisan (Treviño)
64edd7940d js/environment: Always use Shell.util_spawn_async functions if possible
If no child setup is provided then all the shell extensions that use
GLib.spawn_async should actually use the shell spawning utils since we
are supposed to always restore the default nofile rlimit on launched
children.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3293>
2024-05-24 22:48:53 +00:00
Marco Trevisan (Treviño)
494be30764 js/environment: Add GLib spawn async overrides warning when using child setup
Using child setup functions is unsafe in gjs code so let's warn if this
happens so that extensions using a similar codepath are warned.

This could be also part of gjs, but we provide a shell override since we
have alternatives to log about.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3293>
2024-05-24 22:48:53 +00:00
Marco Trevisan (Treviño)
26e8fb90fb js: Use Shell.util_spawn_async functions to launch external processes
As explained in previous commits, it's not safe to use JS code in child
function callbacks, so let's use the safer version of it.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6698
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3293>
2024-05-24 22:48:53 +00:00
Bilal Elmoussaoui
e6618d093d window/menu: Remove move titlebar onscreen action
A feature that works for server side decorated windows only that
only adds slightly more convenience over the regular "move" action that
is still there.
Keeping it around would complicate some cleanups in upstream Mutter
so just drop it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3332>
2024-05-24 15:21:03 +02:00
Sebastian Keller
31997fa2f9 appDisplay: Set running indicator dot offset via CSS
The offset was given as a hardcoded (physical) pixel value and did not
take scaling into account. This lead to it being shifted closer towards
the icon as the scale increased.

This now replaces the hardcoded value with a CSS property which
automatically includes the scale factor.

Further this allows simplifying some calculations that previously were
trying to counteract the hardcoded offset using margins by using the
intended offset directly.

With this the dot in the dash is also now placed at exactly the bottom
of the hover highlight, while previously there was an unintentional 1px
space.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7488
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3245>
2024-05-22 19:02:42 +00:00
Florian Müllner
6fa6dd6abb workspaceThumbnails: Update target scale when fully unexpanded
We currently only update the scale when fully expanded. In order
to fix the initial expand transition, also update the scale
when fully unexpanded.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3331>
2024-05-22 12:02:00 +00:00
Florian Müllner
2694a64ebb workspaceThumbnail: Don't rely on allocation to compute scale
We currently compute the target scale from the allocated height,
which means that it only becomes available after thumbnails have
been allocated at least once at their expanded height.

As the minimap is initially hidden, this only happens after it is
expanded for the first time, which means the corresponding transition
is not animated.

In order to allow for a fix, compute the target height ourselves
to allow the scale computation to work independently from the
expand factor.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3331>
2024-05-22 12:02:00 +00:00
Sam Spilsbury
3d9c40783f util: Implement fixMarkup in util as opposed to messageList
We want to be able to import it in the markup unit test without
bringing in a UI dependency.

https://bugzilla.gnome.org/show_bug.cgi?id=783738

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3164>
2024-05-21 13:42:28 +00:00
Sam Hewitt
6fd0aac864 slider: Remove border drawing code add hover style
- remove all the border drawing on sliders since they are unused
- listen for hover and add hover style

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6274
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3320>
2024-05-21 13:10:49 +00:00
Sam Hewitt
43596ffca6 popupMenu: Use selected pseudoclass instead of class
- drop :focus from menuitem drawing
- update menuitem drawing function to style :selected

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7637
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3314>
2024-05-21 12:49:32 +00:00
segfault
9e6552a20d automountManager: Fix password not re-asked for TCRYPT devices
Since commit

  f881092bbc

released in cryptsetup 2.5.0, cryptsetup returns EPERM instead of EINVAL
when the TCRYPT header can't be decrypted with the provided
password and parameters.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7631
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3300>
2024-05-21 12:32:38 +00:00
Florian Müllner
9cafdb6d27 accessDialog: Stop owning portal name
We no longer provide a portal implementation, so there's no need
for owning the name. Right now only the gnome portal consumes
the API, and that accesses it under "org.gnome.Shell".

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3326>
2024-05-20 13:34:45 +00:00
Sebastian Keller
658beda9a9 status/keyboard: Use '+' to separate variant when launching tecla
The code was not changed when switching from gkbd-keyboard-display which
was using tab to separate layout and variant. Tecla uses '+' instead.

This fix was suggested by Neil Mayhew.

Fixes: 04aaa4b67 ("keyboard: Spawn "tecla" to show keyboard map")
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7638
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3324>
2024-05-19 20:24:54 +02:00
Jonas Dreßler
2a8ea4886e overviewControls: Allocate a bit more space for the dash
We want the dash to show the larger icons as often as possible, and giving
it a height of 16% instead of 15% helps with that on common screen
resolutions.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3278>
2024-05-14 18:24:07 +00:00
Jonas Dreßler
bdb0fc6b14 appDisplay: Don't add row and column spacing to the pagePadding
We use the pagePadding to adjust for the large indicators that we add on the
left and right of the appGrid.

While the original padding needs to be applied to the padding for the
indicators (as it was in super.vfunc_style_changed already), there's no
reason to add an extra row and column spacing to the pagePadding on all
sides, so remove that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3278>
2024-05-14 18:24:07 +00:00
Jonas Dreßler
9bf550da88 overviewControls: Set expandFraction for ws thumbnails to 0 when hidden
We multiply the spacing around the workspace thumbnails with the
expandFraction so that it grows with the animation to show/hide them. We
shouldn't factor in the extra spacing to accomodate for the thumbnails in
case they're hidden though, so make sure expandFraction is set to 0 after
the thumbnails got hidden.

This fixes the spacing when a user never uses workspaces (and the workspace
thumbnails are never shown), and also the first transition from
hidden->shown for the thumbnails, which currently starts at 100% scale (ie.
pops into existence).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3278>
2024-05-14 18:24:07 +00:00
Jonas Dreßler
57d0691c3a overviewControls: Reduce spacing around the workspaces minimap
With a previous commit we've made the overall dynamic spacing dynamic, but
the spacing is now a bit much when it comes to the space between search and
workspaces minimap, just as workspaces minimap and large workspaces.

The  minimap should somewhat "squeeze into the empty space" here, so
reduce the spacings above and below it a bit.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3278>
2024-05-14 18:24:07 +00:00
Jonas Dreßler
b58119d5c6 overview: Make the spacing dynamic depending on screen height
The HTML/CSS sizing prototype that was done back in the day for GNOME 40 has
a dynamic spacing depending on the height of the monitor. Let's try to
follow that more closely and make the spacing dependent on screen height.

For the sizing prototype, see
https://gitlab.gnome.org/Teams/Design/os-mockups/-/tree/master/overview/sizing-prototype

This also allows removing of a bit of manually added spacing at the top of
the dash.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3278>
2024-05-14 18:24:07 +00:00