Commit graph

8400 commits

Author SHA1 Message Date
Olivier Fourdan
a66413f7f5 kbdA11yDialog: Use MetaKeyboardA11yFlags
The change in mutter to move keyboard accessibility into backends needs
to be applied in gnome-shell as well, otherwise the keyboard
accessibility dialog cannot work.

Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2306
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2334>
(cherry picked from commit ed910a7216)
2022-06-21 11:36:27 +02:00
Jonas Dreßler
69f830246d workspace: Force creating new layout when there's no allocation yet
Commit ba23279f1f was aimed at fixing a
bug where the layout is frozen so early that we don't have an existing
one to re-use, because no allocation cycle happened yet. It tried to fix
that by forcing the creation of a layout when needsLayout === true,
this turned out to be a bit too much, as it also forced creating a new
layout when the layout was frozen after closing a window (which would
set needsLayout to true).

To fix this regression and still avoid reintroducing the bug the
previous commit fixed, tighten the check a bit and only force creating
the new layout when there's no allocation yet. This makes freezing the
layout after closing a window work again.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2236>
(cherry picked from commit b17f00cfb1)
2022-03-20 15:56:35 +01:00
Jonas Dreßler
e008e7d25c workspaceAnimation: Get time outside of the animation-complete callback
We want to use the current event time for activating the workspace, and
this time is only available when calling global.get_current_time() or
Clutter.get_current_event_time() from the context of an event handler.

So instead of trying to get that time when the animation has finished
from the onComplete() handler, get it before and store it as a variable
to use in the onComplete() handler later.

This fixes an error message when switching workspaces using the swipe
gesture where MetaWorkspace complains about the 0-timestamp we pass it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2233>
(cherry picked from commit aa9edc37a5)
2022-03-20 15:56:35 +01:00
Ivan Molodetskikh
5d19022542 windowManager: Change unfullscreen mode to NORMAL
The unfullscreen action doesn't make sense in other modes. In the
overview in particular it also prevents clicking on the top bar items on
a workspace with a fullscreen client.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2227>
(cherry picked from commit 4bc195e797)
2022-03-20 15:56:35 +01:00
Sebastian Keller
ddab057c9a workspace: Scale slots to current workspace size when layout is frozen
The transition from the overview freezes the workspace layout at the
start of the animation, which means that the calculated window slots
remain the same while the workspace itslef grows. This causes the
windows to appear slightly shrunk in comparison to the workspace and
shifted to the top left. This is especially noticeable during the
beginning of the animation when there is more weight on the slots than
the original window position and if there are not that many open
windows.

Unfreezing the layout for this transition is not possible, because it
would cause issues with newly opened windows abruptly changing the
layout when the animation happens after starting a new app.

This change instead tries to scale the frozen layout to the current
workspace size. While this is not entirely correct, because this scales
the spacing between the slots as well, it is still more accurate than
the completely unscaled slots.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4616
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1980>
(cherry picked from commit 6d3df381b3)
2022-03-20 15:56:35 +01:00
Jonas Dreßler
4e7a56db66 workspace: Don't freeze the layout when there's no layout yet
On some touchpads/laptops, the swipe gesture to open the overview can be
performed so fast, that it starts and ends in between two frames. Now
when this happens, and the gesture ended with too little movement to
confidently say the user intended to open the overview, we'll close the
overview again.

While closing the overview, we freeze the layout of the Workspace in
order to avoid changes to windows messing with the animation. This means
that in the case described above, we freeze the layout even before the
first frame of the opening animation happens. No frames being drawn also
means no allocations happening, and since we create this._layout in
vfunc_allocate(), this means that on the first allocation cycle of the
overview we'll see this._layoutFrozen = true, but will also not have
a this._layout nor this._windowSlots.

This creates an annoying visual glitch where for a split second all
the windows disappear (overview is visible but no WindowPreviews get
allocated).

To fix this, force creating a layout on the first allocation cycle, even
if the layout is currently frozen.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2203>
(cherry picked from commit ba23279f1f)
2022-03-20 15:56:35 +01:00
Florian Müllner
e5315d2c31 dash: Fix drag placeholder position in RTL
The position corresponds to a child index, which means it must
be mirrored when starting to count from the right.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4574

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2219>
(cherry picked from commit 4735193456)
2022-03-20 15:56:35 +01:00
Jonas Dreßler
58051fd479 overview: Don't expect time argument from drag-end signal
We actually don't get a time from the xdndHandler when it emits
drag-end, so we fail right now when calling
workspaceManager.get_workspace_by_index(time).

Fix it by getting the time ourselves instead.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2211>
(cherry picked from commit bb1ec88dfa)
2022-03-20 15:56:35 +01:00
Florian Müllner
617938d6f2 workspaceAnimation: Fix warning on restacking
Only workspace groups that are associated with a workspace have a
background. As a result, when restacking window previews we end up
passing `undefined` to clutter_actor_set_child_above_sibling()
instead of null, triggering a warning.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2209>
(cherry picked from commit 5d1b9a429e)
2022-03-20 15:56:35 +01:00
Xiaoguang Wang
71d6f7af81 network: Get dbus path from NMDevice
In the NetworkManager new version the NMDevice.get_path returns pci
path, we need to use NM prototype to get device dbus path.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4565

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2194>
(cherry picked from commit 8655814329)
2022-03-20 15:56:35 +01:00
Sebastian Keller
62457bc852 workspacesView: Disable workspace switching while in search
WorkspacesDisplay connects to key-press-event on the stage to switch
workspaces when page up or down is pressed and nothing else intercepts
these keys. This means that it is still possible to switch workspaces
while they are hidden behind the search.

So only allow these keybinding while the WorkspacesDisplay is reactive
which gets updated by ControlsManager depending on whether there is an
active search or not. Also set it as initially reactive, because
otherwise the keybindings would only work after performing an initial
search.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2204>
(cherry picked from commit 23047b6d80)
2022-03-20 15:56:35 +01:00
Jonas Dreßler
0de0a1f594 dash: Subtract vertical margins from availHeight
The vertical margins are part of this._maxHeight, so we need to subtract
it in order to propery limit icon sizes when the available height is too
small.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2191>
(cherry picked from commit 2607880bf6)
2022-03-20 15:47:13 +01:00
Jonas Dreßler
5db45f0e40 overviewControls: Factor in margin-bottom for dash startup animation
We set a margin-bottom on the dash to give it some margin towards the
monitor edge, we need to factor in this margin when moving it outside of
the monitor for our animation.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2191>
(cherry picked from commit b9abf6fcf5)
2022-03-20 15:47:13 +01:00
Carlos Garnacho
4cccc972f7 popupMenu: Avoid open state reentrancy in dummy menus
Dummy menus may emit ::open-state-changed multiple times for
the same state. Avoid doing that so that the PopupMenuManager
is happy not having to handle reentrancy.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5064
(cherry picked from commit 89db7bbb12)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2181>
2022-02-14 15:49:37 +01:00
Florian Müllner
8773ad7442 ibusManager: Fix version in log message
Whoops, we the log message complaints about minor.minor instead
of minor.micro.

(cherry picked from commit 615155f424)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2181>
2022-02-14 15:49:37 +01:00
Razze
6d588a5aee Let users use the other mouse button to switch
As users can have different primary mouse buttons (left vs right) it
might happen, that a user with a different
preference wants to switch. Currently they need
to use the mouse button, that the current
user prefers.

This change enables users to use either the left or right button.

(cherry picked from commit 55a37ac992)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2181>
2022-02-14 15:49:37 +01:00
Florian Müllner
0096ab5af8 dbusServices/notifications: Disallow acting on "foreign" IDs
The Notify() and CloseNotification() methods act on a notification,
identified by the passed ID. Just like it makes sense to only emit
notification signals to the original sender, those methods should
be restricted to the notification owner.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5008

(cherry picked from commit 35466b0e0a)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2181>
2022-02-14 15:49:37 +01:00
Florian Müllner
a2ab5c9eaa dbusServices/notifications: Stop broadcasting signals
All fd.o Notifications signals are emitted for a particular notification,
so debugging aside, only the owner of said notification has a legitimate
reason to act on it.

So far we (and other implementations like the old notification-daemon)
have relied on the client-side to properly filter the signals (like
libnotify), but at least the QT implementation is known to not do
that.

Enforce correct client behavior by only emitting the signal to the
original sender.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5008

(cherry picked from commit 0cbab09044)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2181>
2022-02-14 15:49:37 +01:00
Daniel van Vugt
67d1e87db0 workspace: Fix a signal leak in WorkspaceBackground
(cherry picked from commit ed7fe756ef)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2181>
2022-02-14 15:49:37 +01:00
kyte
0f34bfebd4 swipeTracker: Ignore Meta key while workspace scroll gesture is in progress
Workspace transition stopped midway when the Meta key
was released while the two-finger scroll gesture was
in progress. This commit ignores the Meta key once
the gesture has been confirmed and is in motion.

(cherry picked from commit 1260e35093)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2181>
2022-02-14 15:49:37 +01:00
Florian Müllner
be3f54a861 overviewControls: Handle keyboard navigation
The old view selector used to handle initiating keynav into pages.
That code became inactive when non-search related functionality
was moved elsewhere, and was finally removed in commit cf41f4a527.

We still want the keynav behavior it provided, so add similar code
to overview's control manager.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4056

(cherry picked from commit 1cee7e6760)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2181>
2022-02-14 15:49:37 +01:00
Jonas Dreßler
0fb2ee5bcc lightbox: Fix banding issues with the vignette shader
Just as https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/352
did for the MetaBackgroundActor in mutter, let's fix the vignette shader
in gnome-shell, too.

Based on a patch originally propsed by Nikita Churaev, see
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/59.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3942
(cherry picked from commit 81f62e9df8)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2181>
2022-02-14 15:49:37 +01:00
Jonas Dreßler
a27537ad39 altTab: Also use getWindows() for AppSwitcher
Use our custom filtering for meta_display_get_tab_list() in AppSwitcher
to be consistent and make sure the thumbnail list also includes the
remapping done in getWindows().

(cherry picked from commit 7c49ac5242)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2181>
2022-02-14 15:49:25 +01:00
Jonas Dreßler
914dc54fe6 altTab: Only calculate iconSize once
Right now, _setIconSize() calculates the icon size everytime the
preferred height of AppSwitcher is calculated, which happens quite
often.

Reduce the perfomance impact by only calculating the icon size once.
This has the added benefit of preventing unexpected changes to the icon
sizes while the switcher is open.

(cherry picked from commit c8f3db31b8)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2181>
2022-02-14 15:49:09 +01:00
Jonas Dreßler
560f01eb59 altTab: Check for reentrancy in override function of _onItemMotion()
Just like in the parent _onItemMotion() function, we should check for
reentrancy in our override.

Because the hover timeout will prevent a new selection from happening
for some time, in addition to checking for this._highlighted reentrancy,
we also need to track the item that's being hovered during the timeout.

(cherry picked from commit 7f65fa49db)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2181>
2022-02-14 15:49:00 +01:00
Florian Müllner
887652792f shellDBus: Return error on invalid app IDs
When passing an invalid or unknown app ID to FocusApp(), we currently
open the app picker and silently fail to select the desired app.
Instead of half-working like that, make it clear that the argument
was invalid by returning an appropriate error. (It's easy to get the
ID wrong, as unlike appstream/flatpak IDs, we include the ".desktop"
suffix).

(cherry picked from commit 1e2a10f83b)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2181>
2022-02-14 15:48:42 +01:00
Daniel van Vugt
894e412ccb lightbox: GLSL requires real numbers, not integers
At least backward-compatible GLSL requires real numbers only. It's a
fatal shader compilation error to use integers in GLES and older GL
versions like that of i915.

Fixes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2115
(cherry picked from commit e38a416246)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2181>
2022-02-14 15:48:42 +01:00
Leleat
1e221d1cca popupMenu: Center labels vertically
(cherry picked from commit f4b75d02cc)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2181>
2022-02-14 15:48:42 +01:00
Naïm Favier
ea73bc8ef7 loginDialog: Fix timing issue
Fix the first task of the timed login batch not returning the hold on
`_waitForItemForUser`.

(cherry picked from commit 3de418ea3b)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2181>
2022-02-14 15:48:42 +01:00
Florian Müllner
5cc4678c59 panel: Fix corner transition when slowed down
Both ease() and CSS durations take the slow-down factor into account,
so the corners currently end up using the square of the factor in their
transition.

(cherry picked from commit 6a10f2f2f1)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2181>
2022-02-14 15:48:42 +01:00
Aleksandr Mezin
3eeae13a56 extensionSystem: Ignore spurious disable-extension-version-validation change
Ignore spurious change notificatons, when the setting didn't actually change
(triggered by `dconf update`)

Workaround for https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4808

(cherry picked from commit 12c300a7a2)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2181>
2022-02-14 15:48:42 +01:00
Jonas Dreßler
96c81709ab altTab: Use this._highlighted instead of this._curApp in AppSwitcher
Thanks to the parent class (SwitcherPopup), we already have a property
for the currently highlighted item, let's use it.

(cherry picked from commit 7ae694990b)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2181>
2022-02-14 15:48:28 +01:00
Jonas Dreßler
7606245a80 altTab: Remove override of _itemEnteredHandler()
This override function is identical to the original function, so remove
it.

(cherry picked from commit 98e270e698)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2181>
2022-02-14 15:47:59 +01:00
Jonas Dreßler
f3d15da048 altTab: Also return EVENT_PROPAGATE in override of _onItemMotion()
Clutter expects a return value here, so make sure we also return
Clutter.EVENT_PROPAGATE just like the function we override does.

(cherry picked from commit d8a38672f1)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2181>
2022-02-14 15:47:39 +01:00
Jonas Dreßler
3ce0d9c1b4 switcherPopup: Rename _onItemEnter() to _onItemMotion()
Since commit e94de67b, this is called by a motion-event handler instead
of enter-event, so let's adjust the function name.

(cherry picked from commit 87101cf165)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2181>
2022-02-14 15:47:30 +01:00
Robert Mader
9cb416638d ControlsManager: Propagate unmap before hiding the WorkspacesDisplay
Hiding the `WorkspacesDisplay` triggers a reallocation of the
`ControlsManagerLayout` which can fail with the following error:
```
JS ERROR: TypeError: workspace is undefined
_getSpacing@resource:///org/gnome/shell/ui/workspacesView.js:229:13
vfunc_allocate@resource:///org/gnome/shell/ui/workspacesView.js:355:18
vfunc_allocate@resource:///org/gnome/shell/ui/overviewControls.js:200:33
vfunc_hide@resource:///org/gnome/shell/ui/workspacesView.js:1070:38
vfunc_unmap@resource:///org/gnome/shell/ui/overviewControls.js:672:33
hideOverview@resource:///org/gnome/shell/ui/layout.js:312:28
_hideDone@resource:///org/gnome/shell/ui/overview.js:617:32
onComplete@resource:///org/gnome/shell/ui/overview.js:390:37
_makeEaseCallback/<@resource:///org/gnome/shell/ui/environment.js:134:13
_easeActorProperty/<@resource:///org/gnome/shell/ui/environment.js:298:60
```

This can be reproduced by closing the overview with the three-finger
gesture.

Thus propagate the unmap before hiding the `WorkspacesDisplay`.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2088>
(cherry picked from commit ee41dfdb8c)
2022-01-09 17:40:33 +01:00
Sebastian Keller
bb5810c6f0 windowManager: Set correct unfullscreen gesture enabled state on startup
The unfullscreen gesture was defaulting to enabled until the first
window focus change. With it now being run in the capture phase, the
gesture was preventing clicks in the top panel except on the activities
button before the first window was opened.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2087>
(cherry picked from commit f322e00ca5)
2022-01-09 16:32:16 +01:00
Sebastian Keller
65102404d4 messageTray: Close SHOWING banner when its notification is destroyed
Currently only banners in the SHOWN state are hidden when the underlying
notification is destroyed, but if they are in the SHOWING state, they
remain visible. Because the 'notification' member has already been set
to null when the notification got destroyed, closing the banner by
clicking on the close button, will not do anything and clicking on the
notification itself will result in an error message. For notifications
without a timeout, i.e. critical ones, this will result in an
uncloseable notification.

This can happen if the program creating a critical notification
immediately closes it again, as might happen with power notifications
from gnome-settings-daemon in some situations.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4855
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2079>
(cherry picked from commit 2801d0bfe3)
2022-01-09 16:32:16 +01:00
kyte
51c67b181e lockScreen: Don't wake up screen in DND mode
Screen woke up whenever a new notification popped up
on lock screen even when DND was turned on.
This commit changes this behaviour to not wake
the screen up in such case.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4710

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2051>
(cherry picked from commit 920714008c)
2022-01-09 16:32:01 +01:00
Daniel van Vugt
bdd19cdeb9 windowManager: Use one consistent animation mode for minimize/unminimize
Firstly don't use EASE_IN for any minimize/unminimize animations because
those start slow and end fast. The effect of that was minimize/unminimize
appearing to be unresponsive to user clicks for a little while before
accelerating away. All such animations should be EASE_OUT for an immediate
response followed by deceleration at the end.

Secondly we replace the shallow 200ms QUADratic curves with a steeper
400ms EXPOnetial curve. Because it's steeper and twice as long the fast part
feels the same as 200ms QUAD, but there's an extra 200ms after that in which
to slow down smoothly giving a more fluid appearance. No sudden stops.

Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=786789
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2066>
(cherry picked from commit 9069183cec)
2022-01-09 16:31:48 +01:00
Daniel van Vugt
5c75f3e4fa windowManager: Unminimize a window to its buffer rect geometry
If you slow down the unminimize animation you will notice it overshoots and
then snaps back, but only for decorated windows. Undecorated windows would
unminimize to their correct position. So we remove decorations from the
equation and now all window types unminimize to their correct position.

This wasn't noticeable because the unminimize animation velocity is usually
so high at the end (EASE_IN_EXPO) that there are no frames rendered near the
end of the curve to show it had overshot.

This appears to be consistent with the Mutter source - associating the
actor geometry with `buffer_rect` and not `frame_rect`. See
`meta_window_actor_sync_actor_geometry` for example.

Related to: https://bugzilla.gnome.org/show_bug.cgi?id=786789#c1

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2066>
(cherry picked from commit ca1291e418)
2022-01-09 16:31:48 +01:00
Dylan McCall
dd12812b21 messageList: Give focus to next message on delete
When the user deletes a message using the keyboard, set the keyboard
focus to the next message, or to the list container itself, so it
remains possible to navigate using the keyboard.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/502
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2053>
(cherry picked from commit 4a23ddffa8)
2021-12-11 05:09:45 +01:00
Sebastian Keller
4f49fead40 calendar-server: Remove the all-day property of events
The way it is currently calculated is broken for days with DST changes
or leap seconds and it is not needed anymore anyway. This will also make
the fix in the following commit simpler.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2023>
(cherry picked from commit 72a6450017)
2021-12-11 05:09:45 +01:00
Sebastian Keller
7761e5ce09 dateMenu: Ignore the allDay property of an event
Given the correct end date this code would be able to determine this
correctly itself and doesn't need to rely on that property. And events
without correct end dates are currently not shown anyway. This prepares
for removing the allDay property entirely.

This also fixes events going from 13:00 the current day to 01:00 not
showing "...". It also fixes multi-day events wrongly detected as
all-day events by the calendar-server showing up as "All day", despite
only covering 1 hour of the day.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2023>
(cherry picked from commit d8efce0ffd)
2021-12-11 05:09:45 +01:00
Sebastian Keller
bd95a05243 calendar: Fix inclusion of zero-length events
Events with a date time (not just a date) where the end time is missing
or matching the start time were considered to not overlap the selected
interval if they were happening on the start time of the interval. This
was causing such zero-length events to be omitted from the calendar if
they were starting at 0:00.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2023>
(cherry picked from commit 2250653673)
2021-12-11 05:09:45 +01:00
Sebastian Keller
7c5cb402a6 calendar: Start ranges at 0:00 and iterate in whole days
Using a starting time other than 0:00 will prevent events before the
chosen starting time from showing up for that range. This was causing
events before 12:00 to be missing in the shell calendar on the first day
of a range.

Fix this by always starting at 0:00 and then incrementing by days rather
than a time value that depending on DST or leap seconds may or may not
correspond to a day.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2023>
(cherry picked from commit 9604778343)
2021-12-11 05:09:45 +01:00
Sebastian Keller
3636fa4623 dateMenu: Use intervals with non-inclusive ends for date ranges
The ical events, we are comparing these intervals to use the first point
in time after the end of the event as their end time, while the code in
gnome-shell was using the last point in time within the range. This was
causing multi-day events ranging from 0:00 to 0:00 to have a trailing
"..." shown on the last day.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2023>
(cherry picked from commit 2fffe91488)
2021-12-11 05:09:45 +01:00
Evan Welsh
551f969591 keyring: Fix incorrect reference to the label instead of string
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2036>
(cherry picked from commit 75e57749f0)
2021-12-11 05:09:29 +01:00
Sebastian Keller
e6fd6cceec magnifier: Disable desaturation effect when not in use
The desaturation effect was always enabled, regardless of the specified
factor. This was causing the magnifier to always hit offscreen
rendering, even when not necessary. Additionally offscreen rendering is
currently also causing glitches in MetaWindowGroup which this helps to
avoid in some cases.

Related: https://gitlab.gnome.org/GNOME/mutter/-/issues/1678
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2026>
(cherry picked from commit 34b6cd0bea)
2021-12-11 05:05:10 +01:00
Florian Müllner
aded2cd01b Revert "layout: Exclude hidden actors from struts"
The change unvealed a series of mutter bugs that for most
users are worse than the issue that was fixed. So revert
the change on stable branches until the mutter side is
fixed.

This reverts commit cd1102ff30.
2021-11-04 16:37:35 +01:00