rpms/control-center/devel control-center-2.11.91-help-left-handed-dual-mice-users.patch, 1.2, 1.3 control-center.spec, 1.89, 1.90
fedora-cvs-commits at redhat.com
fedora-cvs-commits at redhat.com
Wed Aug 31 19:29:39 UTC 2005
Author: rstrode
Update of /cvs/dist/rpms/control-center/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv13258
Modified Files:
control-center-2.11.91-help-left-handed-dual-mice-users.patch
control-center.spec
Log Message:
- Potentially fix tablet bustage (bug 167227)
control-center-2.11.91-help-left-handed-dual-mice-users.patch:
0 files changed
Index: control-center-2.11.91-help-left-handed-dual-mice-users.patch
===================================================================
RCS file: /cvs/dist/rpms/control-center/devel/control-center-2.11.91-help-left-handed-dual-mice-users.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- control-center-2.11.91-help-left-handed-dual-mice-users.patch 24 Aug 2005 18:06:29 -0000 1.2
+++ control-center-2.11.91-help-left-handed-dual-mice-users.patch 31 Aug 2005 19:29:36 -0000 1.3
@@ -1,217 +0,0 @@
---- control-center-2.11.91/gnome-settings-daemon/gnome-settings-mouse.c.help-left-handed-dual-mice-users 2005-05-22 11:46:43.000000000 -0400
-+++ control-center-2.11.91/gnome-settings-daemon/gnome-settings-mouse.c 2005-08-24 11:32:48.000000000 -0400
-@@ -1,3 +1,5 @@
-+#include <config.h>
-+
- #include <string.h>
- #include <math.h>
-
-@@ -6,43 +8,162 @@
- #include <gdk/gdkkeysyms.h>
- #include <X11/keysym.h>
-
-+#ifdef HAVE_X11_EXTENSIONS_XINPUT_H
-+#include <X11/extensions/XInput.h>
-+#endif
-+
- #include <gconf/gconf.h>
-
- #include "gnome-settings-locate-pointer.h"
- #include "gnome-settings-daemon.h"
-
--#define DEFAULT_PTR_MAP_SIZE 128
-+#ifdef HAVE_X11_EXTENSIONS_XINPUT_H
-+static gboolean
-+supports_xinput_devices (void)
-+{
-+ gint op_code, event, error;
-
--static void
--set_left_handed (gboolean left_handed)
-+ return XQueryExtension (GDK_DISPLAY (), "XInputExtension",
-+ &op_code, &event, &error);
-+}
-+#endif
-+
-+static void
-+configure_button_layout (guchar *buttons,
-+ gint n_buttons,
-+ gboolean left_handed)
- {
-- unsigned char *buttons;
-- gint n_buttons, i;
-- gint idx_1 = 0, idx_3 = 1;
--
-- buttons = g_alloca (DEFAULT_PTR_MAP_SIZE);
-- n_buttons = XGetPointerMapping (GDK_DISPLAY (), buttons, DEFAULT_PTR_MAP_SIZE);
-- if (n_buttons > DEFAULT_PTR_MAP_SIZE) {
-- buttons = g_alloca (n_buttons);
-- n_buttons = XGetPointerMapping (GDK_DISPLAY (), buttons, n_buttons);
-- }
-+ const gint left_button = 0;
-+ gint right_button;
-
-- for (i = 0; i < n_buttons; i++)
-+ /* if the button is higher than 2 (3rd button) then it's
-+ * probably one direction of a scroll wheel or something else
-+ * uninteresting
-+ */
-+ right_button = MIN (n_buttons - 1, 2);
-+
-+ if (left_handed)
-+ {
-+ buttons[left_button] = right_button + 1;
-+ buttons[right_button] = left_button + 1;
-+ }
-+ else
- {
-- if (buttons[i] == 1)
-- idx_1 = i;
-- else if (buttons[i] == ((n_buttons < 3) ? 2 : 3))
-- idx_3 = i;
-+ buttons[left_button] = left_button + 1;
-+ buttons[right_button] = right_button + 1;
- }
-+}
-+
-+#ifdef HAVE_X11_EXTENSIONS_XINPUT_H
-+static gboolean
-+xinput_device_has_buttons (XDeviceInfo *device_info)
-+{
-+ int i;
-+ XAnyClassInfo *class_info;
-
-- if ((left_handed && idx_1 < idx_3) ||
-- (!left_handed && idx_1 > idx_3))
-+ class_info = device_info->inputclassinfo;
-+ for (i = 0; i < device_info->num_classes; i++)
- {
-- buttons[idx_1] = ((n_buttons < 3) ? 2 : 3);
-- buttons[idx_3] = 1;
-+
-+ if (class_info->class == ButtonClass)
-+ {
-+ XButtonInfo *button_info;
-+
-+ button_info = (XButtonInfo *) class_info;
-+ if (button_info->num_buttons > 0)
-+ return TRUE;
-+ }
-+
-+ class_info = (XAnyClassInfo *) (((guchar *) class_info) +
-+ class_info->length);
- }
-+ return FALSE;
-+}
-+
-+static void
-+set_xinput_devices_left_handed (gboolean left_handed)
-+{
-+ XDeviceInfo *device_info;
-+ gint n_devices;
-+ guchar *buttons;
-+ gsize buttons_capacity = 16;
-+ gint n_buttons;
-+ gint i;
-+
-+ device_info = XListInputDevices (GDK_DISPLAY (), &n_devices);
-+
-+ if (n_devices > 0)
-+ buttons = g_new (guchar, buttons_capacity);
-+ else
-+ buttons = NULL;
-+
-+ for (i = 0; i < n_devices; i++)
-+ {
-+ XDevice *device;
-+
-+ if ((device_info[i].use != IsXExtensionDevice) ||
-+ (!xinput_device_has_buttons (&device_info[i])))
-+ continue;
-+
-+ device = XOpenDevice (GDK_DISPLAY (), device_info[i].id);
-+
-+ n_buttons = XGetDeviceButtonMapping (GDK_DISPLAY (), device,
-+ buttons,
-+ buttons_capacity);
-+
-+ while (n_buttons > buttons_capacity)
-+ {
-+ buttons_capacity = n_buttons;
-+ buttons = (guchar *) g_realloc (buttons,
-+ buttons_capacity * sizeof (guchar));
-+
-+ n_buttons = XGetDeviceButtonMapping (GDK_DISPLAY (), device,
-+ buttons,
-+ buttons_capacity);
-+ }
-+
-+ configure_button_layout (buttons, n_buttons, left_handed);
-+
-+ XSetDeviceButtonMapping (GDK_DISPLAY (), device, buttons, n_buttons);
-+ XCloseDevice (GDK_DISPLAY (), device);
-+ }
-+ g_free (buttons);
-+
-+ if (device_info != NULL)
-+ XFreeDeviceList (device_info);
-+}
-+#endif
-+
-+static void
-+set_left_handed (gboolean left_handed)
-+{
-+ guchar *buttons ;
-+ gsize buttons_capacity = 16;
-+ gint n_buttons;
-+
-+#ifdef HAVE_X11_EXTENSIONS_XINPUT_H
-+ if (supports_xinput_devices ())
-+ set_xinput_devices_left_handed (left_handed);
-+#endif
-+
-+ buttons = g_new (guchar, buttons_capacity);
-+ n_buttons = XGetPointerMapping (GDK_DISPLAY (), buttons,
-+ (gint) buttons_capacity);
-+ while (n_buttons > buttons_capacity)
-+ {
-+ buttons_capacity = n_buttons;
-+ buttons = (guchar *) g_realloc (buttons,
-+ buttons_capacity * sizeof (guchar));
-+
-+ n_buttons = XGetPointerMapping (GDK_DISPLAY (), buttons,
-+ (gint) buttons_capacity);
-+ }
-+
-+ configure_button_layout (buttons, n_buttons, left_handed);
-+
-+ XSetPointerMapping (GDK_DISPLAY (), buttons, n_buttons);
-
-- XSetPointerMapping (GDK_DISPLAY (), buttons, n_buttons);
-+ g_free (buttons);
- }
-
- static void
-@@ -271,7 +392,7 @@
- if (! strcmp (entry->key, "/desktop/gnome/peripherals/mouse/left_handed"))
- {
- if (entry->value->type == GCONF_VALUE_BOOL)
-- set_left_handed (gconf_value_get_bool (entry->value));
-+ set_left_handed (gconf_value_get_bool (entry->value));
- }
- else if (! strcmp (entry->key, "/desktop/gnome/peripherals/mouse/motion_acceleration"))
- {
---- control-center-2.11.91/configure.in.help-left-handed-dual-mice-users 2005-08-24 10:41:50.000000000 -0400
-+++ control-center-2.11.91/configure.in 2005-08-24 10:41:50.000000000 -0400
-@@ -83,9 +83,11 @@
- ])
- AC_SUBST(XF86MISC_LIBS)
- AC_CHECK_HEADERS(X11/extensions/XKB.h)
-+AC_CHECK_HEADERS(X11/extensions/XInput.h)
- CPPFLAGS=$savecppflags
-
-
-+
- dnl ==============================================
- dnl Check that we meet the dependencies
- dnl ==============================================
Index: control-center.spec
===================================================================
RCS file: /cvs/dist/rpms/control-center/devel/control-center.spec,v
retrieving revision 1.89
retrieving revision 1.90
diff -u -r1.89 -r1.90
--- control-center.spec 24 Aug 2005 18:35:36 -0000 1.89
+++ control-center.spec 31 Aug 2005 19:29:36 -0000 1.90
@@ -20,7 +20,7 @@
Summary: GNOME Control Center.
Name: control-center
Version: 2.11.91
-Release: 3
+Release: 4
Epoch: 1
License: GPL/LGPL
Group: User Interface/Desktops
@@ -207,6 +207,9 @@
# (also its headers)
%changelog
+* Wed Aug 31 2005 Ray Strode <rstrode at redhat.com> - 1:2.11.91-4
+- Potentially fix tablet bustage (bug 167227)
+
* Tue Aug 23 2005 Ray Strode <rstrode at redhat.com> - 1:2.11.91-3
- Configure all mice for left-handed mode in left-handed
mode (bug 126420)
More information about the fedora-cvs-commits
mailing list