Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 132959
Collapse All | Expand All

(-)synaptics-0.14.4/manpages/synaptics.5 (+13 lines)
Lines 123-128 Link Here
123
\fBHorizScrollDelta\fR (Integer)
123
\fBHorizScrollDelta\fR (Integer)
124
Move distance of the finger for a scroll event.
124
Move distance of the finger for a scroll event.
125
.TP
125
.TP
126
\fBTwoFingerScoll\fR (Integer)
127
Enable scrolling events when dragging two fingers simultaneously
128
(not all hardware supports this).
129
.
130
The possible values are:
131
.TS
132
l l.
133
 0    disable two-finger scrolling
134
 1    scroll only in horizontal direction
135
 2    scroll only in vertical direction
136
 3    scroll in both directions.
137
.TE
138
.TP
126
\fBEdgeMotionMinZ\fR (Integer)
139
\fBEdgeMotionMinZ\fR (Integer)
127
Finger pressure at which minimum edge motion speed is set.
140
Finger pressure at which minimum edge motion speed is set.
128
.TP
141
.TP
(-)synaptics-0.14.4/synaptics.c (-17 / +57 lines)
Lines 1-11 Link Here
1
/*
1
/*
2
 *   Copyright 2006 Stefan Bethge <stefan.bethge@web.de>
3
 *     patch for two-fingered scrolling
4
 * 
2
 *   Copyright 2004 Matthias Ihmig <m.ihmig@gmx.net>
5
 *   Copyright 2004 Matthias Ihmig <m.ihmig@gmx.net>
3
 *     patch for pressure dependent EdgeMotion speed
6
 *     patch for pressure dependent EdgeMotion speed
4
 *
7
 *
5
 *   Copyright 2004 Alexei Gilchrist <alexei@physics.uq.edu.au>
8
 *   Copyright 2004 Alexei Gilchrist <alexei@physics.uq.edu.au>
6
 *     patch for circular scrolling
9
 *     patch for circular scrolling
7
 *
10
 *
8
 *   Copyright 2003 Jörg Bösner <ich@joerg-boesner.de>
11
 *   Copyright 2003 Jörg Bösner <ich@joerg-boesner.de>
9
 *     patch for switching the touchpad off (for example, when a
12
 *     patch for switching the touchpad off (for example, when a
10
 *     USB mouse is connected)
13
 *     USB mouse is connected)
11
 *
14
 *
Lines 357-362 Link Here
357
							      "EmulateMidButtonTime", 75);
360
							      "EmulateMidButtonTime", 75);
358
    pars->scroll_dist_vert = xf86SetIntOption(local->options, "VertScrollDelta", 100);
361
    pars->scroll_dist_vert = xf86SetIntOption(local->options, "VertScrollDelta", 100);
359
    pars->scroll_dist_horiz = xf86SetIntOption(local->options, "HorizScrollDelta", 100);
362
    pars->scroll_dist_horiz = xf86SetIntOption(local->options, "HorizScrollDelta", 100);
363
    pars->scroll_two_fingers = xf86SetIntOption(local->options, "TwoFingerScroll", 0);
360
    pars->edge_motion_min_z = xf86SetIntOption(local->options, "EdgeMotionMinZ", 30);
364
    pars->edge_motion_min_z = xf86SetIntOption(local->options, "EdgeMotionMinZ", 30);
361
    pars->edge_motion_max_z = xf86SetIntOption(local->options, "EdgeMotionMaxZ", 160);
365
    pars->edge_motion_max_z = xf86SetIntOption(local->options, "EdgeMotionMaxZ", 160);
362
    pars->edge_motion_min_speed = xf86SetIntOption(local->options, "EdgeMotionMinSpeed", 1);
366
    pars->edge_motion_min_speed = xf86SetIntOption(local->options, "EdgeMotionMinSpeed", 1);
Lines 481-487 Link Here
481
static void
485
static void
482
SynapticsCtrl(DeviceIntPtr device, PtrCtrl *ctrl)
486
SynapticsCtrl(DeviceIntPtr device, PtrCtrl *ctrl)
483
{
487
{
484
    DBG(3, ErrorF("SynapticsCtrl called.\n"));
488
    DBG(7, ErrorF("SynapticsCtrl called.\n"));
485
    /*
489
    /*
486
      pInfo = device->public.devicePrivate;
490
      pInfo = device->public.devicePrivate;
487
      pMse = pInfo->private;
491
      pMse = pInfo->private;
Lines 523-529 Link Here
523
    LocalDevicePtr local = (LocalDevicePtr) dev->public.devicePrivate;
527
    LocalDevicePtr local = (LocalDevicePtr) dev->public.devicePrivate;
524
    SynapticsPrivate *priv = (SynapticsPrivate *) (local->private);
528
    SynapticsPrivate *priv = (SynapticsPrivate *) (local->private);
525
529
526
    DBG(3, ErrorF("Synaptics DeviceOn called\n"));
530
    DBG(7, ErrorF("Synaptics DeviceOn called\n"));
527
531
528
    SetDeviceAndProtocol(local);
532
    SetDeviceAndProtocol(local);
529
    local->fd = xf86OpenSerial(local->options);
533
    local->fd = xf86OpenSerial(local->options);
Lines 557-563 Link Here
557
    LocalDevicePtr local = (LocalDevicePtr) dev->public.devicePrivate;
561
    LocalDevicePtr local = (LocalDevicePtr) dev->public.devicePrivate;
558
    SynapticsPrivate *priv = (SynapticsPrivate *) (local->private);
562
    SynapticsPrivate *priv = (SynapticsPrivate *) (local->private);
559
563
560
    DBG(3, ErrorF("Synaptics DeviceOff called\n"));
564
    DBG(7, ErrorF("Synaptics DeviceOff called\n"));
561
565
562
    if (local->fd != -1) {
566
    if (local->fd != -1) {
563
	TimerFree(priv->timer);
567
	TimerFree(priv->timer);
Lines 593-599 Link Here
593
    unsigned char map[SYN_MAX_BUTTONS + 1];
597
    unsigned char map[SYN_MAX_BUTTONS + 1];
594
    int i;
598
    int i;
595
599
596
    DBG(3, ErrorF("Synaptics DeviceInit called\n"));
600
    DBG(7, ErrorF("Synaptics DeviceInit called\n"));
597
601
598
    for (i = 0; i <= SYN_MAX_BUTTONS; i++)
602
    for (i = 0; i <= SYN_MAX_BUTTONS; i++)
599
	map[i] = i;
603
	map[i] = i;
Lines 1192-1197 Link Here
1192
    default:
1196
    default:
1193
	break;
1197
	break;
1194
    }
1198
    }
1199
1195
    if (moving_state && !priv->palm &&
1200
    if (moving_state && !priv->palm &&
1196
	!priv->vert_scroll_on && !priv->horiz_scroll_on && !priv->circ_scroll_on) {
1201
	!priv->vert_scroll_on && !priv->horiz_scroll_on && !priv->circ_scroll_on) {
1197
	delay = MIN(delay, 13);
1202
	delay = MIN(delay, 13);
Lines 1357-1372 Link Here
1357
	    }
1362
	    }
1358
	}
1363
	}
1359
	if (!priv->circ_scroll_on) {
1364
	if (!priv->circ_scroll_on) {
1360
	    if ((para->scroll_dist_vert != 0) && (edge & RIGHT_EDGE)) {
1365
		switch (para->scroll_two_fingers) {
1361
		priv->vert_scroll_on = TRUE;
1366
			case 0:	if ((para->scroll_dist_vert != 0) && (edge & RIGHT_EDGE)) {
1362
		priv->scroll_y = hw->y;
1367
					priv->vert_scroll_on = TRUE;
1363
		DBG(7, ErrorF("vert edge scroll detected on right edge\n"));
1368
					priv->scroll_y = hw->y;
1364
	    }
1369
					DBG(7, ErrorF("vert edge scroll detected on right edge\n"));
1365
	    if ((para->scroll_dist_horiz != 0) && (edge & BOTTOM_EDGE)) {
1370
				}
1366
		priv->horiz_scroll_on = TRUE;
1371
				if ((para->scroll_dist_horiz != 0) && (edge & BOTTOM_EDGE)) {
1367
		priv->scroll_x = hw->x;
1372
					priv->horiz_scroll_on = TRUE;
1368
		DBG(7, ErrorF("horiz edge scroll detected on bottom edge\n"));
1373
					priv->scroll_x = hw->x;
1369
	    }
1374
					DBG(7, ErrorF("horiz edge scroll detected on bottom edge\n"));
1375
				}
1376
				break;
1377
			case 1: if ((para->scroll_dist_horiz != 0) && (hw->numFingers > 1)) {
1378
					priv->horiz_scroll_on = TRUE;
1379
					priv->scroll_x = hw->x;
1380
					DBG(7, ErrorF("horizontal two-finger scroll detected\n"));
1381
				}
1382
				break;
1383
			case 2: if ((para->scroll_dist_vert != 0) && (hw->numFingers > 1)) {
1384
					priv->vert_scroll_on = TRUE;
1385
					priv->scroll_y = hw->y;
1386
					DBG(7, ErrorF("vertical two-finger scroll detected\n"));
1387
				}
1388
				break;
1389
			case 3: if (((para->scroll_dist_vert != 0)
1390
				|| (para->scroll_dist_horiz != 0)) && (hw->numFingers > 1)) {
1391
					priv->horiz_scroll_on = TRUE;
1392
					priv->scroll_x = hw->x;
1393
					priv->vert_scroll_on = TRUE;
1394
					priv->scroll_y = hw->y;
1395
					DBG(7, ErrorF("bi-directional two-finger scroll detected\n"));
1396
				}
1397
				break;
1398
			default: break;
1399
		}
1370
	}
1400
	}
1371
    }
1401
    }
1372
    {
1402
    {
Lines 1377-1387 Link Here
1377
	    DBG(7, ErrorF("cicular scroll off\n"));
1407
	    DBG(7, ErrorF("cicular scroll off\n"));
1378
	    priv->circ_scroll_on = FALSE;
1408
	    priv->circ_scroll_on = FALSE;
1379
	}
1409
	}
1380
	if (priv->vert_scroll_on && (!(edge & RIGHT_EDGE) || !finger)) {
1410
1411
	if ((priv->vert_scroll_on || priv->horiz_scroll_on)
1412
		&& (hw->numFingers < 2) && para->scroll_two_fingers) {
1413
	    DBG(7, ErrorF("two fingers scroll off\n"));
1414
	    priv->horiz_scroll_on = FALSE;
1415
	    priv->vert_scroll_on = FALSE;
1416
	}
1417
	
1418
	if (priv->vert_scroll_on && (!(edge & RIGHT_EDGE) || !finger)
1419
		&& !(para->scroll_two_fingers > 1)) {
1381
	    DBG(7, ErrorF("vert edge scroll off\n"));
1420
	    DBG(7, ErrorF("vert edge scroll off\n"));
1382
	    priv->vert_scroll_on = FALSE;
1421
	    priv->vert_scroll_on = FALSE;
1383
	}
1422
	}
1384
	if (priv->horiz_scroll_on && (!(edge & BOTTOM_EDGE) || !finger)) {
1423
	if (priv->horiz_scroll_on && (!(edge & BOTTOM_EDGE) || !finger)
1424
		&& !(para->scroll_two_fingers == 1 || para->scroll_two_fingers == 3)) {
1385
	    DBG(7, ErrorF("horiz edge scroll off\n"));
1425
	    DBG(7, ErrorF("horiz edge scroll off\n"));
1386
	    priv->horiz_scroll_on = FALSE;
1426
	    priv->horiz_scroll_on = FALSE;
1387
	}
1427
	}
(-)synaptics-0.14.4/synaptics.h (+1 lines)
Lines 60-65 Link Here
60
					       emulate a middle button press. */
60
					       emulate a middle button press. */
61
    int	scroll_dist_vert;		    /* Scrolling distance in absolute coordinates */
61
    int	scroll_dist_vert;		    /* Scrolling distance in absolute coordinates */
62
    int	scroll_dist_horiz;		    /* Scrolling distance in absolute coordinates */
62
    int	scroll_dist_horiz;		    /* Scrolling distance in absolute coordinates */
63
    int scroll_two_fingers;	     	    /* Scroll using two fingers */
63
    double min_speed, max_speed, accl;	    /* movement parameters */
64
    double min_speed, max_speed, accl;	    /* movement parameters */
64
    int edge_motion_min_z;		    /* finger pressure at which minimum edge motion speed is set */
65
    int edge_motion_min_z;		    /* finger pressure at which minimum edge motion speed is set */
65
    int edge_motion_max_z;		    /* finger pressure at which maximum edge motion speed is set */
66
    int edge_motion_max_z;		    /* finger pressure at which maximum edge motion speed is set */
(-)synaptics-0.14.4/synclient.c (+1 lines)
Lines 63-68 Link Here
63
    DEFINE_PAR("EmulateMidButtonTime", emulate_mid_button_time, PT_INT,    0, 1000),
63
    DEFINE_PAR("EmulateMidButtonTime", emulate_mid_button_time, PT_INT,    0, 1000),
64
    DEFINE_PAR("VertScrollDelta",      scroll_dist_vert,        PT_INT,    0, 1000),
64
    DEFINE_PAR("VertScrollDelta",      scroll_dist_vert,        PT_INT,    0, 1000),
65
    DEFINE_PAR("HorizScrollDelta",     scroll_dist_horiz,       PT_INT,    0, 1000),
65
    DEFINE_PAR("HorizScrollDelta",     scroll_dist_horiz,       PT_INT,    0, 1000),
66
    DEFINE_PAR("TwoFingerScroll",      scroll_two_fingers,      PT_INT,    0, 3),
66
    DEFINE_PAR("MinSpeed",             min_speed,               PT_DOUBLE, 0, 1.0),
67
    DEFINE_PAR("MinSpeed",             min_speed,               PT_DOUBLE, 0, 1.0),
67
    DEFINE_PAR("MaxSpeed",             max_speed,               PT_DOUBLE, 0, 1.0),
68
    DEFINE_PAR("MaxSpeed",             max_speed,               PT_DOUBLE, 0, 1.0),
68
    DEFINE_PAR("AccelFactor",          accl,                    PT_DOUBLE, 0, 0.2),
69
    DEFINE_PAR("AccelFactor",          accl,                    PT_DOUBLE, 0, 0.2),

Return to bug 132959