Skip to content
Commits on Source (6)
gnome-control-center (1:44.0-1ubuntu3) lunar; urgency=medium
* debian/patches: Recolor widget animations instead of using many.
Reduce gresources by just providing default yaru color for animations
and while keeping the same colors recoloring them at runtime.
* debian/patch: Prevent duplicate sound device entries
* debian/patches: Do not crash when closing the color panel (LP: #2009913)
-- Marco Trevisan (Treviño) <marco@ubuntu.com> Thu, 23 Mar 2023 06:36:00 +0100
gnome-control-center (1:44.0-1ubuntu2) lunar; urgency=medium
* Drop (again) update_region() call with NULL argument (LP: #2012552)
......
From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <mail@3v1n0.net>
Date: Tue, 21 Mar 2023 15:32:34 +0100
Subject: color-panel: Do not try to access to null pointer in destruction
During destruction toolbar_devices is nullified, but
gtk_widget_in_destruction() does not perform a NULL-check, and we could
crash:
==22708== Invalid read of size 1
==22708== at 0x505CC0B: gtk_widget_in_destruction (gtkwidget.c:10643)
==22708== by 0x189553: gcm_prefs_list_box_row_selected_cb (cc-color-panel.c:1708)
==22708== by 0x4A61714: g_cclosure_marshal_VOID__OBJECTv (gmarshal.c:1910)
==22708== by 0x4A5E148: _g_closure_invoke_va (gclosure.c:895)
==22708== by 0x4A784F3: g_signal_emit_valist (gsignal.c:3462)
==22708== by 0x4A78722: g_signal_emit (gsignal.c:3612)
==22708== by 0x4F5B121: gtk_list_box_remove (gtklistbox.c:2420)
==22708== by 0x4F5B222: gtk_list_box_dispose (gtklistbox.c:439)
==22708== by 0x4A63338: g_object_unref (gobject.c:3891)
==22708== by 0x4EAA994: gtk_box_dispose (gtkbox.c:230)
==22708== by 0x4A63338: g_object_unref (gobject.c:3891)
==22708== by 0x4EAA994: gtk_box_dispose (gtkbox.c:230)
==22708== Address 0xfffffffffffffeb2 is not stack'd, malloc'd or (recently) free'd
See: https://bugs.launchpad.net/ubuntu/+source/gnome-control-center/+bug/2009913
Origin: https://gitlab.gnome.org/GNOME/gnome-control-center/-/commit/4b40073
---
panels/color/cc-color-panel.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/panels/color/cc-color-panel.c b/panels/color/cc-color-panel.c
index 42820c7..9af17ef 100644
--- a/panels/color/cc-color-panel.c
+++ b/panels/color/cc-color-panel.c
@@ -1705,7 +1705,8 @@ static void
gcm_prefs_list_box_row_selected_cb (CcColorPanel *panel,
GtkListBoxRow *row)
{
- if (gtk_widget_in_destruction (panel->toolbar_devices))
+ if (!panel->toolbar_devices ||
+ gtk_widget_in_destruction (panel->toolbar_devices))
return;
gcm_prefs_refresh_toolbar_buttons (panel);
panels-mouse-Do-not-bind-sensitivity-to-touch-pad-setting.patch
color-panel-Do-not-try-to-access-to-null-pointer-in-destr.patch
sound-Prevent-duplicate-sound-device-entries.patch
keyboard-Allow-disabling-alternate-characters-key.patch
keyboard-For-xkb-options-have-Layout-default-toggle-and-N.patch
keyboard-Avoid-modifying-xkb-options-when-user-changes-n.patch
......
From: velsinki <112010-velsinki@users.noreply.gitlab.gnome.org>
Date: Thu, 16 Mar 2023 22:35:11 +0100
Subject: sound: Prevent duplicate sound device entries
For unknown reasons, GVC mixer control can sometimes signal a new
device with the same id as one that was added before. This means that
in `device_added_cb`, a duplicate entry with that id is created, in my
case with a different name. However, the last one added is valid, but
that one cannot be selected because all other logic in the sound panel
assumes the first hit in `get_iter` is valid. This breaks sound input
selection then.
The fix is easy; only add a new list entry if none with that id exists.
Origin: https://gitlab.gnome.org/GNOME/gnome-control-center/-/commit/eacef5a
---
panels/sound/cc-device-combo-box.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/panels/sound/cc-device-combo-box.c b/panels/sound/cc-device-combo-box.c
index 5db60a0..b0f5d47 100644
--- a/panels/sound/cc-device-combo-box.c
+++ b/panels/sound/cc-device-combo-box.c
@@ -33,6 +33,8 @@ struct _CcDeviceComboBox
G_DEFINE_TYPE (CcDeviceComboBox, cc_device_combo_box, GTK_TYPE_COMBO_BOX)
+static gboolean get_iter (CcDeviceComboBox *self, guint id, GtkTreeIter *iter);
+
static void
device_added_cb (CcDeviceComboBox *self,
guint id)
@@ -65,7 +67,9 @@ device_added_cb (CcDeviceComboBox *self,
if (gvc_mixer_ui_device_get_icon_name (device) != NULL)
icon_name = g_strdup_printf ("%s-symbolic", gvc_mixer_ui_device_get_icon_name (device));
- gtk_list_store_append (self->device_model, &iter);
+ if (!get_iter (self, id, &iter))
+ gtk_list_store_append (self->device_model, &iter);
+
gtk_list_store_set (self->device_model, &iter,
0, label,
1, icon_name,
......@@ -39,9 +39,9 @@ Subject: Adapts the region capplet and the language chooser in the user
---
panels/common/cc-common-language.c | 137 +++++++++++++++++++++++++++++------
panels/common/cc-common-language.h | 4 +
panels/region/cc-region-panel.c | 124 +++++++++++++++++++++++--------
panels/region/cc-region-panel.c | 130 ++++++++++++++++++++++++---------
panels/user-accounts/cc-user-panel.c | 12 ++-
4 files changed, 219 insertions(+), 58 deletions(-)
4 files changed, 223 insertions(+), 60 deletions(-)
diff --git a/panels/common/cc-common-language.c b/panels/common/cc-common-language.c
index 9357c3e..c923d82 100644
......@@ -269,7 +269,7 @@ index 1f578b7..2e5a446 100644
+
G_END_DECLS
diff --git a/panels/region/cc-region-panel.c b/panels/region/cc-region-panel.c
index 00190f5..0547778 100644
index 00190f5..5961654 100644
--- a/panels/region/cc-region-panel.c
+++ b/panels/region/cc-region-panel.c
@@ -237,27 +237,26 @@ set_localed_locale (CcRegionPanel *self)
......@@ -421,7 +421,7 @@ index 00190f5..0547778 100644
update_user_region_row (self);
}
@@ -609,6 +651,16 @@ set_login_button_visibility (CcRegionPanel *self)
@@ -629,6 +671,16 @@ set_login_button_visibility (CcRegionPanel *self)
/* Callbacks */
......@@ -438,7 +438,7 @@ index 00190f5..0547778 100644
static void
on_localed_properties_changed (GDBusProxy *localed_proxy,
GVariant *changed_properties,
@@ -617,33 +669,43 @@ on_localed_properties_changed (GDBusProxy *localed_proxy,
@@ -637,33 +689,43 @@ on_localed_properties_changed (GDBusProxy *localed_proxy,
{
g_autoptr(GVariant) v = NULL;
......
debian/ubuntu-logo-icon.png
debian/ubuntu-logo-dark.png
debian/patches/ubuntu/mouse-Add-animations-following-the-accent-colors.patch