[xfce4-settings/el5] Add patch to fix crash in usb handler. Fixes bug #717719 Apply patch to make sticky keys never timeo
Kevin Fenzi
kevin at fedoraproject.org
Sun Jul 3 15:10:14 UTC 2011
commit ddbaf5d0266496e02480b3822b98e8e797583c34
Author: Kevin Fenzi <kevin at scrye.com>
Date: Sun Jul 3 09:09:50 2011 -0600
Add patch to fix crash in usb handler. Fixes bug #717719
Apply patch to make sticky keys never timeout.
xfce4-settings-4.6.5-usbfix.patch | 42 ++++++++++++++
xfce4-settings-sticky-keys-timeout.patch | 92 ++++++++++++++++++++++++++++++
xfce4-settings.spec | 13 ++++-
3 files changed, 146 insertions(+), 1 deletions(-)
---
diff --git a/xfce4-settings-4.6.5-usbfix.patch b/xfce4-settings-4.6.5-usbfix.patch
new file mode 100644
index 0000000..9affd72
--- /dev/null
+++ b/xfce4-settings-4.6.5-usbfix.patch
@@ -0,0 +1,42 @@
+--- a/xfce4-settings-helper/pointers.c
++++ a/xfce4-settings-helper/pointers.c
+@@ -310,7 +310,7 @@ xfce_pointers_helper_change_feedback (XDevice *device,
+ gint threshold,
+ gdouble acceleration)
+ {
+- XFeedbackState *states;
++ XFeedbackState *states, *pt;
+ gint num_feedbacks;
+ XPtrFeedbackControl feedback;
+ gint n;
+@@ -323,10 +323,10 @@ xfce_pointers_helper_change_feedback (XDevice *device,
+ if (G_LIKELY (states))
+ {
+ /* get the pointer feedback class */
+- for (n = 0; n < num_feedbacks; n++)
++ for (pt = states, n = 0; n < num_feedbacks; n++)
+ {
+ /* find the pointer feedback class */
+- if (states->class == PtrFeedbackClass)
++ if (pt->class == PtrFeedbackClass)
+ {
+ if (acceleration > 0 || acceleration == -1)
+ {
+@@ -351,7 +351,7 @@ xfce_pointers_helper_change_feedback (XDevice *device,
+ /* create a new feedback */
+ feedback.class = PtrFeedbackClass;
+ feedback.length = sizeof (XPtrFeedbackControl);
+- feedback.id = states->id;
++ feedback.id = pt->id;
+ feedback.threshold = threshold;
+ feedback.accelNum = num;
+ feedback.accelDenom = denom;
+@@ -364,7 +364,7 @@ xfce_pointers_helper_change_feedback (XDevice *device,
+ }
+
+ /* advance the offset */
+- states = (XFeedbackState *) ((gchar *) states + states->length);
++ pt = (XFeedbackState *) ((gchar *) pt + pt->length);
+ }
+
+ /* cleanup */
diff --git a/xfce4-settings-sticky-keys-timeout.patch b/xfce4-settings-sticky-keys-timeout.patch
new file mode 100644
index 0000000..1b56068
--- /dev/null
+++ b/xfce4-settings-sticky-keys-timeout.patch
@@ -0,0 +1,92 @@
+--- xfce4-settings-4.6.5/xfce4-settings-helper/accessibility.c.xkbtimeout 2010-05-21 11:05:32.000000000 -0600
++++ xfce4-settings-4.6.5/xfce4-settings-helper/accessibility.c 2011-03-29 11:18:56.000000000 -0600
+@@ -192,6 +192,13 @@
+ /* we always change this, so add it to the mask */
+ SET_FLAG (mask, XkbControlsEnabledMask);
+
++ /* if setting sticky keys, we set expiration too */
++ if (HAS_FLAG (mask, XkbStickyKeysMask) ||
++ HAS_FLAG (mask, XkbSlowKeysMask) ||
++ HAS_FLAG (mask, XkbBounceKeysMask) ||
++ HAS_FLAG (mask, XkbMouseKeysMask))
++ SET_FLAG (mask, XkbAccessXTimeoutMask);
++
+ /* add the mouse keys values mask if needed */
+ if (HAS_FLAG (mask, XkbMouseKeysMask))
+ SET_FLAG (mask, XkbMouseKeysAccelMask);
+@@ -205,6 +212,8 @@
+ if (xfconf_channel_get_bool (helper->channel, "/StickyKeys", FALSE))
+ {
+ SET_FLAG (xkb->ctrls->enabled_ctrls, XkbStickyKeysMask);
++ UNSET_FLAG (xkb->ctrls->axt_ctrls_mask, XkbStickyKeysMask);
++ UNSET_FLAG (xkb->ctrls->axt_ctrls_values, XkbStickyKeysMask);
+
+ if (xfconf_channel_get_bool (helper->channel, "/StickyKeys/LatchToLock", FALSE))
+ SET_FLAG (xkb->ctrls->ax_options, XkbAX_LatchToLockMask);
+@@ -219,6 +228,8 @@
+ else
+ {
+ UNSET_FLAG (xkb->ctrls->enabled_ctrls, XkbStickyKeysMask);
++ SET_FLAG (xkb->ctrls->axt_ctrls_mask, XkbStickyKeysMask);
++ UNSET_FLAG (xkb->ctrls->axt_ctrls_values, XkbStickyKeysMask);
+ }
+ }
+
+@@ -228,13 +239,17 @@
+ if (xfconf_channel_get_bool (helper->channel, "/SlowKeys", FALSE))
+ {
+ SET_FLAG (xkb->ctrls->enabled_ctrls, XkbSlowKeysMask);
+-
++ UNSET_FLAG (xkb->ctrls->axt_ctrls_mask, XkbSlowKeysMask);
++ UNSET_FLAG (xkb->ctrls->axt_ctrls_values, XkbSlowKeysMask);
++
+ delay = xfconf_channel_get_int (helper->channel, "/SlowKeys/Delay", 100);
+ xkb->ctrls->slow_keys_delay = CLAMP (delay, 1, G_MAXUSHORT);
+ }
+ else
+ {
+ UNSET_FLAG (xkb->ctrls->enabled_ctrls, XkbSlowKeysMask);
++ SET_FLAG (xkb->ctrls->axt_ctrls_mask, XkbSlowKeysMask);
++ UNSET_FLAG (xkb->ctrls->axt_ctrls_values, XkbSlowKeysMask);
+ }
+ }
+
+@@ -244,13 +259,17 @@
+ if (xfconf_channel_get_bool (helper->channel, "/BounceKeys", FALSE))
+ {
+ SET_FLAG (xkb->ctrls->enabled_ctrls, XkbBounceKeysMask);
+-
++ UNSET_FLAG (xkb->ctrls->axt_ctrls_mask, XkbBounceKeysMask);
++ UNSET_FLAG (xkb->ctrls->axt_ctrls_values, XkbBounceKeysMask);
++
+ delay = xfconf_channel_get_int (helper->channel, "/BounceKeys/Delay", 100);
+ xkb->ctrls->debounce_delay = CLAMP (delay, 1, G_MAXUSHORT);
+ }
+ else
+ {
+ UNSET_FLAG (xkb->ctrls->enabled_ctrls, XkbBounceKeysMask);
++ SET_FLAG (xkb->ctrls->axt_ctrls_mask, XkbBounceKeysMask);
++ UNSET_FLAG (xkb->ctrls->axt_ctrls_values, XkbBounceKeysMask);
+ }
+ }
+
+@@ -260,7 +279,9 @@
+ if (xfconf_channel_get_bool (helper->channel, "/MouseKeys", FALSE))
+ {
+ SET_FLAG (xkb->ctrls->enabled_ctrls, XkbMouseKeysMask);
+-
++ UNSET_FLAG (xkb->ctrls->axt_ctrls_mask, XkbMouseKeysMask);
++ UNSET_FLAG (xkb->ctrls->axt_ctrls_values, XkbMouseKeysMask);
++
+ /* get values */
+ delay = xfconf_channel_get_int (helper->channel, "/MouseKeys/Delay", 160);
+ interval = xfconf_channel_get_int (helper->channel, "/MouseKeys/Interval", 20);
+@@ -288,6 +309,8 @@
+ else
+ {
+ UNSET_FLAG (xkb->ctrls->enabled_ctrls, XkbMouseKeysMask);
++ SET_FLAG (xkb->ctrls->axt_ctrls_mask, XkbMouseKeysMask);
++ UNSET_FLAG (xkb->ctrls->axt_ctrls_values, XkbMouseKeysMask);
+ UNSET_FLAG (mask, XkbMouseKeysAccelMask);
+ }
+ }
diff --git a/xfce4-settings.spec b/xfce4-settings.spec
index 7e76b18..ec33279 100644
--- a/xfce4-settings.spec
+++ b/xfce4-settings.spec
@@ -2,7 +2,7 @@
Name: xfce4-settings
Version: 4.6.5
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: Settings Manager for Xfce
Group: User Interface/Desktops
@@ -13,6 +13,11 @@ Source0: http://www.xfce.org/archive/src/xfce/%{name}/%{xfceversion}/%{na
# Upstream bug: http://bugzilla.xfce.org/show_bug.cgi?id=6236
Patch1: xfce4-settings-4.6.4-dsofix.patch
# use vendor's artwork
+# Already applied in 4.8
+Patch2: xfce4-settings-sticky-keys-timeout.patch
+# Already applied in 4.8
+Patch3: xfce4-settings-4.6.5-usbfix.patch
+
Patch10: xfce4-settings-4.6.0-fedora.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -41,6 +46,8 @@ This package includes the settings manager applications for the Xfce desktop.
%prep
%setup -q
%patch1 -p1 -b .dsofix
+%patch2 -p1 -b .sticky-keys
+%patch3 -p1 -b .usbfix
%patch10 -p1 -b .vendor
%build
@@ -125,6 +132,10 @@ rm -rf $RPM_BUILD_ROOT
%{_datadir}/applications/xfce*.desktop
%changelog
+* Sun Jul 03 2011 Kevin Fenzi <kevin at scrye.com> - 4.6.5-3
+- Add patch to fix crash in usb handler. Fixes bug #717719
+- Apply patch to make sticky keys never timeout.
+
* Sun Jul 25 2010 Kevin Fenzi <kevin at tummy.com> - 4.6.5-2
- Disable libcanberra/sounds
- Add vendor key
More information about the scm-commits
mailing list