Don't accidentally reset the value of compose key
Settings was accidentally resetting the value of /org/gnome/desktop/input-sources/xkb-options accidentally at startup. Related: RHEL-4226
This commit is contained in:
parent
4b0f2a120c
commit
188fc727d9
@ -14,7 +14,7 @@
|
||||
|
||||
Name: gnome-control-center
|
||||
Version: 40.0
|
||||
Release: 36%{?dist}
|
||||
Release: 37%{?dist}
|
||||
Summary: Utilities to configure the GNOME desktop
|
||||
|
||||
License: GPLv2+ and CC-BY-SA
|
||||
@ -66,6 +66,9 @@ Patch18: power-button-action-server.patch
|
||||
# https://issues.redhat.com/browse/RHEL-50729
|
||||
Patch19: network-dont-disambiguate-ethernet-device-names.patch
|
||||
|
||||
# https://issues.redhat.com/browse/RHEL-4226
|
||||
Patch20: keyboard-dont-force-compose-key-value.patch
|
||||
|
||||
BuildRequires: chrpath
|
||||
BuildRequires: cups-devel
|
||||
BuildRequires: desktop-file-utils
|
||||
@ -255,6 +258,10 @@ chrpath --delete $RPM_BUILD_ROOT%{_bindir}/gnome-control-center
|
||||
%dir %{_datadir}/gnome/wm-properties
|
||||
|
||||
%changelog
|
||||
* Thu Jan 23 2025 Felipe Borges <feborges@redhat.com> - 40.0-36
|
||||
- Don't accidentally set value of compose key when loading Keyboard settings
|
||||
Related: RHEL-4226
|
||||
|
||||
* Thu Jan 23 2025 Felipe Borges <feborges@redhat.com> - 40.0-35
|
||||
- Don't disambiguate ethernet network devices names
|
||||
Related: RHEL-50729
|
||||
|
210
keyboard-dont-force-compose-key-value.patch
Normal file
210
keyboard-dont-force-compose-key-value.patch
Normal file
@ -0,0 +1,210 @@
|
||||
From f00c4890be8a3d7e6e8f988e3baa9491bee496e7 Mon Sep 17 00:00:00 2001
|
||||
From: Ian Douglas Scott <idscott@system76.com>
|
||||
Date: Wed, 9 Dec 2020 09:30:32 -0800
|
||||
Subject: [PATCH] keyboard: Create CcXkbModifierDialog only when used
|
||||
|
||||
This should avoid issues where this setting is changed just by opening
|
||||
Gnome Control Center, as reported in
|
||||
https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/918
|
||||
|
||||
This should also mean someone can tweak the settings as desired outside
|
||||
Gnome Control Center, and not have them clobbered unless they open the
|
||||
dialog in g-c-c.
|
||||
|
||||
(cherry picked from commit edffd1b2959bb2ad1e27b441a937a73331f3ba1f)
|
||||
|
||||
keyboard: Rename `XkbOption` and `XkbModifier` with `Cc` prefix
|
||||
|
||||
(cherry picked from commit e224e5177a0bc1e9b4c13fb9e5bac0ff9bef8402)
|
||||
---
|
||||
panels/keyboard/cc-keyboard-panel.c | 21 +++++++++------------
|
||||
panels/keyboard/cc-xkb-modifier-dialog.c | 18 +++++++++---------
|
||||
panels/keyboard/cc-xkb-modifier-dialog.h | 8 ++++----
|
||||
panels/keyboard/cc-xkb-modifier-dialog.ui | 1 -
|
||||
4 files changed, 22 insertions(+), 26 deletions(-)
|
||||
|
||||
diff --git a/panels/keyboard/cc-keyboard-panel.c b/panels/keyboard/cc-keyboard-panel.c
|
||||
index 7a3fb419b..80d75a249 100644
|
||||
--- a/panels/keyboard/cc-keyboard-panel.c
|
||||
+++ b/panels/keyboard/cc-keyboard-panel.c
|
||||
@@ -46,9 +46,6 @@ struct _CcKeyboardPanel
|
||||
GtkLabel *value_input_switch;
|
||||
GSettings *keybindings_settings;
|
||||
|
||||
- /* "Type Special Characters" section */
|
||||
- CcXkbModifierDialog *alt_chars_dialog;
|
||||
- CcXkbModifierDialog *compose_dialog;
|
||||
GSettings *input_source_settings;
|
||||
GtkListBox *special_chars_list;
|
||||
GtkListBoxRow *alt_chars_row;
|
||||
@@ -66,11 +63,11 @@ enum {
|
||||
PROP_PARAMETERS
|
||||
};
|
||||
|
||||
-static const XkbModifier LV3_MODIFIER = {
|
||||
+static const CcXkbModifier LV3_MODIFIER = {
|
||||
"lv3:",
|
||||
N_("Alternate Characters Key"),
|
||||
N_("The alternate characters key can be used to enter additional characters. These are sometimes printed as a third-option on your keyboard."),
|
||||
- (XkbOption[]){
|
||||
+ (CcXkbOption[]){
|
||||
{ NC_("keyboard key", "Left Alt"), "lv3:lalt_switch" },
|
||||
{ NC_("keyboard key", "Right Alt"), "lv3:ralt_switch" },
|
||||
{ NC_("keyboard key", "Left Super"), "lv3:lwin_switch" },
|
||||
@@ -82,13 +79,13 @@ static const XkbModifier LV3_MODIFIER = {
|
||||
"lv3:ralt_switch",
|
||||
};
|
||||
|
||||
-static const XkbModifier COMPOSE_MODIFIER = {
|
||||
+static const CcXkbModifier COMPOSE_MODIFIER = {
|
||||
"compose:",
|
||||
N_("Compose Key"),
|
||||
N_("The compose key allows a wide variety of characters to be entered. To use it, press compose then a sequence of characters. "
|
||||
" For example, compose key followed by <b>C</b> and <b>o</b> will enter <b>©</b>, "
|
||||
"<b>a</b> followed by <b>'</b> will enter <b>á</b>."),
|
||||
- (XkbOption[]){
|
||||
+ (CcXkbOption[]){
|
||||
{ NC_("keyboard key", "Left Alt"), "compose:lalt" },
|
||||
{ NC_("keyboard key", "Right Alt"), "compose:ralt" },
|
||||
{ NC_("keyboard key", "Left Super"), "compose:lwin" },
|
||||
@@ -116,17 +113,20 @@ special_chars_activated (GtkWidget *button,
|
||||
GtkListBoxRow *row,
|
||||
CcKeyboardPanel *self)
|
||||
{
|
||||
+ const CcXkbModifier *modifier;
|
||||
GtkWindow *window, *dialog;
|
||||
|
||||
window = GTK_WINDOW (cc_shell_get_toplevel (cc_panel_get_shell (CC_PANEL (self))));
|
||||
|
||||
if (row == self->alt_chars_row)
|
||||
- dialog = GTK_WINDOW (self->alt_chars_dialog);
|
||||
+ modifier = &LV3_MODIFIER;
|
||||
else if (row == self->compose_row)
|
||||
- dialog = GTK_WINDOW (self->compose_dialog);
|
||||
+ modifier = &COMPOSE_MODIFIER;
|
||||
else
|
||||
return;
|
||||
|
||||
+ dialog = GTK_WINDOW (cc_xkb_modifier_dialog_new (self->input_source_settings, modifier));
|
||||
+
|
||||
gtk_window_set_transient_for (dialog, window);
|
||||
gtk_widget_show (GTK_WIDGET (dialog));
|
||||
}
|
||||
@@ -289,7 +289,4 @@ cc_keyboard_panel_init (CcKeyboardPanel *self)
|
||||
NULL,
|
||||
(gpointer)&COMPOSE_MODIFIER,
|
||||
NULL);
|
||||
-
|
||||
- self->alt_chars_dialog = cc_xkb_modifier_dialog_new (self->input_source_settings, &LV3_MODIFIER);
|
||||
- self->compose_dialog = cc_xkb_modifier_dialog_new (self->input_source_settings, &COMPOSE_MODIFIER);
|
||||
}
|
||||
diff --git a/panels/keyboard/cc-xkb-modifier-dialog.c b/panels/keyboard/cc-xkb-modifier-dialog.c
|
||||
index 78ddb48ff..ae6326a96 100644
|
||||
--- a/panels/keyboard/cc-xkb-modifier-dialog.c
|
||||
+++ b/panels/keyboard/cc-xkb-modifier-dialog.c
|
||||
@@ -36,7 +36,7 @@ struct _CcXkbModifierDialog
|
||||
HdyActionRow *switch_row;
|
||||
|
||||
GSettings *input_source_settings;
|
||||
- const XkbModifier *modifier;
|
||||
+ const CcXkbModifier *modifier;
|
||||
GSList *radio_group;
|
||||
};
|
||||
|
||||
@@ -47,10 +47,10 @@ static const gchar *custom_css =
|
||||
" padding: 12px"
|
||||
"}";
|
||||
|
||||
-static const XkbOption*
|
||||
-get_xkb_option_from_name (const XkbModifier *modifier, const gchar* name)
|
||||
+static const CcXkbOption*
|
||||
+get_xkb_option_from_name (const CcXkbModifier *modifier, const gchar* name)
|
||||
{
|
||||
- const XkbOption *options = modifier->options;
|
||||
+ const CcXkbOption *options = modifier->options;
|
||||
int i;
|
||||
|
||||
for (i = 0; options[i].label && options[i].xkb_option; i++)
|
||||
@@ -84,7 +84,7 @@ update_active_radio (CcXkbModifierDialog *self)
|
||||
{
|
||||
g_auto(GStrv) options = NULL;
|
||||
GtkRadioButton *rightalt_radio;
|
||||
- const XkbOption *default_option;
|
||||
+ const CcXkbOption *default_option;
|
||||
guint i;
|
||||
|
||||
options = g_settings_get_strv (self->input_source_settings, "xkb-options");
|
||||
@@ -246,7 +246,7 @@ static void
|
||||
add_radio_buttons (CcXkbModifierDialog *self)
|
||||
{
|
||||
GtkWidget *row, *radio_button, *label, *last_button = NULL;
|
||||
- XkbOption *options = self->modifier->options;
|
||||
+ CcXkbOption *options = self->modifier->options;
|
||||
int i;
|
||||
|
||||
for (i = 0; options[i].label && options[i].xkb_option; i++)
|
||||
@@ -310,7 +310,7 @@ cc_xkb_modifier_dialog_init (CcXkbModifierDialog *self)
|
||||
|
||||
CcXkbModifierDialog *
|
||||
cc_xkb_modifier_dialog_new (GSettings *input_settings,
|
||||
- const XkbModifier *modifier)
|
||||
+ const CcXkbModifier *modifier)
|
||||
{
|
||||
CcXkbModifierDialog *self;
|
||||
|
||||
@@ -336,8 +336,8 @@ xcb_modifier_transform_binding_to_label (GValue *value,
|
||||
GVariant *variant,
|
||||
gpointer user_data)
|
||||
{
|
||||
- const XkbModifier *modifier = user_data;
|
||||
- const XkbOption *entry = NULL;
|
||||
+ const CcXkbModifier *modifier = user_data;
|
||||
+ const CcXkbOption *entry = NULL;
|
||||
const char **items;
|
||||
guint i;
|
||||
|
||||
diff --git a/panels/keyboard/cc-xkb-modifier-dialog.h b/panels/keyboard/cc-xkb-modifier-dialog.h
|
||||
index 1b2d180a4..91efbcdde 100644
|
||||
--- a/panels/keyboard/cc-xkb-modifier-dialog.h
|
||||
+++ b/panels/keyboard/cc-xkb-modifier-dialog.h
|
||||
@@ -28,21 +28,21 @@ typedef struct
|
||||
{
|
||||
gchar *label;
|
||||
gchar *xkb_option;
|
||||
-} XkbOption;
|
||||
+} CcXkbOption;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
gchar *prefix;
|
||||
gchar *title;
|
||||
gchar *description;
|
||||
- XkbOption *options;
|
||||
+ CcXkbOption *options;
|
||||
gchar *default_option;
|
||||
-} XkbModifier;
|
||||
+} CcXkbModifier;
|
||||
|
||||
#define CC_TYPE_XKB_MODIFIER_DIALOG (cc_xkb_modifier_dialog_get_type())
|
||||
G_DECLARE_FINAL_TYPE (CcXkbModifierDialog, cc_xkb_modifier_dialog, CC, XKB_MODIFIER_DIALOG, GtkDialog)
|
||||
|
||||
-CcXkbModifierDialog *cc_xkb_modifier_dialog_new (GSettings *input_settings, const XkbModifier*);
|
||||
+CcXkbModifierDialog *cc_xkb_modifier_dialog_new (GSettings *input_settings, const CcXkbModifier*);
|
||||
|
||||
gboolean xcb_modifier_transform_binding_to_label (GValue*, GVariant*, gpointer);
|
||||
|
||||
diff --git a/panels/keyboard/cc-xkb-modifier-dialog.ui b/panels/keyboard/cc-xkb-modifier-dialog.ui
|
||||
index 8c2cf8e87..851b92d6b 100644
|
||||
--- a/panels/keyboard/cc-xkb-modifier-dialog.ui
|
||||
+++ b/panels/keyboard/cc-xkb-modifier-dialog.ui
|
||||
@@ -6,7 +6,6 @@
|
||||
<property name="resizable">False</property>
|
||||
<property name="default_width">500</property>
|
||||
<property name="type_hint">dialog</property>
|
||||
- <signal name="delete-event" handler="gtk_widget_hide_on_delete" />
|
||||
<child internal-child="vbox">
|
||||
<object class="GtkBox">
|
||||
<property name="can_focus">False</property>
|
||||
--
|
||||
2.34.1
|
||||
|
Loading…
Reference in New Issue
Block a user