Disable AccessX on exit if no settings changed (#816764)
This commit is contained in:
parent
06e87f8bac
commit
c676b5d6aa
130
g-s-d-3.6.4-reset-a11y-keyboard.patch
Normal file
130
g-s-d-3.6.4-reset-a11y-keyboard.patch
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
From a53f1c87be48eae461b4e634470a508def9e1f88 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Bastien Nocera <hadess@hadess.net>
|
||||||
|
Date: Mon, 28 Jan 2013 17:58:50 +0100
|
||||||
|
Subject: [PATCH 1/2] a11y-keyboard: Use macro for everything mask
|
||||||
|
|
||||||
|
Less to copy/paste
|
||||||
|
---
|
||||||
|
plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c | 21 ++++++++++++---------
|
||||||
|
1 file changed, 12 insertions(+), 9 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c b/plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c
|
||||||
|
index a227dd4..afcc0c4 100644
|
||||||
|
--- a/plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c
|
||||||
|
+++ b/plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c
|
||||||
|
@@ -68,6 +68,17 @@ struct GsdA11yKeyboardManagerPrivate
|
||||||
|
NotifyNotification *notification;
|
||||||
|
};
|
||||||
|
|
||||||
|
+#define DEFAULT_XKB_SET_CONTROLS_MASK XkbSlowKeysMask | \
|
||||||
|
+ XkbBounceKeysMask | \
|
||||||
|
+ XkbStickyKeysMask | \
|
||||||
|
+ XkbMouseKeysMask | \
|
||||||
|
+ XkbMouseKeysAccelMask | \
|
||||||
|
+ XkbAccessXKeysMask | \
|
||||||
|
+ XkbAccessXTimeoutMask | \
|
||||||
|
+ XkbAccessXFeedbackMask | \
|
||||||
|
+ XkbControlsEnabledMask
|
||||||
|
+
|
||||||
|
+
|
||||||
|
static void gsd_a11y_keyboard_manager_class_init (GsdA11yKeyboardManagerClass *klass);
|
||||||
|
static void gsd_a11y_keyboard_manager_init (GsdA11yKeyboardManager *a11y_keyboard_manager);
|
||||||
|
static void gsd_a11y_keyboard_manager_finalize (GObject *object);
|
||||||
|
@@ -313,15 +324,7 @@ set_server_from_gsettings (GsdA11yKeyboardManager *manager)
|
||||||
|
|
||||||
|
gdk_error_trap_push ();
|
||||||
|
XkbSetControls (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),
|
||||||
|
- XkbSlowKeysMask |
|
||||||
|
- XkbBounceKeysMask |
|
||||||
|
- XkbStickyKeysMask |
|
||||||
|
- XkbMouseKeysMask |
|
||||||
|
- XkbMouseKeysAccelMask |
|
||||||
|
- XkbAccessXKeysMask |
|
||||||
|
- XkbAccessXTimeoutMask |
|
||||||
|
- XkbAccessXFeedbackMask |
|
||||||
|
- XkbControlsEnabledMask,
|
||||||
|
+ DEFAULT_XKB_SET_CONTROLS_MASK,
|
||||||
|
desc);
|
||||||
|
|
||||||
|
XkbFreeKeyboard (desc, XkbAllComponentsMask, True);
|
||||||
|
--
|
||||||
|
1.8.0.1
|
||||||
|
|
||||||
|
|
||||||
|
From bff2c30670731ba79c9eb7e0d0e90efb780a1bd0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Bastien Nocera <hadess@hadess.net>
|
||||||
|
Date: Mon, 28 Jan 2013 17:59:21 +0100
|
||||||
|
Subject: [PATCH 2/2] a11y-keyboard: Disable everything on exit if no settings
|
||||||
|
changed
|
||||||
|
|
||||||
|
The default setting in GDM is to have the keys enablable
|
||||||
|
through keyboard shortcuts, and this gets inherited by the
|
||||||
|
user sessions.
|
||||||
|
|
||||||
|
The problem is that non-GNOME users won't have anything
|
||||||
|
changing those defaults back to their expected values
|
||||||
|
(so that Slow Keys don't triggered for example), and this
|
||||||
|
causes problems:
|
||||||
|
https://bugzilla.redhat.com/show_bug.cgi?id=816764
|
||||||
|
|
||||||
|
If the user doesn't change anything to the defaults in the GDM
|
||||||
|
session, we revert to the pre-"GNOME session" values.
|
||||||
|
|
||||||
|
https://bugzilla.gnome.org/show_bug.cgi?id=685063
|
||||||
|
---
|
||||||
|
plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c | 25 +++++++++++++++++++++++
|
||||||
|
1 file changed, 25 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c b/plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c
|
||||||
|
index afcc0c4..7dbf2e2 100644
|
||||||
|
--- a/plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c
|
||||||
|
+++ b/plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c
|
||||||
|
@@ -63,6 +63,8 @@ struct GsdA11yKeyboardManagerPrivate
|
||||||
|
GtkWidget *preferences_dialog;
|
||||||
|
GtkStatusIcon *status_icon;
|
||||||
|
|
||||||
|
+ XkbDescRec *desc;
|
||||||
|
+
|
||||||
|
GSettings *settings;
|
||||||
|
|
||||||
|
NotifyNotification *notification;
|
||||||
|
@@ -948,6 +950,9 @@ start_a11y_keyboard_idle_cb (GsdA11yKeyboardManager *manager)
|
||||||
|
|
||||||
|
set_devicepresence_handler (manager);
|
||||||
|
|
||||||
|
+ /* Get the original configuration from the server */
|
||||||
|
+ manager->priv->desc = get_xkb_desc_rec (manager);
|
||||||
|
+
|
||||||
|
event_mask = XkbControlsNotifyMask;
|
||||||
|
event_mask |= XkbAccessXNotifyMask; /* make default when AXN_AXKWarning works */
|
||||||
|
|
||||||
|
@@ -993,6 +998,26 @@ gsd_a11y_keyboard_manager_stop (GsdA11yKeyboardManager *manager)
|
||||||
|
|
||||||
|
g_debug ("Stopping a11y_keyboard manager");
|
||||||
|
|
||||||
|
+ if (p->desc != NULL) {
|
||||||
|
+ XkbDescRec *desc;
|
||||||
|
+
|
||||||
|
+ desc = get_xkb_desc_rec (manager);
|
||||||
|
+ if (desc != NULL) {
|
||||||
|
+ if (p->desc->ctrls->enabled_ctrls != desc->ctrls->enabled_ctrls) {
|
||||||
|
+ gdk_error_trap_push ();
|
||||||
|
+ XkbSetControls (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),
|
||||||
|
+ DEFAULT_XKB_SET_CONTROLS_MASK,
|
||||||
|
+ p->desc);
|
||||||
|
+
|
||||||
|
+ XSync (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), FALSE);
|
||||||
|
+ gdk_error_trap_pop_ignored ();
|
||||||
|
+ }
|
||||||
|
+ XkbFreeKeyboard (desc, XkbAllComponentsMask, True);
|
||||||
|
+ }
|
||||||
|
+ XkbFreeKeyboard (p->desc, XkbAllComponentsMask, True);
|
||||||
|
+ p->desc = NULL;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (p->start_idle_id != 0) {
|
||||||
|
g_source_remove (p->start_idle_id);
|
||||||
|
p->start_idle_id = 0;
|
||||||
|
--
|
||||||
|
1.8.0.1
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
Name: gnome-settings-daemon
|
Name: gnome-settings-daemon
|
||||||
Version: 3.6.4
|
Version: 3.6.4
|
||||||
Release: 2%{?dist}
|
Release: 3%{?dist}
|
||||||
Summary: The daemon sharing settings from GNOME to GTK+/KDE applications
|
Summary: The daemon sharing settings from GNOME to GTK+/KDE applications
|
||||||
|
|
||||||
Group: System Environment/Daemons
|
Group: System Environment/Daemons
|
||||||
@ -10,6 +10,8 @@ URL: http://download.gnome.org/sources/%{name}
|
|||||||
Source: http://download.gnome.org/sources/%{name}/3.6/%{name}-%{version}.tar.xz
|
Source: http://download.gnome.org/sources/%{name}/3.6/%{name}-%{version}.tar.xz
|
||||||
# disable wacom for ppc/ppc64 (used on RHEL)
|
# disable wacom for ppc/ppc64 (used on RHEL)
|
||||||
Patch0: %{name}-3.5.4-ppc-no-wacom.patch
|
Patch0: %{name}-3.5.4-ppc-no-wacom.patch
|
||||||
|
# https://bugzilla.redhat.com/show_bug.cgi?id=816764
|
||||||
|
Patch1: g-s-d-3.6.4-reset-a11y-keyboard.patch
|
||||||
# https://bugzilla.gnome.org/show_bug.cgi?id=680689
|
# https://bugzilla.gnome.org/show_bug.cgi?id=680689
|
||||||
Patch2: 0001-power-and-media-keys-Use-logind-for-suspending-and-r.patch
|
Patch2: 0001-power-and-media-keys-Use-logind-for-suspending-and-r.patch
|
||||||
# Wacom OSD window
|
# Wacom OSD window
|
||||||
@ -83,6 +85,7 @@ The %{name}-updates package contains the updates plugin for %{name}
|
|||||||
%patch0 -p1 -b .ppc-no-wacom
|
%patch0 -p1 -b .ppc-no-wacom
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
%patch1 -p1
|
||||||
%patch2 -p1
|
%patch2 -p1
|
||||||
%patch3 -p1 -b .wacom-osd-window
|
%patch3 -p1 -b .wacom-osd-window
|
||||||
%patch4 -p1
|
%patch4 -p1
|
||||||
@ -266,6 +269,9 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || :
|
|||||||
%{_datadir}/dbus-1/interfaces/org.gnome.SettingsDaemonUpdates.xml
|
%{_datadir}/dbus-1/interfaces/org.gnome.SettingsDaemonUpdates.xml
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Jan 28 2013 Bastien Nocera <bnocera@redhat.com> 3.6.4-3
|
||||||
|
- Disable AccessX on exit if no settings changed (#816764)
|
||||||
|
|
||||||
* Mon Jan 14 2013 Dan Horák <dan[at]danny.cz> - 3.6.4-2
|
* Mon Jan 14 2013 Dan Horák <dan[at]danny.cz> - 3.6.4-2
|
||||||
- fix filelist for s390(x) (and ppc/ppc64 in RHEL)
|
- fix filelist for s390(x) (and ppc/ppc64 in RHEL)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user