File Fix-synaptics-driver-issues.patch of Package plasma5-desktop.openSUSE_Leap_42.1_Update
From: Rajeesh K V <rajeeshknambiar@gmail.com>
Date: Wed, 09 Mar 2016 19:29:29 +0000
Subject: Touchpad KCM: Fix synaptics driver issues
X-Git-Url: http://quickgit.kde.org/?p=plasma-desktop.git&a=commitdiff&h=86b59198f1c60236034567dc804b578376f8d06c
---
Touchpad KCM: Fix synaptics driver issues
Fixes couple of issues:
1. Remove spurious members of SynapticsTouchpad class from parent class XlibTouchpad; fixing wrong scroll delta values.
2. Enlarge vertical,horizontal&circular scroll delta and maxtapmove allowing value more than 100. The max value supported by driver is 1000
REVIEW: 127306
BUG: 359460
---
--- a/kcms/touchpad/src/backends/x11/synapticstouchpad.cpp
+++ b/kcms/touchpad/src/backends/x11/synapticstouchpad.cpp
@@ -233,3 +233,18 @@
m_paramList = synapticsProperties;
}
+
+double SynapticsTouchpad::getPropertyScale(const QString &name) const
+{
+ if (m_scaleByResX.contains(name) && m_scaleByResY.contains(name)) {
+ return std::sqrt(static_cast<double>(m_resX) * m_resX
+ + static_cast<double>(m_resY) * m_resY);
+ } else if (m_scaleByResX.contains(name)) {
+ return m_resX;
+ } else if (m_scaleByResY.contains(name)) {
+ return m_resY;
+ } else if (m_toRadians.contains(name)) {
+ return M_PI_4 / 45.0;
+ }
+ return 1.0;
+}
--- a/kcms/touchpad/src/backends/x11/synapticstouchpad.h
+++ b/kcms/touchpad/src/backends/x11/synapticstouchpad.h
@@ -27,10 +27,12 @@
public:
SynapticsTouchpad(Display *display, int deviceId);
+protected:
+ double getPropertyScale(const QString &name) const Q_DECL_OVERRIDE;
+
private:
XcbAtom m_capsAtom;
int m_resX, m_resY;
- QMap<QString, QString> m_negate;
QStringList m_scaleByResX, m_scaleByResY, m_toRadians;
};
--- a/kcms/touchpad/src/backends/x11/xlibtouchpad.cpp
+++ b/kcms/touchpad/src/backends/x11/xlibtouchpad.cpp
@@ -169,16 +169,7 @@
double XlibTouchpad::getPropertyScale(const QString& name) const
{
- if (m_scaleByResX.contains(name) && m_scaleByResY.contains(name)) {
- return std::sqrt(static_cast<double>(m_resX) * m_resX
- + static_cast<double>(m_resY) * m_resY);
- } else if (m_scaleByResX.contains(name)) {
- return m_resX;
- } else if (m_scaleByResY.contains(name)) {
- return m_resY;
- } else if (m_toRadians.contains(name)) {
- return M_PI_4 / 45.0;
- }
+ Q_UNUSED(name);
return 1.0;
}
--- a/kcms/touchpad/src/backends/x11/xlibtouchpad.h
+++ b/kcms/touchpad/src/backends/x11/xlibtouchpad.h
@@ -46,6 +46,7 @@
{
public:
XlibTouchpad(Display *display, int deviceId);
+ virtual ~XlibTouchpad() {};
int deviceId() { return m_deviceId; }
const QStringList &supportedParameters() const { return m_supported; }
@@ -64,7 +65,7 @@
QVariant getParameter(const struct Parameter *);
struct PropertyInfo *getDevProperty(const QLatin1String &propName);
void flush();
- double getPropertyScale(const QString &name) const;
+ virtual double getPropertyScale(const QString &name) const;
const Parameter * findParameter(const QString &name);
Display *m_display;
@@ -75,10 +76,7 @@
QMap<QLatin1String, QSharedPointer<XcbAtom> > m_atoms;
- int m_resX, m_resY;
- QStringList m_scaleByResX, m_scaleByResY, m_toRadians;
QMap<QString, QString> m_negate;
-
QMap<QLatin1String, struct PropertyInfo> m_props;
QSet<QLatin1String> m_changed;
QStringList m_supported;
--- a/kcms/touchpad/src/kcm/touchpad.kcfg
+++ b/kcms/touchpad/src/kcm/touchpad.kcfg
@@ -132,7 +132,7 @@
</entry>
<entry name="VertScrollDelta" type="Double">
<min>0</min>
- <max>10</max>
+ <max>1000</max>
<default code="true">
systemDefault("VertScrollDelta", 1.0)
</default>
@@ -144,7 +144,7 @@
</entry>
<entry name="HorizScrollDelta" type="Double">
<min>0</min>
- <max>10</max>
+ <max>1000</max>
<default code="true">
systemDefault("HorizScrollDelta", 1.0)
</default>
@@ -234,7 +234,7 @@
</entry>
<entry name="MaxTapMove" type="Double">
<min>0</min>
- <max>20</max>
+ <max>1000</max>
<default code="true">
systemDefault("MaxTapMove", 2.0)
</default>
--- a/kcms/touchpad/src/kcm/ui/scroll.ui
+++ b/kcms/touchpad/src/kcm/ui/scroll.ui
@@ -147,6 +147,9 @@
<property name="toolTip">
<string>Move distance of the finger for a scroll event</string>
</property>
+ <property name="maximum">
+ <double>1000.000000000000000</double>
+ </property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
@@ -172,6 +175,9 @@
<widget class="QDoubleSpinBox" name="kcfg_HorizScrollDelta">
<property name="toolTip">
<string>Move distance of the finger for a scroll event</string>
+ </property>
+ <property name="maximum">
+ <double>1000.000000000000000</double>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
@@ -322,12 +328,18 @@
</widget>
</item>
<item row="2" column="1">
- <widget class="QSpinBox" name="kcfg_CircScrollDelta">
+ <widget class="QDoubleSpinBox" name="kcfg_CircScrollDelta">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
+ </property>
+ <property name="maximum">
+ <double>45.000000000000000</double>
+ </property>
+ <property name="singleStep">
+ <double>0.100000000000000</double>
</property>
<property name="toolTip">
<string>Move angle (radians) of finger to generate a scroll event</string>
--- a/kcms/touchpad/src/kcm/ui/tap.ui
+++ b/kcms/touchpad/src/kcm/ui/tap.ui
@@ -406,6 +406,9 @@
<widget class="QDoubleSpinBox" name="kcfg_MaxTapMove">
<property name="toolTip">
<string>Maximum movement of the finger for detecting a tap</string>
+ </property>
+ <property name="maximum">
+ <double>1000.000000000000000</double>
</property>
<property name="singleStep" stdset="0">
<double>0.100000000000000</double>