gnome-shell:gnome-3-28

Last commit made on 2020-08-17
Get this branch:
git clone -b gnome-3-28 https://git.launchpad.net/gnome-shell

Branch merges

Branch information

Name:
gnome-3-28
Repository:
lp:gnome-shell

Recent commits

20e7dd3... by Carlos Garnacho

shell-global: Make saving of persistent state asynchronous

This is an expensive operation that is best avoided in the main loop. Given
the call doesn't care much about returning error or status, it can just
be made async within.

Every operation on a given file will be destructive wrt previous
operations on the same file, so we just cancel any pending operation on
it before batching the current one.

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

(cherry picked from commit 86a00b6872375a266449beee1ea6d5e94f1ebbcb)

ac3738f... by Carlos Garnacho

keyboardManager: Avoid idempotent calls to meta_backend_set_keymap()

But still try to apply the keymap whenever the input sources changed. This
is a different approach to gnome-shell#240 that still avoid redundant
changes to the current keymap, but actually trigger one when input sources
are added.

https://bugzilla.redhat.com/show_bug.cgi?id=1637418

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

(cherry picked from commit b405ed64427a9d518d1714df678d04ad11267e15)

b48e95c... by Christian Hergert <email address hidden>

Revert "util: cache local GTimeZone"

This reverts commit f597a0a11c822743c72e28d1e0abf2f4e9eeb3b3.

5ccf92e... by Christian Hergert <email address hidden>

Revert "ShellAppCache: add cache to help keep I/O off main thread"

This reverts commit 2c549bfbbeca86bdeb9947e0b2ff54fc91602b0b.

2040c38... by Christian Hergert <email address hidden>

Revert "appDisplay: use ShellAppCache to translate folder names"

This reverts commit f87b9f374ad8c87957cb9c4e99e89efa79661e54.

4e22989... by Christian Hergert <email address hidden>

Revert "appDisplay: use ShellAppCache to access GAppInfo"

This reverts commit cfb92ad392c6ae459b1d8fb6008d7cdc53d5c151.

cfb92ad... by Christian Hergert <email address hidden>

appDisplay: use ShellAppCache to access GAppInfo

Calls to Gio.AppInfo.get_all() can perform quite a bit of I/O on the
calling thread. This can potentially stall the compositor if the disk
controller is saturated.

Instead we can call the new ShellAppCache which contains cached information
and performs all update I/O on a thread.

Notifications of changes work very similar to GAppInfoMonitor via the
ShellAppCache::changed() signal.

f87b9f3... by Christian Hergert <email address hidden>

appDisplay: use ShellAppCache to translate folder names

This was performing quite a bit of I/O on the main thread previously. Now,
all the I/O is deferred to a worker thread and the translated names are
cached for immediate lookup.

2c549bf... by Christian Hergert <email address hidden>

ShellAppCache: add cache to help keep I/O off main thread

A number of things can result in doing I/O on the main thread such as
loading GAppInfo or folder translations. The ShellAppCache provides a
layer of abstraction around those things so that we can keep that work
off the main thread by delaying a short while and processing the work
synchronously off-main-thread.

The results can then be marshalled back to the main thread for use by
the rest of the system via the ShellAppCache::changed() signal.

f597a0a... by Christian Hergert <email address hidden>

util: cache local GTimeZone

This ensures that we do not create a new GTimeZone with
g_time_zone_new_local() repeatedly. Currently, that will cause GTimeZone
to open(), mmap() and parse /etc/localtime while on the main thread.

We already track timezone changes, so we can cache this value and reuse
it if we:

 1) Clear the cache when timezone changes
 2) Use the only GDateTime API available to us here, which means we
    imply the current time. But this is how environment.js uses the
    date and time anyway, so no loss.

We maintain the old form for plugin compatibility.

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