File x11backend-fix.diff of Package kcm-touchpad
commit 98f9c679fbd91e0333e2cfd1d0ec2b1345c19ed3
Author: Alexander Mezin <mezin.alexander@gmail.com>
Date: Fri Jun 6 14:18:51 2014 +0700
X11 backend: specify display string for record connection
diff --git a/src/backends/x11/xlibbackend.cpp b/src/backends/x11/xlibbackend.cpp
index dbd2a63..95c76cb 100644
--- a/src/backends/x11/xlibbackend.cpp
+++ b/src/backends/x11/xlibbackend.cpp
@@ -696,7 +696,7 @@ void XlibBackend::watchForEvents(bool keyboard)
return;
}
- m_keyboard.reset(new XRecordKeyboardMonitor());
+ m_keyboard.reset(new XRecordKeyboardMonitor(m_display.data()));
connect(m_keyboard.data(), SIGNAL(keyboardActivityStarted()),
SIGNAL(keyboardActivityStarted()));
connect(m_keyboard.data(), SIGNAL(keyboardActivityFinished()),
diff --git a/src/backends/x11/xrecordkeyboardmonitor.cpp b/src/backends/x11/xrecordkeyboardmonitor.cpp
index d108e7b..1dceee2 100644
--- a/src/backends/x11/xrecordkeyboardmonitor.cpp
+++ b/src/backends/x11/xrecordkeyboardmonitor.cpp
@@ -24,9 +24,11 @@
#include <QScopedPointer>
#include <xcb/xcbext.h>
+#include <X11/Xlib.h>
-XRecordKeyboardMonitor::XRecordKeyboardMonitor()
- : m_connection(xcb_connect(0, 0)), m_modifiersPressed(0), m_keysPressed(0)
+XRecordKeyboardMonitor::XRecordKeyboardMonitor(Display *display)
+ : m_connection(xcb_connect(XDisplayString(display), 0)),
+ m_modifiersPressed(0), m_keysPressed(0)
{
if (!m_connection) {
return;
diff --git a/src/backends/x11/xrecordkeyboardmonitor.h b/src/backends/x11/xrecordkeyboardmonitor.h
index 933cb78..79e4052 100644
--- a/src/backends/x11/xrecordkeyboardmonitor.h
+++ b/src/backends/x11/xrecordkeyboardmonitor.h
@@ -21,6 +21,7 @@
#include <QVector>
#include <QSocketNotifier>
+#include <QX11Info>
#include <xcb/xcb.h>
#include <xcb/record.h>
@@ -30,7 +31,7 @@ class XRecordKeyboardMonitor : public QObject
Q_OBJECT
public:
- XRecordKeyboardMonitor();
+ XRecordKeyboardMonitor(Display *display);
~XRecordKeyboardMonitor();
Q_SIGNALS: