Hello community, here is the log from the commit of package kcm-touchpad5 for openSUSE:Factory checked in at 2015-03-01 15:03:41 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kcm-touchpad5 (Old) and /work/SRC/openSUSE:Factory/.kcm-touchpad5.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kcm-touchpad5" Changes: -------- --- /work/SRC/openSUSE:Factory/kcm-touchpad5/kcm-touchpad5.changes 2015-01-29 13:15:34.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.kcm-touchpad5.new/kcm-touchpad5.changes 2015-03-01 15:03:43.000000000 +0100 @@ -1,0 +2,9 @@ +Wed Feb 25 17:26:43 UTC 2015 - hrvoje.sen...@gmail.com + +- Update to 5.2.1~git20150225: + * Add libinput support to touchpad kcm + * Set global shortcuts for touchpad enable/disable/toggle + (kde#342629) + * Load the translation catalog correctly + +------------------------------------------------------------------- Old: ---- kcm-touchpad-5.2.0~git20150125.tar.xz New: ---- kcm-touchpad-5.2.1~git20150225.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kcm-touchpad5.spec ++++++ --- /var/tmp/diff_new_pack.isKnec/_old 2015-03-01 15:03:43.000000000 +0100 +++ /var/tmp/diff_new_pack.isKnec/_new 2015-03-01 15:03:43.000000000 +0100 @@ -1,7 +1,7 @@ # # spec file for package kcm-touchpad5 # -# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: kcm-touchpad5 -Version: 5.2.0~git20150125 +Version: 5.2.1~git20150225 Release: 0 Summary: KCModule for configuring the touchpad License: GPL-2.0+ ++++++ kcm-touchpad-5.2.0~git20150125.tar.xz -> kcm-touchpad-5.2.1~git20150225.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcm-touchpad-5.2.0~git20150125/src/applet/dataengine.desktop new/kcm-touchpad-5.2.1~git20150225/src/applet/dataengine.desktop --- old/kcm-touchpad-5.2.0~git20150125/src/applet/dataengine.desktop 2015-01-24 15:01:54.000000000 +0100 +++ new/kcm-touchpad-5.2.1~git20150225/src/applet/dataengine.desktop 2015-02-16 11:18:17.000000000 +0100 @@ -11,9 +11,11 @@ Name[fi]=Kosketuslevyn tietomoottori Name[fr]=Moteur de données du pavé tactile Name[hu]=Érintőtábla adatmotor +Name[it]=Motore dati Touchpad Name[ko]=터치패드 데이터 엔진 Name[lt]=Jutiklinio kilimėlio Duomenų variklis Name[nl]=Gegevensengine voor touchpad +Name[pa]=ਟੱਬਪੈਡ ਡਾਟਾ ਇੰਜਣ Name[pl]=Silnik danych gładzika Name[pt]=Motor de Dados do Rato por Toque Name[pt_BR]=Mecanismo de dados do touchpad @@ -29,6 +31,7 @@ Name[uk]=Рушій даних сенсорної панелі Name[x-test]=xxTouchpad DataEnginexx Name[zh_CN]=触摸板数据引擎 +Name[zh_TW]=觸控板資料引擎 Icon=input-touchpad Type=Service diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcm-touchpad-5.2.0~git20150125/src/applet/qml/metadata.desktop new/kcm-touchpad-5.2.1~git20150225/src/applet/qml/metadata.desktop --- old/kcm-touchpad-5.2.0~git20150125/src/applet/qml/metadata.desktop 2015-01-24 15:01:54.000000000 +0100 +++ new/kcm-touchpad-5.2.1~git20150225/src/applet/qml/metadata.desktop 2015-02-16 11:18:17.000000000 +0100 @@ -11,9 +11,11 @@ Comment[fi]=Näyttää kosketuslevyn nykyisen tilan Comment[fr]=Affiche l'état courant du pavé tactile Comment[hu]=Megjeleníti a jelenlegi érintőtábla állapotot +Comment[it]=Mostra lo stato attuale del touchpad Comment[ko]=현재 터치패드 상태 표시 Comment[lt]=Rodo dabartinę kilimėlio būsena Comment[nl]=Huidige status van touchpad tonen +Comment[pa]=ਮੌਜੂਦਾ ਟੱਚਪੈਡ ਸਥਿਤੀ ਦਿਖਾਉਂਦਾ ਹੈ Comment[pl]=Pokazuje bieżący stan gładzika Comment[pt]=Mostra o estado actual do rato por toque Comment[pt_BR]=Mostra o estado atual do touchpad @@ -29,6 +31,7 @@ Comment[uk]=Показує поточний стан сенсорної панелі Comment[x-test]=xxShows current touchpad statexx Comment[zh_CN]=显示当前触摸板状态 +Comment[zh_TW]=顯示目前的觸控板狀態 Encoding=UTF-8 Icon=input-touchpad Keywords=Touchpad @@ -43,9 +46,11 @@ Keywords[fi]=Kosketuslevy Keywords[fr]=Pavé tactile Keywords[hu]=Érintőtábla +Keywords[it]=Touchpad Keywords[ko]=터치패드 Keywords[lt]=Jutiklinis kilimėlis Keywords[nl]=Touchpad +Keywords[pa]=ਟੱਚਪੈਡ Keywords[pl]=Gładzik Keywords[pt]=Rato por Toque Keywords[pt_BR]=Touchpad @@ -61,6 +66,7 @@ Keywords[uk]=Сенсорна панель Keywords[x-test]=xxTouchpadxx Keywords[zh_CN]=触摸板 +Keywords[zh_TW]=觸控板 Name=Touchpad Name[bs]=Dodirna površina Name[ca]=Ratolí tàctil @@ -73,9 +79,11 @@ Name[fi]=Kosketuslevy Name[fr]=Pavé tactile Name[hu]=Érintőtábla +Name[it]=Touchpad Name[ko]=터치패드 Name[lt]=Jutiklinis kilimėlis Name[nl]=Touchpad +Name[pa]=ਟੱਚਪੈਡ Name[pl]=Gładzik Name[pt]=Rato por Toque Name[pt_BR]=Touchpad @@ -91,6 +99,7 @@ Name[uk]=Сенсорна панель Name[x-test]=xxTouchpadxx Name[zh_CN]=触摸板 +Name[zh_TW]=觸控板 Type=Service X-KDE-ParentApp= X-KDE-PluginInfo-Author=Alexander Mezin diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcm-touchpad-5.2.0~git20150125/src/backends/x11/libinputproperties.c new/kcm-touchpad-5.2.1~git20150225/src/backends/x11/libinputproperties.c --- old/kcm-touchpad-5.2.0~git20150125/src/backends/x11/libinputproperties.c 1970-01-01 01:00:00.000000000 +0100 +++ new/kcm-touchpad-5.2.1~git20150225/src/backends/x11/libinputproperties.c 2015-02-16 11:18:17.000000000 +0100 @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2015 Red Hat, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "synclientproperties.h" + +#include <stddef.h> +#include <limits.h> + +const struct Parameter libinputProperties[] = { + /* This is a boolean for all three fingers, no per-finger config */ + {"Tapping", PT_INT, 0, 1, "libinput Tapping Enabled", 8, 0}, + /* libinput normalizes the accel to -1/1 */ + {"AccelFactor", PT_DOUBLE, -1.0, 1.0, "libinput Accel Speed", 0 /*float */, 0}, + /* Only one of these may be set at one time */ + {"VertEdgeScroll", PT_INT, 0, 1, "libinput Scroll Method Enabled", 8, 1}, + {"VertTwoFingerScroll", PT_INT, 0, 1, "libinput Scroll Method Enabled", 8, 0}, + {"InvertVertScroll", PT_INT, 0, 1, "libinput Natural Scrolling Enabled", 8, 0}, + /* libinput doesn't have a separate toggle for horiz scrolling */ + { NULL, 0, 0, 0, 0, 0, 0 } +}; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcm-touchpad-5.2.0~git20150125/src/backends/x11/synclientproperties.h new/kcm-touchpad-5.2.1~git20150225/src/backends/x11/synclientproperties.h --- old/kcm-touchpad-5.2.0~git20150125/src/backends/x11/synclientproperties.h 2015-01-24 15:01:54.000000000 +0100 +++ new/kcm-touchpad-5.2.1~git20150225/src/backends/x11/synclientproperties.h 2015-02-16 11:18:17.000000000 +0100 @@ -66,5 +66,6 @@ }; extern const struct Parameter synapticsProperties[]; +extern const struct Parameter libinputProperties[]; #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcm-touchpad-5.2.0~git20150125/src/backends/x11/xlibbackend.cpp new/kcm-touchpad-5.2.1~git20150225/src/backends/x11/xlibbackend.cpp --- old/kcm-touchpad-5.2.0~git20150125/src/backends/x11/xlibbackend.cpp 2015-01-24 15:01:54.000000000 +0100 +++ new/kcm-touchpad-5.2.1~git20150225/src/backends/x11/xlibbackend.cpp 2015-02-16 11:18:17.000000000 +0100 @@ -135,61 +135,36 @@ } }; -XlibBackend::~XlibBackend() +class XlibSynapticsBackend : public XlibBackend { -} +public: + XlibSynapticsBackend(QObject *parent = 0); +}; -XlibBackend::XlibBackend(QObject *parent) : - TouchpadBackend(parent), - m_display(XOpenDisplay(0)), m_connection(0), - m_resX(1), m_resY(1) +class XlibLibinputBackend : public XlibBackend { - if (m_display) { - m_connection = XGetXCBConnection(m_display.data()); - } - - if (!m_connection) { - m_errorString = i18n("Cannot connect to X server"); - return; - } +public: + XlibLibinputBackend(QObject *parent = 0); +}; - m_floatType.intern(m_connection, "FLOAT"); +XlibSynapticsBackend::XlibSynapticsBackend(QObject *parent) : + XlibBackend(parent) +{ m_capsAtom.intern(m_connection, SYNAPTICS_PROP_CAPABILITIES); - m_enabledAtom.intern(m_connection, XI_PROP_ENABLED); - m_touchpadOffAtom.intern(m_connection, SYNAPTICS_PROP_OFF); - m_mouseAtom.intern(m_connection, XI_MOUSE); - m_keyboardAtom.intern(m_connection, XI_KEYBOARD); - XcbAtom resolutionAtom(m_connection, SYNAPTICS_PROP_RESOLUTION); - XcbAtom edgesAtom(m_connection, SYNAPTICS_PROP_EDGES); - - for (const Parameter *param = synapticsProperties; param->name; param++) { - QLatin1String name(param->prop_name); - - if (!m_atoms.contains(name)) { - m_atoms.insert(name, QSharedPointer<XcbAtom>( - new XcbAtom(m_connection, param->prop_name))); - } - } - - if (!m_capsAtom.atom()) { - m_errorString = - i18n("Synaptics driver is not installed (or is not used)"); + if (!m_capsAtom.atom()) return; - } - m_device = findTouchpad(); + m_device = findTouchpad(m_capsAtom); if (m_device == XIAllDevices) { m_errorString = i18n("No touchpad found"); return; } - for (const Parameter *p = synapticsProperties; p->name; p++) { - if (getParameter(p).isValid()) { - m_supported.append(p->name); - } - } + m_touchpadOffAtom.intern(m_connection, SYNAPTICS_PROP_OFF); + XcbAtom resolutionAtom(m_connection, SYNAPTICS_PROP_RESOLUTION); + XcbAtom edgesAtom(m_connection, SYNAPTICS_PROP_EDGES); - if (m_supported.isEmpty()) { + if (!loadSupportedProperties(synapticsProperties)) { m_errorString = i18n("Cannot read any of touchpad's properties"); return; } @@ -288,9 +263,97 @@ m_supported.removeAll(i.value()); } } + + m_identifierAtom.intern(m_connection, SYNAPTICS_PROP_CAPABILITIES); + m_paramList = synapticsProperties; } -int XlibBackend::findTouchpad() +XlibLibinputBackend::XlibLibinputBackend(QObject *parent) : + XlibBackend(parent) +{ + XcbAtom identifier(m_connection, + "libinput Tapping Enabled", + true); + + if (!identifier.atom()) + return; + + m_device = findTouchpad(identifier); + if (m_device == XIAllDevices) { + m_errorString = i18n("No touchpad found"); + return; + } + + m_identifierAtom.intern(m_connection, + "libinput Send Events Modes Available"); + + if (!loadSupportedProperties(libinputProperties)) { + m_errorString = i18n("Cannot read any of touchpad's properties"); + return; + } + + /* FIXME: has a different format than Synaptics Off but we don't expose + the toggle so this is just to stop it from crashing when we check + m_touchpadOffAtom */ + m_touchpadOffAtom.intern(m_connection, + "libinput Send Events Mode enabled"); + + + XcbAtom scroll_methods(m_connection, + "libinput Scroll Methods Available", + true); + if (scroll_methods.atom() != 0) { + PropertyInfo methods(m_display.data(), + m_device, + scroll_methods.atom(), + 0); + if (!methods.value(0).toInt()) + m_supported.removeAll("VertTwoFingerScroll"); + else if (!methods.value(1).toInt()) + m_supported.removeAll("VertEdgeScroll"); + } + + m_paramList = libinputProperties; +} + +XlibBackend* XlibBackend::initialize(QObject *parent) +{ + QScopedPointer<Display, XDisplayCleanup> display(XOpenDisplay(0)); + xcb_connection_t *connection = XGetXCBConnection(display.data()); + XcbAtom synaptics_prop_capablities, libinput_prop_tapping; + + libinput_prop_tapping.intern(connection, "libinput Tapping Enabled"); + if (libinput_prop_tapping.atom()) + return new XlibLibinputBackend(parent); + else + return new XlibSynapticsBackend(parent); +} + +XlibBackend::~XlibBackend() +{ +} + +XlibBackend::XlibBackend(QObject *parent) : + TouchpadBackend(parent), + m_display(XOpenDisplay(0)), m_connection(0), + m_resX(1), m_resY(1) +{ + if (m_display) { + m_connection = XGetXCBConnection(m_display.data()); + } + + if (!m_connection) { + m_errorString = i18n("Cannot connect to X server"); + return; + } + + m_floatType.intern(m_connection, "FLOAT"); + m_mouseAtom.intern(m_connection, XI_MOUSE); + m_keyboardAtom.intern(m_connection, XI_KEYBOARD); + m_enabledAtom.intern(m_connection, XI_PROP_ENABLED); +} + +int XlibBackend::findTouchpad(XcbAtom &identifier) { int nDevices = 0; QSharedPointer<XIDeviceInfo> deviceInfo( @@ -306,7 +369,7 @@ &nProperties), XDeleter); if (std::count(properties.data(), properties.data() + nProperties, - m_capsAtom.atom())) + identifier.atom())) { return info->deviceid; } @@ -315,9 +378,9 @@ return XIAllDevices; } -static const Parameter *findParameter(const QString &name) +const Parameter * XlibBackend::findParameter(const QString &name) { - for (const Parameter *par = synapticsProperties; par->name; par++) { + for (const Parameter *par = m_paramList; par->name; par++) { if (name == par->name) { return par; } @@ -325,6 +388,26 @@ return 0; } +bool XlibBackend::loadSupportedProperties(const Parameter *props) +{ + for (const Parameter *param = props; param->name; param++) { + QLatin1String name(param->prop_name); + + if (!m_atoms.contains(name)) { + m_atoms.insert(name, QSharedPointer<XcbAtom>( + new XcbAtom(m_connection, param->prop_name))); + } + } + + for (const Parameter *p = props; p->name; p++) { + if (getParameter(p).isValid()) { + m_supported.append(p->name); + } + } + + return !m_supported.isEmpty(); +} + double XlibBackend::getPropertyScale(const QString &name) const { if (m_scaleByResX.contains(name) && m_scaleByResY.contains(name)) { @@ -611,7 +694,7 @@ void XlibBackend::devicePlugged(int device) { if (m_device == XIAllDevices) { - m_device = findTouchpad(); + m_device = findTouchpad(m_identifierAtom); if (m_device != XIAllDevices) { qWarning() << "Touchpad reset"; m_notifications.reset(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcm-touchpad-5.2.0~git20150125/src/backends/x11/xlibbackend.h new/kcm-touchpad-5.2.1~git20150225/src/backends/x11/xlibbackend.h --- old/kcm-touchpad-5.2.0~git20150125/src/backends/x11/xlibbackend.h 2015-01-24 15:01:54.000000000 +0100 +++ new/kcm-touchpad-5.2.1~git20150225/src/backends/x11/xlibbackend.h 2015-02-16 11:18:17.000000000 +0100 @@ -28,6 +28,7 @@ #include <QX11Info> #include "touchpadbackend.h" +#include "synclientproperties.h" #include <xcb/xcb.h> @@ -41,7 +42,7 @@ Q_OBJECT public: - explicit XlibBackend(QObject *parent = 0); + static XlibBackend* initialize(QObject *parent = 0); ~XlibBackend(); bool applyConfig(const QVariantHash &); @@ -64,7 +65,8 @@ void touchpadDetached(); void devicePlugged(int); -private: +protected: + explicit XlibBackend(QObject *parent); struct PropertyInfo *getDevProperty(const QLatin1String &propName); bool setParameter(const struct Parameter *, const QVariant &); QVariant getParameter(const struct Parameter *); @@ -78,12 +80,16 @@ QScopedPointer<Display, XDisplayCleanup> m_display; xcb_connection_t *m_connection; - XcbAtom m_floatType, m_capsAtom, m_enabledAtom, m_touchpadOffAtom, + XcbAtom m_floatType, m_capsAtom, m_identifierAtom, m_enabledAtom, m_touchpadOffAtom, m_mouseAtom, m_keyboardAtom; - int findTouchpad(); + int findTouchpad(XcbAtom &identifier); int m_device; + const struct Parameter *m_paramList; + const Parameter *findParameter(const QString &name); + bool loadSupportedProperties(const struct Parameter *props); + QMap<QLatin1String, QSharedPointer<XcbAtom> > m_atoms; QMap<QLatin1String, struct PropertyInfo> m_props; QSet<QLatin1String> m_changed; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcm-touchpad-5.2.0~git20150125/src/backends/x11.cmake new/kcm-touchpad-5.2.1~git20150225/src/backends/x11.cmake --- old/kcm-touchpad-5.2.0~git20150125/src/backends/x11.cmake 2015-01-24 15:01:54.000000000 +0100 +++ new/kcm-touchpad-5.2.1~git20150225/src/backends/x11.cmake 2015-02-16 11:18:17.000000000 +0100 @@ -24,6 +24,7 @@ SET(backend_SRCS ${backend_SRCS} backends/x11/synclientproperties.c + backends/x11/libinputproperties.c backends/x11/xcbatom.cpp backends/x11/xlibbackend.cpp backends/x11/xlibnotifications.cpp diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcm-touchpad-5.2.0~git20150125/src/kcm/customconfigdialogmanager.cpp new/kcm-touchpad-5.2.1~git20150225/src/kcm/customconfigdialogmanager.cpp --- old/kcm-touchpad-5.2.0~git20150125/src/kcm/customconfigdialogmanager.cpp 2015-01-24 15:01:54.000000000 +0100 +++ new/kcm-touchpad-5.2.1~git20150225/src/kcm/customconfigdialogmanager.cpp 2015-02-16 11:18:17.000000000 +0100 @@ -21,6 +21,7 @@ #include <cmath> #include <QWidget> +#include <QGroupBox> #include <KConfigSkeleton> #include <KComboBox> @@ -44,7 +45,11 @@ } m_widgets[name] = child; - if (!supported.contains(name)) { + /* FIXME: this should probably be less hackish */ + if (name == "Tapping" && + !supported.contains("Tapping")) + qobject_cast<QGroupBox *>(child)->setCheckable(false); + else if (!supported.contains(name)) { child->setEnabled(false); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcm-touchpad-5.2.0~git20150125/src/kcm/kcm_touchpad.desktop new/kcm-touchpad-5.2.1~git20150225/src/kcm/kcm_touchpad.desktop --- old/kcm-touchpad-5.2.0~git20150125/src/kcm/kcm_touchpad.desktop 2015-01-24 15:01:54.000000000 +0100 +++ new/kcm-touchpad-5.2.1~git20150225/src/kcm/kcm_touchpad.desktop 2015-02-16 11:18:17.000000000 +0100 @@ -25,9 +25,11 @@ Name[fi]=Kosketuslevy Name[fr]=Pavé tactile Name[hu]=Érintőtábla +Name[it]=Touchpad Name[ko]=터치패드 Name[lt]=Jutiklinis kilimėlis Name[nl]=Touchpad +Name[pa]=ਟੱਚਪੈਡ Name[pl]=Gładzik Name[pt]=Rato por Toque Name[pt_BR]=Touchpad @@ -43,6 +45,7 @@ Name[uk]=Сенсорна панель Name[x-test]=xxTouchpadxx Name[zh_CN]=触摸板 +Name[zh_TW]=觸控板 Comment=Touchpad settings Comment[bs]=Postavke dodirne površine Comment[ca]=Configuració del ratolí tàctil @@ -55,9 +58,11 @@ Comment[fi]=Kosketuslevyn asetukset Comment[fr]=Configuration du pavé tactile Comment[hu]=Érintőtábla beállítások +Comment[it]=Impostazioni del touchpad Comment[ko]=터치패드 설정 Comment[lt]=Jutiklinio kilimėlio nustatymai Comment[nl]=Instellingen van touchpad +Comment[pa]=ਟੱਚਪੈਡ ਸੈਟਿੰਗ Comment[pl]=Ustawienia gładzika Comment[pt]=Configuração do rato por toque Comment[pt_BR]=Configurações do touchpad @@ -73,6 +78,7 @@ Comment[uk]=Параметри сенсорної панелі Comment[x-test]=xxTouchpad settingsxx Comment[zh_CN]=触摸板设置 +Comment[zh_TW]=觸控板設定 X-KDE-Keywords=Touchpad,Synaptics X-KDE-Keywords[bs]=Dodirna površina,Synatics X-KDE-Keywords[ca]=Ratolí tàctil,Touchpad,Synaptics @@ -85,9 +91,11 @@ X-KDE-Keywords[fi]=Touchpad,Synaptics,Kosketuslevy X-KDE-Keywords[fr]=Pavé tactile,Synaptics X-KDE-Keywords[hu]=Érintőtábla,Szinaptikusok +X-KDE-Keywords[it]=Touchpad,Synaptics X-KDE-Keywords[ko]=Touchpad,Synaptics,터치패드 X-KDE-Keywords[lt]=Jutiklinis kilimėlis,Synaptics X-KDE-Keywords[nl]=Touchpad,Synaptics +X-KDE-Keywords[pa]=ਟੱਚਪੈਡ,ਸੇਨਪਟਿਕਸ X-KDE-Keywords[pl]=Gładzik,Synaptics X-KDE-Keywords[pt]=Rato,Toque,Synaptics X-KDE-Keywords[pt_BR]=Touchpad,Synaptics @@ -103,3 +111,4 @@ X-KDE-Keywords[uk]=Touchpad,Synaptics,сенсорна,панель,тачпад,синаптикс X-KDE-Keywords[x-test]=xxTouchpadxx,xxSynapticsxx X-KDE-Keywords[zh_CN]=Touchpad,Synaptics,触摸板 +X-KDE-Keywords[zh_TW]=Touchpad,Synaptics diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcm-touchpad-5.2.0~git20150125/src/kcm/touchpad.kcfg new/kcm-touchpad-5.2.1~git20150225/src/kcm/touchpad.kcfg --- old/kcm-touchpad-5.2.0~git20150125/src/kcm/touchpad.kcfg 2015-01-24 15:01:54.000000000 +0100 +++ new/kcm-touchpad-5.2.1~git20150225/src/kcm/touchpad.kcfg 2015-02-16 11:18:17.000000000 +0100 @@ -5,6 +5,11 @@ http://www.kde.org/standards/kcfg/1.0/kcfg.xsd"> <kcfgfile name="touchpadrc"/> <group name="parameters"> + <entry name="Tapping" type="Bool"> + <default code="true"> + systemDefault("Tapping", true) + </default> + </entry> <entry name="$(TapAction)Button" type="Enum"> <parameter name="TapAction" type="Enum"> <values> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcm-touchpad-5.2.0~git20150125/src/kcm/ui/tap.ui new/kcm-touchpad-5.2.1~git20150225/src/kcm/ui/tap.ui --- old/kcm-touchpad-5.2.0~git20150125/src/kcm/ui/tap.ui 2015-01-24 15:01:54.000000000 +0100 +++ new/kcm-touchpad-5.2.1~git20150225/src/kcm/ui/tap.ui 2015-02-16 11:18:17.000000000 +0100 @@ -17,7 +17,7 @@ <item> <layout class="QHBoxLayout" name="horizontalLayout_2"> <item> - <widget class="QGroupBox" name="groupBox"> + <widget class="QGroupBox" name="kcfg_Tapping"> <property name="sizePolicy"> <sizepolicy hsizetype="Fixed" vsizetype="Preferred"> <horstretch>0</horstretch> @@ -30,6 +30,9 @@ <property name="flat"> <bool>true</bool> </property> + <property name="checkable"> + <bool>true</bool> + </property> <layout class="QFormLayout" name="formLayout_3"> <property name="formAlignment"> <set>Qt::AlignHCenter|Qt::AlignTop</set> @@ -290,7 +293,7 @@ <property name="toolTip"> <string>How long it takes (in milliseconds) for the "Locked Drags" mode to be automatically turned off after the finger is released from the touchpad</string> </property> - <property name="minimum"> + <property name="minimum" stdset="0"> <number>0</number> </property> <property name="maximum"> @@ -299,7 +302,7 @@ <property name="singleStep"> <number>99</number> </property> - <property name="suffix"> + <property name="suffix" stdset="0"> <string> ms</string> </property> </widget> @@ -385,16 +388,16 @@ <property name="toolTip"> <string>Maximum time (in milliseconds) for detecting a tap</string> </property> - <property name="minimum"> + <property name="minimum" stdset="0"> <number>0</number> </property> <property name="maximum"> <number>99</number> </property> - <property name="singleStep"> + <property name="singleStep" stdset="0"> <number>10</number> </property> - <property name="suffix"> + <property name="suffix" stdset="0"> <string> ms</string> </property> </widget> @@ -404,13 +407,13 @@ <property name="toolTip"> <string>Maximum movement of the finger for detecting a tap</string> </property> - <property name="singleStep"> + <property name="singleStep" stdset="0"> <double>0.100000000000000</double> </property> - <property name="suffix"> + <property name="suffix" stdset="0"> <string> mm</string> </property> - <property name="decimals"> + <property name="decimals" stdset="0"> <number>1</number> </property> </widget> @@ -420,16 +423,16 @@ <property name="toolTip"> <string>Maximum time (in milliseconds) for detecting a double tap</string> </property> - <property name="minimum"> + <property name="minimum" stdset="0"> <number>0</number> </property> <property name="maximum"> <number>99</number> </property> - <property name="singleStep"> + <property name="singleStep" stdset="0"> <number>10</number> </property> - <property name="suffix"> + <property name="suffix" stdset="0"> <string> ms</string> </property> </widget> @@ -439,16 +442,16 @@ <property name="toolTip"> <string>Timeout after a tap to recognize it as a single tap</string> </property> - <property name="minimum"> + <property name="minimum" stdset="0"> <number>0</number> </property> <property name="maximum"> <number>99</number> </property> - <property name="singleStep"> + <property name="singleStep" stdset="0"> <number>10</number> </property> - <property name="suffix"> + <property name="suffix" stdset="0"> <string> ms</string> </property> </widget> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcm-touchpad-5.2.0~git20150125/src/kded/kcm_touchpad.notifyrc new/kcm-touchpad-5.2.1~git20150225/src/kded/kcm_touchpad.notifyrc --- old/kcm-touchpad-5.2.0~git20150125/src/kded/kcm_touchpad.notifyrc 2015-01-24 15:01:54.000000000 +0100 +++ new/kcm-touchpad-5.2.1~git20150225/src/kded/kcm_touchpad.notifyrc 2015-02-16 11:18:17.000000000 +0100 @@ -11,9 +11,11 @@ Name[fi]=Kosketuslevy Name[fr]=Pavé tactile Name[hu]=Érintőtábla +Name[it]=Touchpad Name[ko]=터치패드 Name[lt]=Jutiklinis kilimėlis Name[nl]=Touchpad +Name[pa]=ਟੱਚਪੈਡ Name[pl]=Gładzik Name[pt]=Rato por Toque Name[pt_BR]=Touchpad @@ -29,6 +31,7 @@ Name[uk]=Сенсорна панель Name[x-test]=xxTouchpadxx Name[zh_CN]=触摸板 +Name[zh_TW]=觸控板 IconName=input-touchpad Comment=Touchpad Comment[bs]=Dodirna površina @@ -42,9 +45,11 @@ Comment[fi]=Kosketuslevy Comment[fr]=Pavé tactile Comment[hu]=Érintőtábla +Comment[it]=Touchpad Comment[ko]=터치패드 Comment[lt]=Jutiklinis kilimėlis Comment[nl]=Touchpad +Comment[pa]=ਟੱਚਪੈਡ Comment[pl]=Gładzik Comment[pt]=Rato por Toque Comment[pt_BR]=Touchpad @@ -60,6 +65,7 @@ Comment[uk]=Сенсорна панель Comment[x-test]=xxTouchpadxx Comment[zh_CN]=触摸板 +Comment[zh_TW]=觸控板 [Event/TouchpadDisabled] Name=Touchpad was disabled @@ -74,6 +80,7 @@ Name[fi]=Kosketuslevy poistettiin käytöstä Name[fr]=Le pavé tactile a été désactivé Name[hu]=Az érintőtábla le lett tiltva +Name[it]=Il touchpad è stato disabilitato Name[ko]=터치패드 비활성화됨 Name[lt]=Jutiklinis kilimėlis išjungtas Name[nl]=Touchpad was uitgeschakeld @@ -92,6 +99,7 @@ Name[uk]=Сенсорну панель вимкнено Name[x-test]=xxTouchpad was disabledxx Name[zh_CN]=触摸板已禁用 +Name[zh_TW]=觸控板已關閉 Comment=Touchpad was disabled because mouse is detected Comment[bs]=Dodirna površina je isključena jer je miš prepoznat Comment[ca]=El ratolí tàctil s'ha desactivat perquè s'ha detectat un ratolí @@ -104,6 +112,7 @@ Comment[fi]=Kosketuslevy poistettiin käytöstä, koska havaittiin hiiri Comment[fr]=Le pavé tactile a été désactivé car une souris a été détectée Comment[hu]=Az érintőtábla le lett tiltva, mert érzékelhető egy egér +Comment[it]=Il touchpad è stato disabilitato perché è stato rilevato un mouse Comment[ko]=마우스가 감지되어 터치패드 비활성화됨 Comment[lt]=Jutiklinis kilimėlis išjungtas, nes aptikta pelė Comment[nl]=Touchpad was uitgeschakeld omdat er een muis is gedetecteerd @@ -122,6 +131,7 @@ Comment[uk]=Сенсорну панель вимкнено, оскільки виявлено мишу Comment[x-test]=xxTouchpad was disabled because mouse is detectedxx Comment[zh_CN]=因为检测到鼠标,触摸板已禁用 +Comment[zh_TW]=觸控板已關閉,因為已偵測到滑鼠 Sound=KDE-Sys-App-Positive.ogg Action=Popup @@ -138,6 +148,7 @@ Name[fi]=Kosketuslevy otettiin käyttöön Name[fr]=Le pavé tactile a été activé Name[hu]=Az érintőtábla engedélyezve lett +Name[it]=Il touchpad è stato abilitato Name[ko]=터치패드 활성화됨 Name[lt]=Jutiklinis kilimėlis įjungtas Name[nl]=Touchpad was ingeschakeld @@ -156,6 +167,7 @@ Name[uk]=Сенсорну панель увімкнено Name[x-test]=xxTouchpad was enabledxx Name[zh_CN]=触摸板已启用 +Name[zh_TW]=觸控板已開啟 Comment=Touchpad was enabled because the mouse was unplugged Comment[bs]=Dodirna površina je uključena jer je miš isključen Comment[ca]=El ratolí tàctil s'ha activat perquè en ratolí s'ha desendollat @@ -168,6 +180,7 @@ Comment[fi]=Kosketuslevy otettiin käyttöön, koska hiiri irrotettiin Comment[fr]=Le pavé tactile a été activé car la souris a été débranchée Comment[hu]=Az érintőtábla engedélyezve lett, mert az egér ki lett húzva +Comment[it]=Il touchpad è stato abilitato perché il mouse è stato disconnesso Comment[ko]=마우스가 연결 해제되어 터치패드 활성화됨 Comment[lt]=Jutiklinis kilimėlis įjungtas, nes buvo atjungta pelė Comment[nl]=Touchpad was ingeschakeld omdat er een muis is uitgetrokken @@ -186,5 +199,6 @@ Comment[uk]=Сенсорну панель увімкнено, оскільки мишу було від’єднано Comment[x-test]=xxTouchpad was enabled because the mouse was unpluggedxx Comment[zh_CN]=因为鼠标已拔出,触摸板已禁用 +Comment[zh_TW]=觸控板已開啟,因為滑鼠未插入 Sound=KDE-Sys-App-Negative.ogg Action=Sound diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcm-touchpad-5.2.0~git20150125/src/kded/kded_touchpad.desktop new/kcm-touchpad-5.2.1~git20150225/src/kded/kded_touchpad.desktop --- old/kcm-touchpad-5.2.0~git20150125/src/kded/kded_touchpad.desktop 2015-01-24 15:01:54.000000000 +0100 +++ new/kcm-touchpad-5.2.1~git20150225/src/kded/kded_touchpad.desktop 2015-02-16 11:18:17.000000000 +0100 @@ -17,9 +17,11 @@ Name[fi]=Kosketuslevy Name[fr]=Pavé tactile Name[hu]=Érintőtábla +Name[it]=Touchpad Name[ko]=터치패드 Name[lt]=Jutiklinis kilimėlis Name[nl]=Touchpad +Name[pa]=ਟੱਚਪੈਡ Name[pl]=Gładzik Name[pt]=Rato por Toque Name[pt_BR]=Touchpad @@ -35,6 +37,7 @@ Name[uk]=Сенсорна панель Name[x-test]=xxTouchpadxx Name[zh_CN]=触摸板 +Name[zh_TW]=觸控板 Comment=Enables or disables touchpad Comment[bs]=Uključuje ili isključuje dodirnu površinu Comment[ca]=Activa o desactiva el ratolí tàctil @@ -47,6 +50,7 @@ Comment[fi]=Ottaa kosketuslevyn käyttöön tai poistaa sen käytöstä Comment[fr]=Active ou désactive le pavé tactile Comment[hu]=Engedélyezi vagy letiltja az érintőtáblát +Comment[it]=Abilita o disabilita il touchpad Comment[ko]=터치패드 활성/비활성 Comment[lt]=Įjungia/išjungia jutiklinį kilimėlį Comment[nl]=Schakelt het touchpad in of uit @@ -65,3 +69,4 @@ Comment[uk]=Вмикає або вимикає сенсорну панель Comment[x-test]=xxEnables or disables touchpadxx Comment[zh_CN]=启用或禁用触摸板 +Comment[zh_TW]=開啟或關閉觸控板 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcm-touchpad-5.2.0~git20150125/src/kded/kdedactions.cpp new/kcm-touchpad-5.2.1~git20150225/src/kded/kdedactions.cpp --- old/kcm-touchpad-5.2.0~git20150125/src/kded/kdedactions.cpp 2015-01-24 15:01:54.000000000 +0100 +++ new/kcm-touchpad-5.2.1~git20150225/src/kded/kdedactions.cpp 2015-02-16 11:18:17.000000000 +0100 @@ -19,6 +19,7 @@ #include "kdedactions.h" #include <QAction> +#include <QDebug> #include <KLocalizedString> #include <KGlobalAccel> @@ -33,17 +34,28 @@ QAction *enable = addAction("Enable Touchpad"); enable->setText(i18n("Enable Touchpad")); connect(enable, SIGNAL(triggered()), SIGNAL(enableTriggered())); + bool okEnable = KGlobalAccel::setGlobalShortcut(enable, QKeySequence(Qt::Key_TouchpadOn)); + if (!okEnable) { + qWarning() << "Couldn't set global shortcut to Qt::Key_TouchpadOn. There's another program using it, otherwise file a bug against kcm_touchpad"; + } QAction *disable = addAction("Disable Touchpad"); disable->setText(i18n("Disable Touchpad")); connect(disable, SIGNAL(triggered()), SIGNAL(disableTriggered())); + bool okDisable = KGlobalAccel::setGlobalShortcut(disable, QKeySequence(Qt::Key_TouchpadOff)); + if (!okDisable) { + qWarning() << "Couldn't set global shortcut to Qt::Key_TouchpadOff. There's another program using it, otherwise file a bug against kcm_touchpad"; + } QAction *toggle = addAction("Toggle Touchpad"); toggle->setText(i18n("Toggle Touchpad")); connect(toggle, SIGNAL(triggered()), SIGNAL(toggleTriggered())); + bool okToggle = KGlobalAccel::setGlobalShortcut(toggle, QKeySequence(Qt::Key_TouchpadToggle)); + if (!okToggle) { + qWarning() << "Couldn't set global shortcut to Qt::Key_TouchpadToggle. There's another program using it, otherwise file a bug against kcm_touchpad"; + } Q_FOREACH (QAction *act, actions()) { - KGlobalAccel::setGlobalShortcut(act,QKeySequence()); KActionCollection::setShortcutsConfigurable(act,true); if (isConfiguration) { act->setProperty("isConfigurationAction", true); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcm-touchpad-5.2.0~git20150125/src/touchpadbackend.cpp new/kcm-touchpad-5.2.1~git20150225/src/touchpadbackend.cpp --- old/kcm-touchpad-5.2.0~git20150125/src/touchpadbackend.cpp 2015-01-24 15:01:54.000000000 +0100 +++ new/kcm-touchpad-5.2.1~git20150225/src/touchpadbackend.cpp 2015-02-16 11:18:17.000000000 +0100 @@ -32,7 +32,7 @@ //There will be multiple backends later static QThreadStorage<QSharedPointer<XlibBackend> > backend; if (!backend.hasLocalData()) { - backend.setLocalData(QSharedPointer<XlibBackend>(new XlibBackend())); + backend.setLocalData(QSharedPointer<XlibBackend>(XlibBackend::initialize())); } return backend.localData().data(); } -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org