Commit Graph

16003 Commits

Author SHA1 Message Date
Jonas Ådahl
1f0ef7fb46 workspaceThumbnail: Update monitor index on 'monitors-changed'
For the primary monitor workspace thumbnail, we must keep the monitor
index in sync with what is currently the primary monitor index,
otherwise we might end up trying to move windows to non-existing
monitors.

For example, if the primary monitor index was 1 when the thumbnail box
was created, but later, the primary monitor index changed to 0, with the
other monitor being turned off, moving a window to one of the workspaces
on the workspace thumbnail, gnome-shell would attempt to move it to the
monitor with the index the primary monitor had in the past, with the
problem being that that monitor no longer exists.

Fix this by listening on the 'monitors-changed' signal on the layout
manager, and update the monitor index of the primary workspace
thumbnails box. Make sure to connect to the signal before creating the
thumbnails box, as the thumbnails box itself will listen to the signal
and recreate its actual thumbnails, and it must do this with the up to
date monitor index.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4075
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1810>
2021-04-14 15:43:09 +00:00
Jia Chao
f76e6877c7 keyboard: Fix suggestions box
The suggestions box actor was not being correctly populated.
Make it correctly use the St.BoxLayout add_child() method.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3422
Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2965
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1806>
2021-04-13 10:02:09 +00:00
Jonas Dreßler
62e40a1350 st/widget: Invalidate paint volume on style changes
StWidget is overriding ClutterActors get_paint_volume() vfunc to adjust
for overpaint of things like box shadows that get set in CSS, it does
that by setting the paint volume to the theme nodes paint box.

Since StWidget can't really get notified when the paint box changes, we
just invalidate the paint volume when the theme nodes paint_equal()
returns FALSE.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1484>
2021-04-12 17:08:23 +00:00
Jonas Dreßler
fab39bbea5 st/viewport: Invalidate the cached paint volume of ClutterActor
Since StViewport uses the value of the StAdjustment to create its custom
paint volume, ClutterActors newly introduced proper caching of paint
volumes doesn't get notifed about changes to that paint volume and will
simply reuse the cached old one.

So make use of the newly introduced
clutter_actor_invalidate_paint_volume() method to make sure ClutterActor
will ask for the paint volume again on the next paint.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1484>
2021-04-12 17:08:23 +00:00
Georges Basile Stavracas Neto
eb96288738 overviewControls: Use correct state when updating AppDisplay visibility
When OverviewControls goes from HIDDEN to APP_GRID, it constantly checks
if AppDisplay needs to be visible or not by checking the current overview
state is bigger than WINDOW_PICKER. Turns out in this case this check is
problematic, because when the current state trespasses WINDOW_PICKER, the
layout manager will have already positioned AppDisplay halfway to its final
position.

Use either the final or the current state, whichever is biggest, when updating
the AppDisplay visibility. It optionally allows passing the overview state
params to _updateAppDisplayVisibility() so that we avoid a few trampolines to
recaltulate the adjustment state.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1805>
2021-04-12 12:06:30 -03:00
Andrew Zaech
ce4ece2c44 util: Use fade_margins in ensureActorVisibleInScrollView function
Commit f60a469a34 removed vfade_offset in favor of fade_margins.
Util.ensureActorVisibleInScrollView function needs to be adjusted
accordingly.

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

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1802>
2021-04-10 15:20:43 +02:00
Jan Tojnar
53dd291aba extensionsService: Really fix copying technical details
gdk_clipboard_set_text() is not introspectable, we have to use
gdk_clipboard_set_value() (shadowed as gdk_clipboard_set())
instead.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1796>
2021-04-09 20:53:34 +00:00
Emin Tufan Çetin
d3b28e72aa Update Turkish translation 2021-04-09 07:42:21 +00:00
Emin Tufan Çetin
1d8d2344f3 Update Turkish translation 2021-04-09 07:38:16 +00:00
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