rpms/control-center/F-12 disable-touchpad-on-capabilities.patch, NONE, 1.1 control-center.spec, 1.505, 1.506

Peter Hutterer whot at fedoraproject.org
Wed Nov 18 00:36:02 UTC 2009


Author: whot

Update of /cvs/pkgs/rpms/control-center/F-12
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv17280

Modified Files:
	control-center.spec 
Added Files:
	disable-touchpad-on-capabilities.patch 
Log Message:
* Wed Nov 18 2009 Peter Hutterer <peter.hutterer at redhat.com> 2.28.1-7
- Try again, cvs add failed for disable-touchpad-on-capabilities.patch for
  some unknown reason.


disable-touchpad-on-capabilities.patch:
 gnome-mouse-properties.c |   52 ++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 51 insertions(+), 1 deletion(-)

--- NEW FILE disable-touchpad-on-capabilities.patch ---
>From a5bf115175ea52c5cdc184b3844d06bdb7ad775c Mon Sep 17 00:00:00 2001
From: Peter Hutterer <peter.hutterer at who-t.net>
Date: Tue, 10 Nov 2009 05:49:50 +0000
Subject: Disable two-finger scrolling/tapping based on touchpad capabilities.

Touchpads that can't do two-finger cannot two-finger scroll - disable this
scroll method.

Touchpads that don't have physical buttons mustn't disable tapping - set to
on by default and disable checkbox.

Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
diff --git a/capplets/mouse/gnome-mouse-properties.c b/capplets/mouse/gnome-mouse-properties.c
index 816eab5..fe88434 100644
--- a/capplets/mouse/gnome-mouse-properties.c
+++ b/capplets/mouse/gnome-mouse-properties.c
@@ -327,6 +327,56 @@ scrollmethod_changed_event (GConfPropertyEditor *peditor,
 				  !gtk_toggle_button_get_active (disabled));
 }
 
+static void
+synaptics_check_capabilities (GtkBuilder *dialog)
+{
+#ifdef HAVE_XINPUT
+	int numdevices, i;
+	XDeviceInfo *devicelist;
+	Atom realtype, prop;
+	int realformat;
+	unsigned long nitems, bytes_after;
+	unsigned char *data;
+
+	prop = XInternAtom (GDK_DISPLAY (), "Synaptics Capabilities", True);
+	if (!prop)
+		return;
+
+	devicelist = XListInputDevices (GDK_DISPLAY (), &numdevices);
+	for (i = 0; i < numdevices; i++) {
+		if (devicelist[i].use != IsXExtensionPointer)
+			continue;
+
+		gdk_error_trap_push ();
+		XDevice *device = XOpenDevice (GDK_DISPLAY (),
+					       devicelist[i].id);
+		if (gdk_error_trap_pop ())
+			continue;
+
+		gdk_error_trap_push ();
+		if ((XGetDeviceProperty (GDK_DISPLAY (), device, prop, 0, 2, False,
+					 XA_INTEGER, &realtype, &realformat, &nitems,
+					 &bytes_after, &data) == Success) && (realtype != None)) {
+			/* Property data is booleans for has_left, has_middle,
+			 * has_right, has_double, has_triple */
+			if (!data[0] || !data[1] || !data[2]) {
+				gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (WID ("tap_to_click_toggle")), TRUE);
+				gtk_widget_set_sensitive (WID ("tap_to_click_toggle"), FALSE);
+			}
+
+			if (!data[3])
+				gtk_widget_set_sensitive (WID ("scroll_twofinger_radio"), FALSE);
+
+			XFree (data);
+		}
+		gdk_error_trap_pop ();
+
+		XCloseDevice (GDK_DISPLAY (), device);
+	}
+	XFreeDeviceList (devicelist);
+#endif
+}
+
 static gboolean
 find_synaptics (void)
 {
@@ -451,6 +501,7 @@ setup_dialog (GtkBuilder *dialog, GConfChangeSet *changeset)
 			(changeset, "/desktop/gnome/peripherals/touchpad/scroll_method", gtk_radio_button_get_group (radio),
 			 NULL);
 
+		synaptics_check_capabilities (dialog);
 		scrollmethod_changed_event (GCONF_PROPERTY_EDITOR (peditor), NULL, NULL, dialog);
 		g_signal_connect (peditor, "value-changed",
 				  G_CALLBACK (scrollmethod_changed_event), dialog);
--
cgit v0.8.2


Index: control-center.spec
===================================================================
RCS file: /cvs/pkgs/rpms/control-center/F-12/control-center.spec,v
retrieving revision 1.505
retrieving revision 1.506
diff -u -p -r1.505 -r1.506
--- control-center.spec	17 Nov 2009 23:28:26 -0000	1.505
+++ control-center.spec	18 Nov 2009 00:36:01 -0000	1.506
@@ -24,7 +24,7 @@
 Summary: Utilities to configure the GNOME desktop
 Name: control-center
 Version: 2.28.1
-Release: 6%{?dist}
+Release: 7%{?dist}
 Epoch: 1
 License: GPLv2+ and GFDL
 Group: User Interface/Desktops
@@ -416,6 +416,10 @@ fi
 
 
 %changelog
+* Wed Nov 18 2009 Peter Hutterer <peter.hutterer at redhat.com> 2.28.1-7
+- Try again, cvs add failed for disable-touchpad-on-capabilities.patch for
+  some unknown reason.
+
 * Wed Nov 18 2009 Peter Hutterer <peter.hutterer at redhat.com> 2.28.1-6
 - Disable GUI elements if the touchpad is incapable of doing two-finger
   scrolling or has no physical buttons (gnome #601330).




More information about the fedora-extras-commits mailing list