Commit Graph

16594 Commits

Author SHA1 Message Date
Florian Müllner
dd7d336228 workspacesView: Don't tie PgUp/PgDown to mapped state
Both app grid and window picker are now always visible in the overview,
so their handling of the PgUp/PgDown keys conflicts.

Resolve that by checking for the overview state instead.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1798>
2021-04-08 20:48:58 +02:00
Florian Müllner
fc54e0bed8 workspacesView: Fix PgUp/PgDown shortcut
We still try to switch to the workspace above/below, which doesn't
do anything since the layout is now horizontal.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1798>
2021-04-08 20:48:58 +02:00
Jonas Dreßler
dda23fc4c6 workspace: Center window previews horizontally and vertically
Window previews looks slightly offset to the left and top right now
because we don't use the same padding on all edges of the Workspace. We
do that because the oversize and overlap of the window previews is
different on all sides (for example the bottom overlap is very large
because there we show the window title).

To make sure window previews are always perfectly centered on the
Workspace, only use the largest one of the oversize values as spacing
and padding, and add the larger one of the overlap values for the
vertical padding in addition.

With this, we now center the window previews on the Workspace while
never overpainting the allocation of that Workspace to show overlays.

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

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1670>
2021-04-08 17:51:15 +00:00
Sebastian Keller
6f0589313d appDisplay: Ensure icon grid is always aligned with the pixel grid
When adaptToSize was called with an odd width, the calculated padding
was not an integer and as a result the icon grid was no longer aligned
to the pixel grid. Similarly it was possible for the page size to be a
non-integer value, which was causing items to not be aligned for
pages > 1.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4015

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1799>
2021-04-08 16:50:46 +00:00
Jan Tojnar
1b5d71130e extensionsService: Fix copying technical details when extension crashes
This was forgotten when porting to GTK 4, leading to the following error
when user tries to copy the error message produced by an extension:

	JS ERROR: TypeError: Gtk.Clipboard is undefined
	_initActions/<@resource:///org/gnome/Shell/Extensions/js/extensionsService.js:255:31
	run@resource:///org/gnome/Shell/Extensions/js/dbusService.js:177:20
	main@resource:///org/gnome/Shell/Extensions/js/main.js:19:13
	run@resource:///org/gnome/gjs/modules/script/package.js:206:19
	start@resource:///org/gnome/gjs/modules/script/package.js:190:8
	@/nix/store/fwnkwvhwm3kqck4fhkc5y5z853radggg-gnome-shell-40.0/share/gnome-shell/.org.gnome.Shell.Extensions-wrapped:7:17

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1795>
2021-04-08 08:10:36 +02:00
Carmen Bianca BAKKER
3aa3231a9a Update Esperanto translation 2021-04-07 12:00:19 +00:00
Florian Müllner
e6be180df1 main: Use session mode property for welcome dialog
We only want to show the welcome dialog in the user session, not
on the login screen or during initial setup. We currently achieve
that by explicitly checking for those mode names, but there are
other modes like gnome-classic where the dialog is equally un-
helpful. Support those cases by adding a session mode property
that determines whether the welcome dialog should be enabled,
so that modes can opt in or out of the feature themselves.

(Both the 'gdm' and 'initial-setup' modes are based on the
'restricted' mode, so this change does not affect them)

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

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1793>
2021-04-06 18:57:39 +00:00
Cédric Valmary
d5af1fa098 Update Occitan translation 2021-04-06 07:14:49 +00:00
arushsharma24
b2a5417c3e theme/panel: Remove spacing between Activities and appmenu
Top bar elements now have more padding, which makes the spacing between those
elements excessive, so remove it.

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

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1764>
2021-04-02 19:23:06 +00:00
Zander Brown
2f70e524c3 remoteSearch: Fetch enabled/disabled list once
GLib should be caching the values but it seems unnecessary to fetch
and marshal what should be the same lists N times instead of just once

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1791>
2021-04-02 19:07:56 +00:00
Suryashankar Das
4bfb91c5cd overview: Pass state while calling _animateVisible()
Pass OverviewControls.ControlsState.WINDOW_PICKER to the _animateVisible
function in _hideDone().

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3876
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1769>
2021-04-02 10:20:32 +00:00
Nathan Follens
b3f34d12f1 Update Dutch translation 2021-04-01 18:37:20 +00:00
Carlos Garnacho
a7a7ea4af7 appDisplay: Save pages after drag end
In the case that we drop an app in the dash, we take the icon
out of its current page, but we forget to save the page after
that.

This results in oddities dragging further elements around, as
the PageManager does no longer consider them to be in the
positions they actually are.

Related: https://bugzilla.redhat.com/show_bug.cgi?id=1939984
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1775>
2021-03-31 10:35:26 +00:00
Sebastian Keller
dfc44973de status/network: Disconnect signal handler on destroy in NMConnectionItem
Otherwise this can trigger _sync() calls after the objects it is trying
to update have been destroyed.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4013

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1782>
2021-03-31 10:31:12 +00:00
Yuri Konotopov
02b06385ea extensionDownloader: Use POST request for checking updates
Usage of GET requests for checking updates was made deprecated
at website some time ago [1], but REST endpoint was
CSRF-protected until recently [2].
The body of update request may be big enough and thus does not
suitable for GET requests.

[1] 0b38da1b2b
[2] e3ab0c07dc

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1781>
2021-03-31 13:31:00 +04:00
Yaron Shahrabani
687b84c90a Update Hebrew translation 2021-03-29 22:24:43 +00:00
Peng Wu
f563424417 keyboard: Fix display keyboard layout crash with some input methods
Some ibus input method will use the current keyboard layout,
and return "default" as the keyboard layout.
When this happens, display the current keyboard layout instead.

Fixes #3863.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1756>
2021-03-29 09:33:45 +00:00
Yosef Or Boczko
51a7c9a8b8 Update Hebrew translation 2021-03-28 21:17:38 +00:00
Hugo Carvalho
2b4e269a5f Update Portuguese translation 2021-03-27 22:42:06 +00:00
Hugo Carvalho
4b93f15c5e Update Portuguese translation 2021-03-27 22:34:36 +00:00
Ngọc Quân Trần
116ca88b5c Update Vietnamese translation 2021-03-27 07:47:15 +00:00
Dz Chen
75cba51b74 Update Chinese (China) translation 2021-03-26 15:12:50 +00:00
Hannie Dumoleyn
66a0b0a70c Update Dutch translation 2021-03-25 16:48:30 +00:00
Boyuan Yang
463ade049b Update Chinese (China) translation 2021-03-25 02:35:41 +00:00
Carlos Garnacho
4dfc53cade hotplug-sniffer: Drop "volatile" from g_once_init_enter() sentinels
As documented in g_once_init_enter(): "While @location has a volatile qualifier,
this is a historical artifact and the pointer passed to it should not be
volatile.". And effectively this now warns with modern glibc.

Drop this from our logging function.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1770>
2021-03-22 11:12:23 +00:00
Carlos Garnacho
554d76a200 calendar-server: Drop "volatile" from g_once_init_enter() sentinels
As documented in g_once_init_enter(): "While @location has a volatile qualifier,
this is a historical artifact and the pointer passed to it should not be
volatile.". And effectively this now warns with modern glibc.

Drop this from our logging function.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1770>
2021-03-22 11:12:23 +00:00
Timo Jyrinki
8aa7a376c4 Update Finnish translation 2021-03-21 16:42:40 +00:00
Florian Müllner
bf6d668cab Post-release version bump 2021-03-20 13:40:49 +01:00
Florian Müllner
c40d382c56 Tag release 40.0
Update NEWS.
2021-03-20 13:09:53 +01:00
Dušan Kazik
f9db8fd309 Update Slovak translation 2021-03-18 09:34:27 +00:00
Zander Brown
ec071ae4c2 Update British English translation 2021-03-16 17:36:07 +00:00
Florian Müllner
750ade34da extensions-app: Fix broken metainfo
Eeeks, should have put the post-release version bump into a MR.
2021-03-15 16:39:28 +01:00
Florian Müllner
55323e44af Post-release version bump 2021-03-15 16:23:45 +01:00
Florian Müllner
1d5f3f14fa Tag release 40.rc
Update NEWS.
2021-03-15 16:17:06 +01:00
Daniel van Vugt
1f0e4b58ab keyboard: Handle symbolic OSK key codes as explicitly invalid
`key` is an empty string in this case, causing `charCodeAt(0)` to return
`NaN`, which when passed to `Clutter.unicode_to_keysym` now generates an
error in gjs >= 1.67.3:

```
JS ERROR: Error: Argument wc: value is out of range for uint32
```

And the symbolic keys like Backspace, Enter and Caps Lock would have their
presses ignored.

Just skip the call to `charCodeAt` that will fail and allow
`Clutter.unicode_to_keysym` to return its usual error flag.

Fixes: https://bugs.launchpad.net/bugs/1918738
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1758>
2021-03-15 12:41:10 +00:00
Daniel van Vugt
c5b18ee66a status/network: Ensure the Cancel button passes undefined to close()
The parameter to `ModalDialog.close(timestamp)` is optional. But when
invoked via the network dialog's Cancel button it was receiving an
implicit parameter value that's definitely not a timestamp:

```
[0x560f18af0c50 StButton.modal-dialog-linked-button:first-child hover ("Cancel")]
```

And as of today (or gjs >= 1.67.3) that's reported as an error:
```
JS ERROR: Error: Argument timestamp: value is out of range for uint32
popModal@resource:///org/gnome/shell/ui/main.js:638:12
popModal@resource:///org/gnome/shell/ui/modalDialog.js:206:14
close@resource:///org/gnome/shell/ui/modalDialog.js:179:14
```
and so you can't Cancel the dialog anymore.

Make sure `ModalDialog.close()` receives an `undefined` timestamp it
knows how to handle.

Fixes: https://bugs.launchpad.net/bugs/1918666
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1757>
2021-03-15 18:19:04 +08:00
Milo Casagrande
a24c1d28eb Update Italian translation 2021-03-15 08:03:53 +00:00
Florian Müllner
4a7c5890a8 shell/app: Explicitly handle (X11) fallback icon changes
Since commit 770231, StImageContent implements the GIcon interface, which
allowed us to represent all application icons as GIcon (app-info, X11 icon
property or themed fallback icon).

While that change made for a nicer ShellApp API, it did introduce a
conceptual issue in st_texture_cache_bind_cairo_surface_property():
GIcons usually represent static icons, while the ClutterContent
returned by that method updates automatically when the bound property
changes.

Address this by tracking the MetaWindow:icon property in ShellApp, and
update the fallback icon when it changes. With that, a GIcon object
always represents the same icon, and any icon change is reflected
by a corresponding GIcon change.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1761>
2021-03-14 20:36:41 +00:00
Florian Müllner
16b0d0d07c shell/app: Expose icon as property
A property can be more convenient than a method. More importantly,
we are about to allow the icon to change, so a property will be
useful to get notified about those changes.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1761>
2021-03-14 20:36:41 +00:00
Florian Müllner
0cf22f4a1b shell/app: Only release window ref when we are done
We hold a reference to all windows we track for the app. While that
reference is unlikely to be the last remaining one, we still shouldn't
release it until we are done with the window.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1761>
2021-03-14 20:36:41 +00:00
Florian Müllner
07a819f62b st/texture-cache: Split out load_cairo_surface_to_gicon() method
This is essentially st_texture_cache_bind_cairo_surface_property()
without the binding part.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1761>
2021-03-14 20:36:41 +00:00
Florian Müllner
5652550688 st/texture-cache: Fail loading invalid StImageContent
Creating a content object from a cairo surface may fail, in which case
we return an empty content with a 0x0 preferred size.

However when we treat such a content object as GIcon, we happily load
it anyway. Don't do that, so consumers like StIcon can fall back properly
to an alternative.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1761>
2021-03-14 20:36:41 +00:00
Sebastian Keller
f2db9b52c9 iconGrid: Only use page relative coords for orientation in getDropTarget
The x and y coordinates were both adjusted to be page relative, even
though the icon grid can only scroll in one direction. This was leading
to coordinates outside of the icon grid to be considered part of it and
a wrong drop target to be chosen.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3779

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1767>
2021-03-14 18:44:03 +00:00
A S Alam
822340fd86 Update Punjabi translation 2021-03-14 15:17:29 +00:00
Florian Müllner
3c221cea48 overview: Fix showApps() compatibility method
The method is unused in gnome-shell itself, but extensions may still
want to call it, so make sure it actually works.

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

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1766>
2021-03-14 12:47:42 +00:00
Sebastian Keller
5062c4c9c2 st/texture-cache: Ensure icons keep their aspect ratio when scaled down
Window preview icons can get scaled down if the window they belong to is
very small and/or there are a lot of open windows. When scaled down this
way the icons would get scaled without keeping the aspect ratio. Fix
this by using a content gravity that keeps the aspect ratio.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3865

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1751>
2021-03-14 01:06:30 +00:00
Sebastian Keller
07f2d32087 st/texture-cache: Don't use content size request mode for surface icons
While most GIcons passed to this function cause a StImageContent to be
created with the requested size, cairo surface based icons already are
passed as StImageContent with a preferred size corresponding to the
size of the surface they were created from. As a result icons of window
backed applications were never scaled up like the other icons. Fix this
by ignoring the content size for these case.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1751>
2021-03-14 01:06:30 +00:00
Florian Müllner
d271a51bfd swipeTracker: Remove unused property
The :allow-long-swipes GObject property relies on the automatic
getter/setter added by gjs and is not actually backed by
_allowLongSwipes.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1765>
2021-03-13 22:32:23 +00:00
Jonas Dreßler
d49606bbaa overview: Get rid of panel ghost actor
Right now we use a ClutterClone ghost of the panel simply to add some
spacing to the top monitor edge.

We can remove the panelGhost by adjusting the allocations of all the
parts of the overview ourselves inside ControlsManagers vfunc_allocate,
this should also work with extensions that move the panel somewhere
else.

This makes the initial relayout of the overview significantly faster,
because we now no longer have to relayout the whole panel in the
process.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1755>
2021-03-13 22:13:25 +00:00
Jonas Dreßler
ae23ad372d overviewControls: Return zero preferred size
The OverviewControls actor gets allocated a fixed size by its parent,
the OverviewActor, anyway, so it's pretty useless to go through the size
request machinery and add up all the sizes of items in the iconGrid,
coming up with a preferred size that's wrong anyway.

Instead simply return a min and preferred size of 0 in
get_preferred_height/width of ControlsManagerLayout.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1755>
2021-03-13 22:13:25 +00:00