Commit Graph

18119 Commits

Author SHA1 Message Date
Jonas Ådahl
d116256e83 main: Call init() in perf modules if it exists
This is meant to let perf tests initialize themselves earlier than they
would otherwise run.

This allows them to setup the necessary dependencies, e.g. create
test monitors or similar actions.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2623>
2023-02-06 18:10:01 +00:00
Jonas Ådahl
73e0f02b1d overviewControls: Don't hide destroyed child widget on unmap
When we unmap, the child widgets have already been destroyed, so we
shouldn't try to. To detect this, delete the references we keep to them
on destroy, and null-check the hide call.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2623>
2023-02-06 18:10:01 +00:00
Jonas Ådahl
ed2a11ba57 overviewControls: Update work area also on monitors-changed
The cached work area, which is the work area of the primary monitor,
effectively depends on two properties - the (global) work area and the
primary monitor - and we are only tracking changes to one of them. Also
track monitor changes to also cover the second case.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2623>
2023-02-06 18:10:01 +00:00
Jonas Ådahl
def50c38da layout: Explicitly destroy hot corners on shutdown
This won't be handled by our existing actor destruction path as the
ripple actors are added directly to the stage and not the uiGroup.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2623>
2023-02-06 18:10:01 +00:00
Jonas Ådahl
7f7ec2a866 layout: Disconnect 'monitors-changed' handler on shutdown
Doing it ourselves in the shutdown handler in layout.js means we won't
risk reacting to monitor changes that happen after gnome-shell prepares
to shutdown and the signal handler would disconnect itself in case we
used `connectObject(..)`.

This will currently never happen, but in the future perf tests will be
able to create virtual monitors for testing purposes, and they might get
destroyed during the shutdown procedures, causing us to react to them
when we shouldn't.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2623>
2023-02-06 18:10:01 +00:00
Georges Basile Stavracas Neto
9d75d777c7 status/network: Only show custom wired names
Thanks to NetworkManager's connection name disambiguation, it's
pretty common for single wired connections to be named "Wired". This
is fine and what we want almost all times, but in the specific case
of quick settings, we already have a "Wired" string set as title of
the quick settings toggle, so having that as subtitle is reduntant.

Hide the subtitle label (by returning null) when the subtitle of
a wired network matches the title.

Fixes ab10b95d2d
Closes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6369

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2627>
2023-02-06 08:22:48 -03:00
Yuri Chornoivan
3d645eada0 Update Ukrainian translation 2023-02-06 09:41:14 +00:00
Fran Dieguez
079b040a31 Update Galician translation 2023-02-05 21:05:13 +00:00
Tim Sabsch
07e2e88787 Update German translation 2023-02-05 19:50:18 +00:00
Kukuh Syafaat
7c9e9409ba Update Indonesian translation 2023-02-05 09:08:39 +00:00
Yosef Or Boczko
91b360c9da Update Hebrew translation 2023-02-05 09:01:12 +00:00
Ekaterine Papava
b142039e30 Update Georgian translation 2023-02-05 07:16:09 +00:00
Florian Müllner
f0b4dd648c workspacesView: Remove obsolete cleanup
Since commit a9f11b1f5a, we no longer set up a later on
parent-set, so there's nothing to clean up.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2626>
2023-02-04 23:54:42 +00:00
Georges Basile Stavracas Neto
2d4521be3b status/network: Title mobile connections as "Mobile"
As per the latest mockups, modem network connections are labeled
"Mobile". Override _getDefaultName in NMModemToggle and always
return "Mobile" as title.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2619>
2023-02-04 20:34:11 -03:00
Georges Basile Stavracas Neto
e0408faf71 status/network: Title bluetooth connections as "Tether"
As per the latest mockups, Bluetooth network connections are simply
labeled "Tether". Override _getDefaultName in NMBluetoothToggle
and always return "Tether" as title.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2619>
2023-02-04 20:31:58 -03:00
Georges Basile Stavracas Neto
01a89bc29a status/network: Improve network toggle subtitles
If there is a single connection for a given NMToggle subclass,
use the connection name; otherwise, transform that into '%d
connected'. This is better than the current "Device (counter)"
template, e.g. "VPN (2)", which would give us a quick toggle
with:

   VPN
   VPN (2)

Change that to e.g.:

  VPN
  2 connected

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2619>
2023-02-04 18:10:22 -03:00
Georges Basile Stavracas Neto
707ce2955b status/network: Set default name for toggle title
Following the previous commits where we left the quick toggle title
open for the new title scheme, set the titles for all network pills
to what currently is the "default" name.

That means, we pull the device name from Network Manager for devices,
through the disambiguate function, and hardcode 'VPN' for VPN
connections.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2619>
2023-02-04 18:09:44 -03:00
Georges Basile Stavracas Neto
ab10b95d2d status/network: Bind subtitle
Instead of map the currently active items - for whatever they are -
into the quick toggle title, bind it to the subtitle.

This leaves room for setting static titles for device-backed
networks, such as Wi-Fi, Wired, Bluetooth, etc.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2619>
2023-02-04 17:46:54 -03:00
Georges Basile Stavracas Neto
ec397cf604 status/powerProfiles: Set profile name as subtitle
Just like with network names, set the name of the power profile as
the subtitle of the quick settings pill. This allows more of the
power profile name to be visible, and reduces chances of ellipsing
the name.

Rename the 'title' variable to 'name', to be more semantic and
better represent what it is now.

Related: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5770
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2619>
2023-02-04 14:50:36 -03:00
Georges Basile Stavracas Neto
88dcf695c0 style: Increase quick items' height
As per design feedback, increase it to 48px height, so as to give
items more room for the subtitles.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2619>
2023-02-04 14:50:36 -03:00
Georges Basile Stavracas Neto
1619b8f95d quickSettings: Add 'subtitle' property
Add a subtitle label to QuickToggle, with a less prominent font.
Make the subtitle invisible when no text is present.

This new property will be used by next commits to implement quick
settings with a static title, and a changing subtitle.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2619>
2023-02-04 14:50:36 -03:00
Georges Basile Stavracas Neto
2d2172da32 quickSettings: Rename 'label' property to 'title'
We'll soon add a subtitle, so rename the label property to something
that is a bit more semantic.Add a warning when trying to set the old
'label' property.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2619>
2023-02-04 14:50:36 -03:00
Kukuh Syafaat
4786109adf Update Indonesian translation 2023-02-04 05:31:47 +00:00
Kukuh Syafaat
a2fc708a21 Update Indonesian translation 2023-02-04 05:23:34 +00:00
Yuri Chornoivan
9ac8a68fe4 Update Ukrainian translation 2023-02-03 19:39:15 +00:00
Florian Müllner
007778880b extension-tool: Fix falling back to GSettings
When we switched the tool to the public Extensions service, the
fallback to GSettings broke in the case GNOME is installed but
not running (because the service can be autostarted, albeit it'll
fail later).

Fix this by also falling back when we don't get a response from
gnome-shell.

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

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2552>
2023-02-03 17:23:42 +00:00
Florian Müllner
e86a0b32c2 croco: Use g_string_free() return value
glib now warns if the return value is not used, so use the API as
intended instead of assigning the character data separately before
freeing the GString.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2625>
2023-02-03 14:54:59 +00:00
Emin Tufan Çetin
7acc345a2c Update Turkish translation 2023-02-03 13:23:29 +00:00
Ekaterine Papava
77b9745eba Update Georgian translation 2023-02-03 04:58:51 +00:00
Florian Müllner
e12a0443e9 st/texture-cache: Port to StIconTheme
It's finally time to pull the switch and replace GtkIconTheme with
out modified copy. This removes another Gtk dependency that ties
us to the old Gtk3.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2620>
2023-02-02 20:45:06 +00:00
Florian Müllner
69caefc541 st/icon-theme: Stop using GdkRGBA for coloring symbolics
We already have ClutterColor to represent a color, and StIconColors
to hold color information for symbolics from CSS. Now that we moved
GtkIconTheme in-tree, we can make use of those types instead of
translating back and forth from GdkRGBA.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2620>
2023-02-02 20:45:06 +00:00
Florian Müllner
bf00a7957b st/icon-theme: Change namespace to ST
We are still linking to GTK, and extensions may import GTK for
whatever reason, so avoid conflicts by moving the copied GTK
code into our namespace.

With that and the previous adjustments, the new code is now
finally buildable.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2620>
2023-02-02 20:45:06 +00:00
Florian Müllner
934faaacef st/icon-theme: Start using g_autofree
We don't have to refrain from g_auto for compatibility reasons,
so start using it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2620>
2023-02-02 20:45:06 +00:00
Florian Müllner
c908e220db st/icon-theme: Replace slice allocator
Its use has been discouraged for years, and glib recently deprecated
it officially (while turning it around a small wrapper around malloc).

Don't let it sneak back in through some old GTK3 code.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2620>
2023-02-02 20:45:06 +00:00
Florian Müllner
b10a0ec45b st/icon-theme: Replace g_get_current_time ()
GTimeVal has been deprecated a while ago, don't let it sneak back
in via some old GTK code.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2620>
2023-02-02 20:45:06 +00:00
Florian Müllner
d65de0df60 st/icon-theme: Use standard GObject macros
The GTK code predates the G_DECLARE_*() macros, so it's under- standable
that it still does all the boilerplate manually. We
don't have that excuse in 2023, so move the the standard macros.

There is no reason for GtkIconTheme to be derivable, and as that
means that the instance struct itself is private, stop adding
separate private instance data.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2620>
2023-02-02 20:45:06 +00:00
Florian Müllner
bdd14e3431 st/icon-theme: Replace GTK's custom i18n support
GTK uses its own private i18n header, which most notably defines
an I_() macro for interning static strings. That may be a worthwhile
idea for the entire codebase, but as it's out of scope for this
change set, just use the standard i18n support from glib for now.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2620>
2023-02-02 20:45:06 +00:00
Florian Müllner
0c3ce595b9 st/icon-theme: Remove GdkScreen/GtkStyleContext integration
Those are GTK internals that don't apply to us. Without the distinct
"screen's default icon theme", we also don't need custom theme support,
and can just always track the theme from StSettings.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2620>
2023-02-02 20:45:06 +00:00
Florian Müllner
57f67224bb st/icon-theme: Remove deprecated API
We aren't subject to GTK3's API stability, so there's no reason
for dragging old stuff along.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2620>
2023-02-02 20:45:06 +00:00
Florian Müllner
5e44e2f3cd st/icon-theme: Replace GTK debug code
We won't copy GTK's debug logging, so either remove messages or
turn them into reglar g_debug() calls.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2620>
2023-02-02 20:45:06 +00:00
Florian Müllner
0919932f4b st/icon-theme: Remove Win32 compatibility
gnome-shell does not run on Windows, and if someone was crazy enough
to try to make it work, the icon theme support would be the least
of their worries.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2620>
2023-02-02 20:45:06 +00:00
Florian Müllner
88b26996ec st/icon-theme: Standard types
The GTK code dates back to a time when "gchar" and friends were
still considered a good idea. Replace them with standard types
except for "guint" (I'm lazy) and GtkIconCache code that relies
on glib's byte order macros.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2620>
2023-02-02 20:45:06 +00:00
Florian Müllner
3dc3170f92 st/icon-theme: Use regular idle source over gdk_threads
The shell code isn't threaded, so there's no reason for pulling
in Gdk's thread support.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2620>
2023-02-02 20:45:06 +00:00
Florian Müllner
8d2e40f8bd st/icon-theme: Define default icon theme
In GTK, the value comes from another private header. It doesn't
make sense to copy it in its entirety, just define the one value
we actually need ourselves.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2620>
2023-02-02 20:45:06 +00:00
Florian Müllner
ace40b625f st/icon-theme: Remove unused header
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2620>
2023-02-02 20:45:06 +00:00
Florian Müllner
6607bf0928 st/icon-theme: Merge private header
GtkIconTheme's headers are split between a public and a private
one. We won't expose the icon theme API at all, nor do we need
to access anything beyond what the texture cache is currently
using, so merge the private header into the implementation.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2620>
2023-02-02 20:45:06 +00:00
Florian Müllner
b9280b0f39 st/icon-theme: Copy GdkPixbuf utility code
GTK includes a couple of shared private GdkPixbuf utilities
functions. We don't have a need for sharing that code, just
for the bits that are used by the IconTheme code.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2620>
2023-02-02 20:45:06 +00:00
Florian Müllner
93319e7c11 st/icon-theme: Copy GTK3 code in-tree
GTK4 changed icon loading significantly, it is now closely tied
to snapshots and paintables. This makes a port highly unrealistic,
so to avoid staying stuck on GTK3 forever, copy the relevant code
into the tree.

The code is unmodified except for the include names and replacing
some stray tab indentation. It is still full of GTK internals, so
it will take a while before we can actually build it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2620>
2023-02-02 20:45:06 +00:00
Florian Müllner
83d427fc2b st/texture-cache: Remove unused struct member
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2620>
2023-02-02 20:45:06 +00:00
Florian Müllner
888a0ad623 shell/window-preview-layout: Add precondition checks
It's good practice to guard public API against programmer errors,
so do that.

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

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2622>
2023-02-02 19:56:08 +00:00