Hello community,

here is the log from the commit of package kwindowsystem for openSUSE:Factory 
checked in at 2017-09-19 16:27:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kwindowsystem (Old)
 and      /work/SRC/openSUSE:Factory/.kwindowsystem.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kwindowsystem"

Tue Sep 19 16:27:20 2017 rev:49 rq:526678 version:5.38.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/kwindowsystem/kwindowsystem.changes      
2017-08-24 17:59:03.656124358 +0200
+++ /work/SRC/openSUSE:Factory/.kwindowsystem.new/kwindowsystem.changes 
2017-09-19 16:27:21.857577212 +0200
@@ -1,0 +2,12 @@
+Tue Sep 12 07:11:18 CEST 2017 - [email protected]
+
+- Update to 5.38.0
+  * New feature release
+  * For more details please see:
+  * https://www.kde.org/announcements/kde-frameworks-5.38.0.php
+- Changes since 5.37.0:
+  * Do not leak symbols of pimpl classes, protect with Q_DECL_HIDDEN
+  * Restore behaviour of KKeyServer::symXToKeyQt
+  * KKeyServer: fix handling of KeypadModifier.
+
+-------------------------------------------------------------------

Old:
----
  kwindowsystem-5.37.0.tar.xz

New:
----
  kwindowsystem-5.38.0.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kwindowsystem.spec ++++++
--- /var/tmp/diff_new_pack.r9XPfU/_old  2017-09-19 16:27:22.405499572 +0200
+++ /var/tmp/diff_new_pack.r9XPfU/_new  2017-09-19 16:27:22.413498439 +0200
@@ -18,12 +18,16 @@
 
 %bcond_without lang
 %define lname   libKF5WindowSystem5
-%define _tar_path 5.37
+%define _tar_path 5.38
+# Full KF5 version (e.g. 5.33.0)
+%{!?_kf5_version: %global _kf5_version %{version}}
+# Last major and minor KF5 version (e.g. 5.33)
+%{!?_kf5_bugfix_version: %global _kf5_bugfix_version %(echo %{_kf5_version} | 
awk -F. '{print $1"."$2}')}
 Name:           kwindowsystem
-Version:        5.37.0
+Version:        5.38.0
 Release:        0
 BuildRequires:  cmake >= 3.0
-BuildRequires:  extra-cmake-modules >= %{_tar_path}
+BuildRequires:  extra-cmake-modules >= %{_kf5_bugfix_version}
 BuildRequires:  fdupes
 BuildRequires:  kf5-filesystem
 %if %{with lang}

++++++ kwindowsystem-5.37.0.tar.xz -> kwindowsystem-5.38.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwindowsystem-5.37.0/CMakeLists.txt 
new/kwindowsystem-5.38.0/CMakeLists.txt
--- old/kwindowsystem-5.37.0/CMakeLists.txt     2017-08-06 20:12:39.000000000 
+0200
+++ new/kwindowsystem-5.38.0/CMakeLists.txt     2017-09-03 10:16:33.000000000 
+0200
@@ -1,11 +1,11 @@
 cmake_minimum_required(VERSION 3.0)
 
-set(KF5_VERSION "5.37.0") # handled by release scripts
+set(KF5_VERSION "5.38.0") # handled by release scripts
 project(KWindowSystem VERSION ${KF5_VERSION})
 
 # ECM setup
 include(FeatureSummary)
-find_package(ECM 5.37.0  NO_MODULE)
+find_package(ECM 5.38.0  NO_MODULE)
 set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake 
Modules." URL 
"https://projects.kde.org/projects/kdesupport/extra-cmake-modules";)
 feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND 
FATAL_ON_MISSING_REQUIRED_PACKAGES)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwindowsystem-5.37.0/autotests/CMakeLists.txt 
new/kwindowsystem-5.38.0/autotests/CMakeLists.txt
--- old/kwindowsystem-5.37.0/autotests/CMakeLists.txt   2017-08-06 
20:12:39.000000000 +0200
+++ new/kwindowsystem-5.38.0/autotests/CMakeLists.txt   2017-09-03 
10:16:33.000000000 +0200
@@ -39,6 +39,7 @@
         kmanagerselectiontest
         kstartupinfo_unittest
         kxmessages_unittest
+        kkeyserver_x11_unittest
     )
 
     kwindowsystem_unit_tests(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwindowsystem-5.37.0/autotests/kkeyserver_x11_unittest.cpp 
new/kwindowsystem-5.38.0/autotests/kkeyserver_x11_unittest.cpp
--- old/kwindowsystem-5.37.0/autotests/kkeyserver_x11_unittest.cpp      
1970-01-01 01:00:00.000000000 +0100
+++ new/kwindowsystem-5.38.0/autotests/kkeyserver_x11_unittest.cpp      
2017-09-03 10:16:33.000000000 +0200
@@ -0,0 +1,79 @@
+/* This file is part of the KDE libraries
+    Copyright (c) 2017 David Faure <[email protected]>
+
+    This library is free software; you can redistribute it and/or modify
+    it under the terms of the GNU Lesser General Public License as published by
+    the Free Software Foundation; either version 2 of the License or ( at
+    your option ) version 3 or, at the discretion of KDE e.V. ( which shall
+    act as a proxy as in section 14 of the GPLv3 ), any later version.
+
+    This library 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
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public License
+    along with this library; see the file COPYING.LIB.  If not, write to
+    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+    Boston, MA 02110-1301, USA.
+*/
+
+#include <QTest>
+#include "kkeyserver_x11.h"
+#include <X11/keysym.h>
+
+class KKeyServerTest : public QObject
+{
+    Q_OBJECT
+private Q_SLOTS:
+
+    void keyQtToSymX_data()
+    {
+        QTest::addColumn<int>("keyQt");
+        QTest::addColumn<uint>("modX");
+        QTest::addColumn<int>("keySymX");
+
+        QTest::newRow("a") << int(Qt::Key_A) << uint(0) << XK_A;
+        QTest::newRow("CTRL_F1") << int(Qt::ControlModifier|Qt::Key_F1) << 
KKeyServer::modXCtrl() << XK_F1;
+        QTest::newRow("CTRL_1") << int(Qt::ControlModifier|Qt::Key_1) << 
KKeyServer::modXCtrl() << XK_1;
+        QTest::newRow("CTRL_keypad_1") << 
int(Qt::ControlModifier|Qt::KeypadModifier|Qt::Key_1) << KKeyServer::modXCtrl() 
<< XK_KP_1;
+        QTest::newRow("CTRL_keypad_slash") << 
int(Qt::ControlModifier|Qt::KeypadModifier|Qt::Key_Slash) << 
KKeyServer::modXCtrl() << XK_KP_Divide;
+        QTest::newRow("CTRL_ampersand") << 
int(Qt::ControlModifier|Qt::Key_Ampersand) << KKeyServer::modXCtrl() << 
XK_ampersand;
+    }
+
+    void keyQtToSymX()
+    {
+        QFETCH(int, keyQt);
+        QFETCH(uint, modX);
+        QFETCH(int, keySymX);
+        int sym;
+        QVERIFY(KKeyServer::keyQtToSymX(keyQt, &sym));
+        QCOMPARE(sym, keySymX);
+        uint mod;
+        QVERIFY(KKeyServer::keyQtToModX(keyQt, &mod));
+        QCOMPARE(mod, modX);
+    }
+
+    void symXToKeyQt_data()
+    {
+        keyQtToSymX_data();
+    }
+
+    void symXToKeyQt()
+    {
+        QFETCH(int, keyQt);
+        QFETCH(uint, modX);
+        QFETCH(int, keySymX);
+        int keyCodeQt;
+
+        //qDebug() << "modX=" << modX << "keySymX=0x" << 
QString::number(keySymX, 16);
+
+        QVERIFY(KKeyServer::symXModXToKeyQt(keySymX, modX, &keyCodeQt));
+        QCOMPARE(keyCodeQt, keyQt);
+    }
+
+};
+
+QTEST_MAIN(KKeyServerTest)
+
+#include "kkeyserver_x11_unittest.moc"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwindowsystem-5.37.0/src/kstartupinfo.cpp 
new/kwindowsystem-5.38.0/src/kstartupinfo.cpp
--- old/kwindowsystem-5.37.0/src/kstartupinfo.cpp       2017-08-06 
20:12:39.000000000 +0200
+++ new/kwindowsystem-5.38.0/src/kstartupinfo.cpp       2017-09-03 
10:16:33.000000000 +0200
@@ -87,7 +87,7 @@
 static QStringList get_fields(const QString &txt_P);
 static QString escape_str(const QString &str_P);
 
-class KStartupInfo::Data
+class Q_DECL_HIDDEN KStartupInfo::Data
     : public KStartupInfoData
 {
 public:
@@ -97,7 +97,8 @@
     unsigned int age;
 };
 
-struct KStartupInfoId::Private {
+struct Q_DECL_HIDDEN KStartupInfoId::Private
+{
     Private() : id("") {}
 
     QString to_text() const;
@@ -105,7 +106,8 @@
     QByteArray id; // id
 };
 
-struct KStartupInfoData::Private {
+struct Q_DECL_HIDDEN KStartupInfoData::Private
+{
     Private() : desktop(0), wmclass(""), hostname(""),
         silent(KStartupInfoData::Unknown), screen(-1), xinerama(-1), 
launched_by(0) {}
 
@@ -127,7 +129,7 @@
     QString application_id;
 };
 
-class KStartupInfo::Private
+class Q_DECL_HIDDEN KStartupInfo::Private
 {
 public:
     // private slots
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwindowsystem-5.37.0/src/kwindowinfo.cpp 
new/kwindowsystem-5.38.0/src/kwindowinfo.cpp
--- old/kwindowsystem-5.37.0/src/kwindowinfo.cpp        2017-08-06 
20:12:39.000000000 +0200
+++ new/kwindowsystem-5.38.0/src/kwindowinfo.cpp        2017-09-03 
10:16:33.000000000 +0200
@@ -41,7 +41,7 @@
 KWindowInfoPrivatePidExtension::KWindowInfoPrivatePidExtension() = default;
 KWindowInfoPrivatePidExtension::~KWindowInfoPrivatePidExtension() = default;
 
-class KWindowInfoPrivate::Private
+class Q_DECL_HIDDEN KWindowInfoPrivate::Private
 {
 public:
     Private(WId window, NET::Properties properties, NET::Properties2 
properties2);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwindowsystem-5.37.0/src/platforms/osx/kwindowinfo_mac_p.h 
new/kwindowsystem-5.38.0/src/platforms/osx/kwindowinfo_mac_p.h
--- old/kwindowsystem-5.37.0/src/platforms/osx/kwindowinfo_mac_p.h      
2017-08-06 20:12:39.000000000 +0200
+++ new/kwindowsystem-5.38.0/src/platforms/osx/kwindowinfo_mac_p.h      
2017-09-03 10:16:33.000000000 +0200
@@ -28,7 +28,7 @@
 #undef check
 #endif
 
-struct KWindowInfo::Private {
+struct Q_DECL_HIDDEN KWindowInfo::Private {
     Private();
     ~Private();
     int ref;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwindowsystem-5.37.0/src/platforms/windows/kwindowinfo.cpp 
new/kwindowsystem-5.38.0/src/platforms/windows/kwindowinfo.cpp
--- old/kwindowsystem-5.37.0/src/platforms/windows/kwindowinfo.cpp      
2017-08-06 20:12:39.000000000 +0200
+++ new/kwindowsystem-5.38.0/src/platforms/windows/kwindowinfo.cpp      
2017-09-03 10:16:33.000000000 +0200
@@ -23,7 +23,7 @@
 #include <stdlib.h>
 #include <QCoreApplication>
 
-class KWindowInfo::Private
+class Q_DECL_HIDDEN KWindowInfo::Private
 {
 public:
     Private()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwindowsystem-5.37.0/src/platforms/xcb/kkeyserver.cpp 
new/kwindowsystem-5.38.0/src/platforms/xcb/kkeyserver.cpp
--- old/kwindowsystem-5.37.0/src/platforms/xcb/kkeyserver.cpp   2017-08-06 
20:12:39.000000000 +0200
+++ new/kwindowsystem-5.38.0/src/platforms/xcb/kkeyserver.cpp   2017-09-03 
10:16:33.000000000 +0200
@@ -19,6 +19,7 @@
 */
 
 #include "kkeyserver_x11.h"
+#include "kkeyserver.h"
 
 #include "../../debug_p.h"
 #include <QDebug>
@@ -88,7 +89,6 @@
     { Qt::Key_Backtab,    XK_ISO_Left_Tab },
     { Qt::Key_Backspace,  XK_BackSpace },
     { Qt::Key_Return,     XK_Return },
-    { Qt::Key_Enter,      XK_KP_Enter },
     { Qt::Key_Insert,     XK_Insert },
     { Qt::Key_Delete,     XK_Delete },
     { Qt::Key_Pause,      XK_Pause },
@@ -157,11 +157,27 @@
     //{ Qt::Key_Direction_L, XK_Direction_L }, These keys don't exist in X11
     //{ Qt::Key_Direction_R, XK_Direction_R },
 
-    { '/',                XK_KP_Divide },
-    { '*',                XK_KP_Multiply },
-    { '-',                XK_KP_Subtract },
-    { '+',                XK_KP_Add },
-    { Qt::Key_Return,     XK_KP_Enter }
+    { Qt::Key_Space,      XK_KP_Space },
+    { Qt::Key_Tab,        XK_KP_Tab },
+    { Qt::Key_Enter,      XK_KP_Enter },
+    { Qt::Key_Home,       XK_KP_Home },
+    { Qt::Key_Left,       XK_KP_Left },
+    { Qt::Key_Up,         XK_KP_Up },
+    { Qt::Key_Right,      XK_KP_Right },
+    { Qt::Key_Down,       XK_KP_Down },
+    { Qt::Key_PageUp,     XK_KP_Prior },
+    { Qt::Key_PageDown,   XK_KP_Next },
+    { Qt::Key_End,        XK_KP_End },
+    { Qt::Key_Clear,      XK_KP_Begin },
+    { Qt::Key_Insert,     XK_KP_Insert },
+    { Qt::Key_Delete,     XK_KP_Delete },
+    { Qt::Key_Equal,      XK_KP_Equal },
+    { Qt::Key_Asterisk,   XK_KP_Multiply },
+    { Qt::Key_Plus,       XK_KP_Add },
+    { Qt::Key_Comma,      XK_KP_Separator },
+    { Qt::Key_Minus,      XK_KP_Subtract },
+    { Qt::Key_Period,     XK_KP_Decimal },
+    { Qt::Key_Slash,      XK_KP_Divide },
 
 // the next lines are taken on 10/2009 from X.org (X11/XF86keysym.h), defining 
some special
 // multimedia keys. They are included here as not every system has them.
@@ -304,7 +320,6 @@
 #define XF86XK_TouchpadOff         0x1008FFB1
 #define XF86XK_AudioMicMute        0x1008FFB2
 // end of XF86keysyms.h
-    ,
 
     // All of the stuff below really has to match qxcbkeyboard.cpp in Qt!
     { Qt::Key_Back,       XF86XK_Back },
@@ -612,6 +627,15 @@
 }
 
 //---------------------------------------------------------------------
+// Helper functions
+//---------------------------------------------------------------------
+
+static bool is_keypad_key(xcb_keysym_t keysym)
+{
+    return keysym >= XK_KP_Space && keysym <= XK_KP_9;
+}
+
+//---------------------------------------------------------------------
 // Public functions
 //---------------------------------------------------------------------
 
@@ -733,13 +757,22 @@
 {
     int symQt = keyQt & ~Qt::KeyboardModifierMask;
 
-    if (symQt < 0x1000) {
-        *keySym = QChar(symQt).toUpper().unicode();
-        return true;
+    if (keyQt & Qt::KeypadModifier) {
+        if (symQt >= Qt::Key_0 && symQt <= Qt::Key_9) {
+            *keySym = XK_KP_0 + (symQt - Qt::Key_0);
+            return true;
+        }
+    } else {
+        if (symQt < 0x1000) {
+            *keySym = QChar(symQt).toUpper().unicode();
+            return true;
+        }
     }
 
     for (uint i = 0; i < sizeof(g_rgQtToSymX) / sizeof(TransKey); i++) {
         if (g_rgQtToSymX[i].keySymQt == symQt) {
+            if ((keyQt & Qt::KeypadModifier) && 
!is_keypad_key(g_rgQtToSymX[i].keySymX))
+                continue;
             *keySym = g_rgQtToSymX[i].keySymX;
             return true;
         }
@@ -753,10 +786,16 @@
     return false;
 }
 
-bool symXToKeyQt(uint keySym, int *keyQt)
+bool symXModXToKeyQt(uint32_t keySym, uint16_t modX, int *keyQt)
 {
+    int keyModQt = 0;
     *keyQt = Qt::Key_unknown;
-    if (keySym < 0x1000) {
+
+    if (keySym >= XK_KP_0 && keySym <= XK_KP_9) {
+        // numeric keypad keys
+        *keyQt = Qt::Key_0 + ((int)keySym - XK_KP_0);
+    }
+    else if (keySym < 0x1000) {
         if (keySym >= 'a' && keySym <= 'z') {
             *keyQt = QChar(keySym).toUpper().unicode();
         } else {
@@ -776,11 +815,26 @@
             }
     }
 
-    return (*keyQt != Qt::Key_unknown);
+    if (*keyQt == Qt::Key_unknown) {
+        return false;
+    }
+
+    if (modXToQt(modX, &keyModQt)) {
+        *keyQt |= keyModQt;
+        if (is_keypad_key(keySym)) {
+            *keyQt |= Qt::KeypadModifier;
+        }
+        return true;
+    }
+    return false;
 }
 
-/* are these things actually used anywhere?  there's no way
-   they can do anything on non-X11 */
+#ifndef KWINDOWSYSTEM_NO_DEPRECATED
+bool symXToKeyQt(uint keySym, int *keyQt)
+{
+    return symXModXToKeyQt(keySym, 0, keyQt) & ~Qt::KeyboardModifierMask;
+}
+#endif
 
 bool keyQtToModX(int modQt, uint *modX)
 {
@@ -882,13 +936,7 @@
         }
     }
 
-    int keyCodeQt;
-    int keyModQt;
-    symXToKeyQt(keySymX, &keyCodeQt);
-    modXToQt(keyModX, &keyModQt);
-
-    *keyQt = keyCodeQt | keyModQt;
-    return true;
+    return KKeyServer::symXModXToKeyQt(keySymX, keyModX, keyQt);
 }
 
 bool xcbKeyPressEventToQt(xcb_generic_event_t *e, int *keyQt)
@@ -901,44 +949,40 @@
 
 bool xcbKeyPressEventToQt(xcb_key_press_event_t *e, int *keyQt)
 {
-    xcb_keycode_t keyCodeX = e->detail;
-    uint keyModX = e->state & (accelModMaskX() | MODE_SWITCH);
+    const uint16_t keyModX = e->state & (accelModMaskX() | MODE_SWITCH);
 
     xcb_key_symbols_t *symbols = xcb_key_symbols_alloc(QX11Info::connection());
-    xcb_keysym_t keySymX = xcb_key_symbols_get_keysym(symbols, keyCodeX, 0);
 
-    // If numlock is active and a keypad key is pressed, XOR the SHIFT state.
-    //  e.g., KP_4 => Shift+KP_Left, and Shift+KP_4 => KP_Left.
-    if (e->state & modXNumLock()) {
-        // If this is a keypad key,
-        if (keySymX >= XK_KP_Space && keySymX <= XK_KP_9) {
-            switch (keySymX) {
-            // Leave the following keys unaltered
-            // FIXME: The proper solution is to see which keysyms don't change 
when shifted.
-            case XK_KP_Multiply:
-            case XK_KP_Add:
-            case XK_KP_Subtract:
-            case XK_KP_Divide:
-                break;
-            default:
-                if (keyModX & modXShift()) {
-                    keyModX &= ~modXShift();
-                } else {
-                    keyModX |= modXShift();
-                }
-            }
+    // We might have to use 4,5 instead of 0,1 here when mode_switch is 
active, just not sure how to test that.
+    const xcb_keysym_t keySym0 = xcb_key_press_lookup_keysym(symbols, e, 0);
+    const xcb_keysym_t keySym1 = xcb_key_press_lookup_keysym(symbols, e, 1);
+    xcb_keysym_t keySymX;
+
+    if ((e->state & KKeyServer::modXNumLock()) && is_keypad_key(keySym1) ) {
+        if ((e->state & XCB_MOD_MASK_SHIFT))
+            keySymX = keySym0;
+        else
+            keySymX = keySym1;
+    } else {
+        if ((e->state & XCB_MOD_MASK_SHIFT))
+            keySymX = keySym1;
+        else
+            keySymX = keySym0;
+    }
+
+    bool ok = KKeyServer::symXModXToKeyQt(keySymX, keyModX, keyQt);
+
+    if ((*keyQt & Qt::ShiftModifier) && 
!KKeyServer::isShiftAsModifierAllowed(*keyQt)) {
+        if (*keyQt != Qt::Key_Tab) { // KKeySequenceWidget does not map 
shift+tab to backtab
+            static const int FirstLevelShift = 1;
+            keySymX = xcb_key_symbols_get_keysym(symbols, e->detail, 
FirstLevelShift);
+            KKeyServer::symXModXToKeyQt(keySymX, keyModX, keyQt);
         }
+        *keyQt &= ~Qt::ShiftModifier;
     }
 
-    int keyCodeQt;
-    int keyModQt;
-    symXToKeyQt(keySymX, &keyCodeQt);
-    modXToQt(keyModX, &keyModQt);
-
-    *keyQt = keyCodeQt | keyModQt;
-
     xcb_key_symbols_free(symbols);
-    return true;
+    return ok;
 }
 
 } // end of namespace KKeyServer block
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwindowsystem-5.37.0/src/platforms/xcb/kkeyserver_x11.h 
new/kwindowsystem-5.38.0/src/platforms/xcb/kkeyserver_x11.h
--- old/kwindowsystem-5.37.0/src/platforms/xcb/kkeyserver_x11.h 2017-08-06 
20:12:39.000000000 +0200
+++ new/kwindowsystem-5.38.0/src/platforms/xcb/kkeyserver_x11.h 2017-09-03 
10:16:33.000000000 +0200
@@ -140,13 +140,25 @@
  */
 KWINDOWSYSTEM_EXPORT bool keyQtToModX(int keyQt, uint *mod);
 
+#ifndef KWINDOWSYSTEM_NO_DEPRECATED
 /**
  * Converts the given symbol to a Qt key code.
  * @param sym the symbol
  * @param keyQt if successful, the qt key code will be written here
  * @return true if successful, false otherwise
+ * @deprecated since 5.38, use symXModXToKeyQt in order to support numeric 
keypad keys too
  */
-KWINDOWSYSTEM_EXPORT bool symXToKeyQt(uint sym, int *keyQt);
+KWINDOWSYSTEM_DEPRECATED_EXPORT bool symXToKeyQt(uint sym, int *keyQt);
+#endif
+
+/**
+ * Converts the given symbol and modifier combination to a Qt key code.
+ * @param keySym the X key symbol
+ * @param modX the mask of X11 modifiers
+ * @param keyQt if successful, the qt key code will be written here
+ * @return true if successful, false otherwise
+ */
+KWINDOWSYSTEM_EXPORT bool symXModXToKeyQt(uint32_t keySym, uint16_t modX, int 
*keyQt);
 
 /**
  * Converts the mask of ORed X11 modifiers to
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwindowsystem-5.37.0/src/platforms/xcb/kselectionowner.cpp 
new/kwindowsystem-5.38.0/src/platforms/xcb/kselectionowner.cpp
--- old/kwindowsystem-5.37.0/src/platforms/xcb/kselectionowner.cpp      
2017-08-06 20:12:39.000000000 +0200
+++ new/kwindowsystem-5.38.0/src/platforms/xcb/kselectionowner.cpp      
2017-09-03 10:16:33.000000000 +0200
@@ -61,7 +61,7 @@
     return atom;
 }
 
-class KSelectionOwner::Private
+class Q_DECL_HIDDEN KSelectionOwner::Private
     : public QAbstractNativeEventFilter
 {
 public:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwindowsystem-5.37.0/src/platforms/xcb/kselectionwatcher.cpp 
new/kwindowsystem-5.38.0/src/platforms/xcb/kselectionwatcher.cpp
--- old/kwindowsystem-5.37.0/src/platforms/xcb/kselectionwatcher.cpp    
2017-08-06 20:12:39.000000000 +0200
+++ new/kwindowsystem-5.38.0/src/platforms/xcb/kselectionwatcher.cpp    
2017-09-03 10:16:33.000000000 +0200
@@ -62,7 +62,7 @@
 // KSelectionWatcher
 //*******************************************
 
-class KSelectionWatcher::Private
+class Q_DECL_HIDDEN KSelectionWatcher::Private
     : public QAbstractNativeEventFilter
 {
 public:


Reply via email to