Hello community,
here is the log from the commit of package xorg-x11-driver-input for openSUSE:Factory
checked in at Fri May 22 00:34:54 CEST 2009.
--------
--- xorg-x11-driver-input/xorg-x11-driver-input.changes 2009-05-12 09:40:37.000000000 +0200
+++ /mounts/work_src_done/STABLE/xorg-x11-driver-input/xorg-x11-driver-input.changes 2009-05-21 10:37:56.000000000 +0200
@@ -1,0 +2,11 @@
+Thu May 21 10:26:30 CEST 2009 - sndirsch@suse.de
+
+- xf86-input-synaptics 1.1.0
+ * avoiding allocations during the signal handler.
+ * several 64 bit property issues with synclient
+ * The driver tries to detect the touchpad model and adjusts the
+ edge values accordingly. This addresses issues where edge
+ scrolling appeared to be broken on certain touchpad models
+ (ALPS, appletouch) due to incorrect RightEdge values.
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
xf86-input-synaptics-1.1.0.tar.bz2
New:
----
xf86-input-synaptics-1.1.1.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xorg-x11-driver-input.spec ++++++
--- /var/tmp/diff_new_pack.SW8071/_old 2009-05-22 00:30:26.000000000 +0200
+++ /var/tmp/diff_new_pack.SW8071/_new 2009-05-22 00:30:26.000000000 +0200
@@ -24,7 +24,7 @@
BuildRequires: Mesa-devel pkgconfig xorg-x11-proto-devel xorg-x11-server-sdk
Url: http://xorg.freedesktop.org/
Version: 7.4
-Release: 29
+Release: 30
License: X11/MIT
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Group: System/X11/Servers/XF86_4
@@ -65,7 +65,7 @@
Source26: xf86-input-vmmouse-12.6.4.tar.bz2
Source27: xf86-input-void-1.2.0.tar.bz2
Source28: xf86-input-diamondtouch-0.3.0.tar.bz2
-Source29: xf86-input-synaptics-1.1.0.tar.bz2
+Source29: xf86-input-synaptics-1.1.1.tar.bz2
Source30: xf86-input-evdev-2.2.2.tar.bz2
Source31: 11-x11-synaptics.fdi
Source32: 11-mouse.fdi
@@ -241,6 +241,14 @@
/usr/share/hal/fdi/policy/20thirdparty/11-mouse.fdi
%changelog
+* Thu May 21 2009 sndirsch@suse.de
+- xf86-input-synaptics 1.1.0
+ * avoiding allocations during the signal handler.
+ * several 64 bit property issues with synclient
+ * The driver tries to detect the touchpad model and adjusts the
+ edge values accordingly. This addresses issues where edge
+ scrolling appeared to be broken on certain touchpad models
+ (ALPS, appletouch) due to incorrect RightEdge values.
* Tue May 12 2009 sndirsch@suse.de
- xf86-input-vmmouse 12.6.4
* Fix bug where motion notify events were being sent with every
++++++ xf86-input-synaptics-1.1.0.tar.bz2 -> xf86-input-synaptics-1.1.1.tar.bz2 ++++++
++++ 54957 lines of diff (skipped)
++++ retrying with extended exclude list
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-synaptics-1.1.0/config.h.in new/xf86-input-synaptics-1.1.1/config.h.in
--- old/xf86-input-synaptics-1.1.0/config.h.in 2009-03-09 03:00:25.000000000 +0100
+++ new/xf86-input-synaptics-1.1.1/config.h.in 2009-05-21 08:15:13.000000000 +0200
@@ -15,6 +15,9 @@
/* Define to 1 if you have the header file. */
#undef HAVE_MEMORY_H
+/* "Input Device Property support" */
+#undef HAVE_PROPERTIES
+
/* Define to 1 if you have the header file. */
#undef HAVE_STDINT_H
@@ -39,6 +42,10 @@
/* Use XRecord */
#undef HAVE_XRECORD
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+ */
+#undef LT_OBJDIR
+
/* Name of package */
#undef PACKAGE
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-synaptics-1.1.0/configure.ac new/xf86-input-synaptics-1.1.1/configure.ac
--- old/xf86-input-synaptics-1.1.0/configure.ac 2009-03-09 02:59:54.000000000 +0100
+++ new/xf86-input-synaptics-1.1.1/configure.ac 2009-05-21 08:14:41.000000000 +0200
@@ -22,7 +22,7 @@
AC_PREREQ(2.57)
AC_INIT([xf86-input-synaptics],
- 1.1.0,
+ 1.1.1,
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
xf86-input-synaptics)
@@ -85,6 +85,13 @@
sdkdir=$(pkg-config --variable=sdkdir xorg-server)
AC_SUBST([sdkdir])
+PKG_CHECK_MODULES(XORG16, [xorg-server >= 1.6],
+ HAVE_PROPERTIES="yes"; AC_DEFINE(HAVE_PROPERTIES, 1,
+ "Input Device Property support"),
+ HAVE_PROPERTIES="no");
+AM_CONDITIONAL(HAVE_PROPERTIES, [ test "$HAVE_PROPERTIES" = "yes" ])
+AC_SUBST(HAVE_PROPERTIES)
+
CFLAGS="$CFLAGS $XORG_CFLAGS "' -I$(top_srcdir)/src'
AC_SUBST([CFLAGS])
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-synaptics-1.1.0/man/synaptics.man new/xf86-input-synaptics-1.1.1/man/synaptics.man
--- old/xf86-input-synaptics-1.1.0/man/synaptics.man 2009-03-09 02:37:31.000000000 +0100
+++ new/xf86-input-synaptics-1.1.1/man/synaptics.man 2009-05-21 08:14:42.000000000 +0200
@@ -813,6 +813,12 @@
vertical scrolling is enabled, horizontal two-finger scrolling is disabled and
edge scrolling is disabled. If no multi-finger capabilities are reported,
edge scrolling is enabled for both horizontal and vertical scrolling.
+.LP
+Button mapping for physical buttons is handled in the server.
+If the device is switched to left-handed (an in-server mapping of physical
+buttons 1, 2, 3 to the logical buttons 3, 2, 1, respectively), both physical
+and TapButtons are affected. To counteract this, the TapButtons need to be set
+up in reverse order (TapButton1=3, TapButton2=1).
.SH "REMOVED OPTIONS"
The following options are no longer part of the driver configuration:
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-synaptics-1.1.0/src/eventcomm.c new/xf86-input-synaptics-1.1.1/src/eventcomm.c
--- old/xf86-input-synaptics-1.1.0/src/eventcomm.c 2009-03-05 02:45:48.000000000 +0100
+++ new/xf86-input-synaptics-1.1.1/src/eventcomm.c 2009-05-21 08:14:42.000000000 +0200
@@ -78,9 +78,9 @@
event_query_is_touchpad(int fd)
{
int ret;
- unsigned long evbits[NBITS(EV_MAX)];
- unsigned long absbits[NBITS(ABS_MAX)];
- unsigned long keybits[NBITS(KEY_MAX)];
+ unsigned long evbits[NBITS(EV_MAX)] = {0};
+ unsigned long absbits[NBITS(ABS_MAX)] = {0};
+ unsigned long keybits[NBITS(KEY_MAX)] = {0};
/* Check for ABS_X, ABS_Y, ABS_PRESSURE and BTN_TOOL_FINGER */
@@ -115,14 +115,32 @@
return TRUE;
}
+static void
+event_query_info(LocalDevicePtr local)
+{
+ SynapticsPrivate *priv = (SynapticsPrivate *)local->private;
+ short id[4];
+ int rc;
+
+ SYSCALL(rc = ioctl(local->fd, EVIOCGID, id));
+ if (rc < 0)
+ return;
+
+ if (id[ID_VENDOR] == 0x2 && id[ID_PRODUCT] == 0x7)
+ priv->model = MODEL_SYNAPTICS;
+ else if (id[ID_VENDOR] == 0x2 && id[ID_PRODUCT] == 0x8)
+ priv->model = MODEL_ALPS;
+
+}
+
/* Query device for axis ranges */
static void
event_query_axis_ranges(LocalDevicePtr local)
{
SynapticsPrivate *priv = (SynapticsPrivate *)local->private;
struct input_absinfo abs;
- unsigned long absbits[NBITS(ABS_MAX)];
- unsigned long keybits[NBITS(KEY_MAX)];
+ unsigned long absbits[NBITS(ABS_MAX)] = {0};
+ unsigned long keybits[NBITS(KEY_MAX)] = {0};
char buf[256];
int rc;
@@ -184,15 +202,15 @@
if (rc >= 0)
{
buf[0] = 0;
- if ((priv->has_left = TEST_BIT(BTN_LEFT, keybits)))
+ if ((priv->has_left = (TEST_BIT(BTN_LEFT, keybits) != 0)))
strcat(buf, " left");
- if ((priv->has_right = TEST_BIT(BTN_RIGHT, keybits)))
+ if ((priv->has_right = (TEST_BIT(BTN_RIGHT, keybits) != 0)))
strcat(buf, " right");
- if ((priv->has_middle = TEST_BIT(BTN_MIDDLE, keybits)))
+ if ((priv->has_middle = (TEST_BIT(BTN_MIDDLE, keybits) != 0)))
strcat(buf, " middle");
- if ((priv->has_double = TEST_BIT(BTN_TOOL_DOUBLETAP, keybits)))
+ if ((priv->has_double = (TEST_BIT(BTN_TOOL_DOUBLETAP, keybits) != 0)))
strcat(buf, " double");
- if ((priv->has_triple = TEST_BIT(BTN_TOOL_TRIPLETAP, keybits)))
+ if ((priv->has_triple = (TEST_BIT(BTN_TOOL_TRIPLETAP, keybits) != 0)))
strcat(buf, " triple");
xf86Msg(X_INFO, "%s: buttons:%s\n", local->name, buf);
}
@@ -204,7 +222,7 @@
if (!event_query_is_touchpad(local->fd))
return FALSE;
- xf86Msg(X_PROBED, "%s touchpad found\n", local->name);
+ xf86Msg(X_PROBED, "%s: touchpad found\n", local->name);
return TRUE;
}
@@ -360,6 +378,7 @@
{
if (event_query_is_touchpad(local->fd))
event_query_axis_ranges(local);
+ event_query_info(local);
}
static Bool
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-synaptics-1.1.0/src/ps2comm.c new/xf86-input-synaptics-1.1.1/src/ps2comm.c
--- old/xf86-input-synaptics-1.1.0/src/ps2comm.c 2009-03-05 02:45:55.000000000 +0100
+++ new/xf86-input-synaptics-1.1.1/src/ps2comm.c 2009-05-21 08:14:42.000000000 +0200
@@ -40,6 +40,7 @@
#include "ps2comm.h"
#include "synproto.h"
#include "synaptics.h"
+#include "synapticsstr.h"
#include
#define MAX_UNSYNC_PACKETS 10 /* i.e. 10 to 60 bytes */
@@ -299,7 +300,7 @@
ps2_getbyte(fd, &mi[1]) &&
ps2_getbyte(fd, &mi[2])) {
synhw->model_id = (mi[0] << 16) | (mi[1] << 8) | mi[2];
- PS2DBG(ErrorF("mode-id %06X\n", synhw->model_id));
+ PS2DBG(ErrorF("model-id %06X\n", synhw->model_id));
PS2DBG(ErrorF("...done.\n"));
return TRUE;
}
@@ -611,6 +612,8 @@
int newabs = SYN_MODEL_NEWABS(*synhw);
unsigned char *buf = comm->protoBuf;
struct SynapticsHwState *hw = &(comm->hwState);
+ SynapticsPrivate *priv = (SynapticsPrivate *)local->private;
+ SynapticsSHM *para = priv->synpara;
int w, i;
if (!ps2_synaptics_get_packet(local, synhw, proto_ops, comm))
@@ -709,7 +712,7 @@
hw->y = YMAX_NOMINAL + YMIN_NOMINAL - hw->y;
- if (hw->z > 0) {
+ if (hw->z >= para->finger_high) {
int w_ok = 0;
/*
* Use capability bits to decide if the w value is valid.
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-synaptics-1.1.0/src/synaptics.c new/xf86-input-synaptics-1.1.1/src/synaptics.c
--- old/xf86-input-synaptics-1.1.0/src/synaptics.c 2009-03-05 02:46:01.000000000 +0100
+++ new/xf86-input-synaptics-1.1.1/src/synaptics.c 2009-05-21 08:14:42.000000000 +0200
@@ -318,7 +318,10 @@
/* The synaptics specs specify typical edge widths of 4% on x, and 5.4% on
* y (page 7) [Synaptics TouchPad Interfacing Guide, 510-000080 - A
* Second Edition, http://www.synaptics.com/support/dev_support.cfm, 8 Sep
- * 2008]
+ * 2008]. We use 7% for both instead for synaptics devices, and 15% for
+ * ALPS models.
+ * http://bugs.freedesktop.org/show_bug.cgi?id=21214
+ *
* If the range was autodetected, apply these edge widths to all four
* sides.
*/
@@ -330,8 +333,19 @@
width = abs(priv->maxx - priv->minx);
height = abs(priv->maxy - priv->miny);
diag = sqrt(width * width + height * height);
- ewidth = width * .04;
- eheight = height * .055;
+ if (priv->model == MODEL_SYNAPTICS)
+ {
+ ewidth = width * .07;
+ eheight = height * .07;
+ } else if (priv->model == MODEL_ALPS)
+ {
+ ewidth = width * .15;
+ eheight = height * .15;
+ } else
+ {
+ ewidth = width * .04;
+ eheight = height * .04;
+ }
l = priv->minx + ewidth;
r = priv->maxx - ewidth;
@@ -511,9 +525,17 @@
if (!priv)
return NULL;
+ /* allocate now so we don't allocate in the signal handler */
+ priv->timer = TimerSet(NULL, 0, 0, NULL, NULL);
+ if (!priv->timer) {
+ xfree(priv);
+ return NULL;
+ }
+
/* Allocate a new InputInfoRec and add it to the head xf86InputDevs. */
local = xf86AllocateInput(drv, 0);
if (!local) {
+ xfree(priv->timer);
xfree(priv);
return NULL;
}
@@ -614,6 +636,7 @@
if (priv->comm.buffer)
XisbFree(priv->comm.buffer);
free_param_data(priv);
+ xfree(priv->timer);
xfree(priv);
local->private = NULL;
return local;
@@ -627,6 +650,9 @@
InputInfoPtr local,
int flags)
{
+ SynapticsPrivate *priv = ((SynapticsPrivate *)local->private);
+ if (priv && priv->timer)
+ xfree(priv->timer);
xfree(local->private);
local->private = NULL;
xf86DeleteInput(local, 0);
@@ -703,7 +729,15 @@
xf86FlushInput(local->fd);
/* reinit the pad */
- QueryHardware(local);
+ if (!QueryHardware(local))
+ {
+ XisbFree(priv->comm.buffer);
+ priv->comm.buffer = NULL;
+ xf86CloseSerial(local->fd);
+ local->fd = -1;
+ return !Success;
+ }
+
xf86AddEnabledDevice(local);
dev->public.on = TRUE;
@@ -2178,6 +2212,7 @@
} else {
xf86Msg(X_PROBED, "%s: no supported touchpad found\n", local->name);
priv->proto_ops->DeviceOffHook(local);
+ return FALSE;
}
return TRUE;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-synaptics-1.1.0/src/synapticsstr.h new/xf86-input-synaptics-1.1.1/src/synapticsstr.h
--- old/xf86-input-synaptics-1.1.0/src/synapticsstr.h 2009-01-26 11:45:41.000000000 +0100
+++ new/xf86-input-synaptics-1.1.1/src/synapticsstr.h 2009-05-21 08:14:42.000000000 +0200
@@ -79,6 +79,12 @@
TBS_BUTTON_DOWN_UP /* Send button down event + set up state */
};
+enum TouchpadModel {
+ MODEL_UNKNOWN = 0,
+ MODEL_SYNAPTICS,
+ MODEL_ALPS
+};
+
typedef struct _SynapticsPrivateRec
{
SynapticsSHM synpara_default; /* Default parameter settings, read from
@@ -146,6 +152,8 @@
Bool has_double; /* double click detected for this device */
Bool has_triple; /* triple click detected for this device */
Bool has_pressure; /* device reports pressure */
+
+ enum TouchpadModel model; /* The detected model */
} SynapticsPrivate;
#endif /* _SYNAPTICSSTR_H_ */
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-synaptics-1.1.0/tools/synclient.c new/xf86-input-synaptics-1.1.1/tools/synclient.c
--- old/xf86-input-synaptics-1.1.0/tools/synclient.c 2009-03-04 07:34:50.000000000 +0100
+++ new/xf86-input-synaptics-1.1.1/tools/synclient.c 2009-05-21 08:14:42.000000000 +0200
@@ -45,11 +45,19 @@
#include
#include "synaptics.h"
#include "synaptics-properties.h"
+#ifdef HAVE_PROPERTIES
#include
#ifndef XATOM_FLOAT
#define XATOM_FLOAT "FLOAT"
#endif
+#endif
+
+union flong { /* Xlibs 64-bit property handling madness */
+ long l;
+ float f;
+};
+
enum ParaType {
PT_INT,
@@ -123,7 +131,7 @@
SYNAPTICS_PROP_SPEED, 0, /*float */ 0),
DEFINE_PAR("MaxSpeed", max_speed, PT_DOUBLE, 0, 1.0,
SYNAPTICS_PROP_SPEED, 0, /*float */ 1),
- DEFINE_PAR("AccelFactor", accl, PT_DOUBLE, 0, 0.2,
+ DEFINE_PAR("AccelFactor", accl, PT_DOUBLE, 0, 1.0,
SYNAPTICS_PROP_SPEED, 0, /*float */ 2),
DEFINE_PAR("TrackstickSpeed", trackstick_speed, PT_DOUBLE, 0, 200.0,
SYNAPTICS_PROP_SPEED, 0, /*float */ 3),
@@ -397,6 +405,7 @@
}
+#ifdef HAVE_PROPERTIES
/** Init display connection or NULL on error */
static Display*
dp_init()
@@ -528,8 +537,8 @@
unsigned char* data;
unsigned long nitems, bytes_after;
- float *f;
- int *n;
+ union flong *f;
+ long *n;
char *b;
float_type = XInternAtom(dpy, XATOM_FLOAT, True);
@@ -570,7 +579,7 @@
par->name, format);
break;
}
- n = (int*)data;
+ n = (long*)data;
n[par->prop_offset] = rint(val);
break;
case 0: /* float */
@@ -581,8 +590,8 @@
par->name, format);
break;
}
- f = (float*)data;
- f[par->prop_offset] = val;
+ f = (union flong*)data;
+ f[par->prop_offset].f = val;
break;
}
@@ -603,8 +612,8 @@
unsigned char* data;
int len;
- float *f;
- int *i;
+ union flong *f;
+ long *i;
char *b;
float_type = XInternAtom(dpy, XATOM_FLOAT, True);
@@ -645,8 +654,8 @@
break;
}
- i = (int*)data;
- printf(" %-23s = %d\n", par->name, i[par->prop_offset]);
+ i = (long*)data;
+ printf(" %-23s = %ld\n", par->name, i[par->prop_offset]);
break;
case 0: /* Float */
if (!float_type)
@@ -657,20 +666,23 @@
break;
}
- f = (float*)data;
- printf(" %-23s = %g\n", par->name, f[par->prop_offset]);
+ f = (union flong*)data;
+ printf(" %-23s = %g\n", par->name, f[par->prop_offset].f);
break;
}
XFree(data);
}
}
+#endif
static void
usage(void)
{
fprintf(stderr, "Usage: synclient [-s] [-m interval] [-h] [-l] [-V] [-?] [var1=value1 [var2=value2] ...]\n");
+#ifdef HAVE_PROPERTIES
fprintf(stderr, " -s Use SHM area instead of device properties.\n");
+#endif
fprintf(stderr, " -m monitor changes to the touchpad state (implies -s)\n"
" interval specifies how often (in ms) to poll the touchpad state\n");
fprintf(stderr, " -h Show detected hardware properties (implies -s)\n");
@@ -689,9 +701,13 @@
int do_monitor = 0;
int dump_hw = 0;
int dump_settings = 0;
- int use_shm = 0;
+ int use_shm = 1;
int first_cmd;
+#ifdef HAVE_PROPERTIES
+ use_shm = 0;
+#endif
+
/* Parse command line parameters */
while ((c = getopt(argc, argv, "sm:hlV")) != -1) {
switch (c) {
@@ -718,6 +734,7 @@
usage();
}
}
+
first_cmd = optind;
if (!do_monitor && !dump_hw && !dump_settings && first_cmd == argc)
usage();
@@ -741,7 +758,9 @@
shm_show_settings(synshm);
if (do_monitor)
shm_monitor(synshm, delay);
- } else /* Device properties */
+ }
+#ifdef HAVE_PROPERTIES
+ else /* Device properties */
{
Display *dpy;
XDevice *dev;
@@ -757,6 +776,7 @@
XCloseDevice(dpy, dev);
XCloseDisplay(dpy);
}
+#endif
return 0;
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-input-synaptics-1.1.0/tools/syndaemon.c new/xf86-input-synaptics-1.1.1/tools/syndaemon.c
--- old/xf86-input-synaptics-1.1.0/tools/syndaemon.c 2009-03-04 06:19:58.000000000 +0100
+++ new/xf86-input-synaptics-1.1.1/tools/syndaemon.c 2009-05-21 08:14:42.000000000 +0200
@@ -63,7 +63,7 @@
static int ignore_modifier_keys;
static int background;
static const char *pid_file;
-static int use_shm;
+static int use_shm = 1;
static Display *display;
static XDevice *dev;
static Atom touchpad_off_prop;
@@ -108,6 +108,7 @@
pad_disabled = value;
if (use_shm)
synshm->touchpad_off = value;
+#ifdef HAVE_PROPERTIES
else {
unsigned char data = value;
/* This potentially overwrites a different client's setting, but ...*/
@@ -115,6 +116,7 @@
PropModeReplace, &data, 1);
XFlush(display);
}
+#endif
}
static void
@@ -453,6 +455,7 @@
}
#endif /* HAVE_XRECORD */
+#ifdef HAVE_PROPERTIES
static XDevice *
dp_get_device(Display *dpy)
{
@@ -517,6 +520,7 @@
}
return dev;
}
+#endif
static int
shm_init()
@@ -548,6 +552,10 @@
int c;
int use_xrecord = 0;
+#ifdef HAVE_PROPERTIES
+ use_shm = 0;
+#endif
+
/* Parse command line parameters */
while ((c = getopt(argc, argv, "i:m:dtp:kKR?")) != EOF) {
switch(c) {
@@ -596,8 +604,10 @@
if (use_shm && !shm_init())
exit(2);
+#ifdef HAVE_PROPERTIES
else if (!use_shm && !(dev = dp_get_device(display)))
exit(2);
+#endif
/* Install a signal handler to restore synaptics parameters on exit */
install_signal_handler();
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org