[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