Hello community,

here is the log from the commit of package kwindowsystem for openSUSE:Factory 
checked in at 2016-11-17 12:38:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kwindowsystem (Old)
 and      /work/SRC/openSUSE:Factory/.kwindowsystem.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kwindowsystem"

Changes:
--------
--- /work/SRC/openSUSE:Factory/kwindowsystem/kwindowsystem.changes      
2016-10-28 12:24:29.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kwindowsystem.new/kwindowsystem.changes 
2016-11-17 12:38:08.000000000 +0100
@@ -1,0 +2,9 @@
+Sat Nov  5 22:12:26 UTC 2016 - [email protected]
+
+- Update to 5.28.0
+  * Improved relocatability of CMake export
+  * Add support for desktopFileName to NETWinInfo
+  * For more details please see:
+    https://www.kde.org/announcements/kde-frameworks-5.28.0.php
+
+-------------------------------------------------------------------

Old:
----
  kwindowsystem-5.27.0.tar.xz

New:
----
  kwindowsystem-5.28.0.tar.xz

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

Other differences:
------------------
++++++ kwindowsystem.spec ++++++
--- /var/tmp/diff_new_pack.DSDdjP/_old  2016-11-17 12:38:09.000000000 +0100
+++ /var/tmp/diff_new_pack.DSDdjP/_new  2016-11-17 12:38:09.000000000 +0100
@@ -18,9 +18,9 @@
 
 %bcond_without lang
 %define lname   libKF5WindowSystem5
-%define _tar_path 5.27
+%define _tar_path 5.28
 Name:           kwindowsystem
-Version:        5.27.0
+Version:        5.28.0
 Release:        0
 BuildRequires:  cmake >= 2.8.12
 BuildRequires:  extra-cmake-modules >= %{_tar_path}

++++++ kwindowsystem-5.27.0.tar.xz -> kwindowsystem-5.28.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwindowsystem-5.27.0/CMakeLists.txt 
new/kwindowsystem-5.28.0/CMakeLists.txt
--- old/kwindowsystem-5.27.0/CMakeLists.txt     2016-10-02 12:01:58.000000000 
+0200
+++ new/kwindowsystem-5.28.0/CMakeLists.txt     2016-11-05 16:00:08.000000000 
+0100
@@ -4,7 +4,7 @@
 
 # ECM setup
 include(FeatureSummary)
-find_package(ECM 5.27.0  NO_MODULE)
+find_package(ECM 5.28.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)
 
@@ -19,7 +19,7 @@
 
 include(ECMPoQmTools)
 
-set(KF5_VERSION "5.27.0") # handled by release scripts
+set(KF5_VERSION "5.28.0") # handled by release scripts
 
 ecm_setup_version(${KF5_VERSION} VARIABLE_PREFIX KWINDOWSYSTEM
                         VERSION_HEADER 
"${CMAKE_CURRENT_BINARY_DIR}/kwindowsystem_version.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwindowsystem-5.27.0/autotests/netwininfotestclient.cpp 
new/kwindowsystem-5.28.0/autotests/netwininfotestclient.cpp
--- old/kwindowsystem-5.27.0/autotests/netwininfotestclient.cpp 2016-10-02 
12:01:58.000000000 +0200
+++ new/kwindowsystem-5.28.0/autotests/netwininfotestclient.cpp 2016-11-05 
16:00:08.000000000 +0100
@@ -61,6 +61,7 @@
     void testBlockCompositing();
     void testUserTime();
     void testStartupId();
+    void testDesktopFileName();
     void testHandledIcons_data();
     void testHandledIcons();
     void testPid();
@@ -285,6 +286,28 @@
     QCOMPARE(info.startupId(), "foo");
 }
 
+void NetWinInfoTestClient::testDesktopFileName()
+{
+    QVERIFY(connection());
+    ATOM(_KDE_NET_WM_DESKTOP_FILE)
+    UTF8
+    INFO
+
+    QVERIFY(!info.desktopFileName());
+    info.setDesktopFileName("foo");
+    QCOMPARE(info.desktopFileName(), "foo");
+
+    // compare with the X property
+    QVERIFY(atom != XCB_ATOM_NONE);
+    QVERIFY(utf8String != XCB_ATOM_NONE);
+    GETPROP(utf8String, 3, 8)
+    QCOMPARE(reinterpret_cast<const char 
*>(xcb_get_property_value(reply.data())), "foo");
+
+    // and wait for our event
+    waitForPropertyChange(&info, atom, NET::Property(0), 
NET::WM2DesktopFileName);
+    QCOMPARE(info.desktopFileName(), "foo");
+}
+
 void NetWinInfoTestClient::testHandledIcons_data()
 {
     QTest::addColumn<bool>("handled");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwindowsystem-5.27.0/src/CMakeLists.txt 
new/kwindowsystem-5.28.0/src/CMakeLists.txt
--- old/kwindowsystem-5.27.0/src/CMakeLists.txt 2016-10-02 12:01:58.000000000 
+0200
+++ new/kwindowsystem-5.28.0/src/CMakeLists.txt 2016-11-05 16:00:08.000000000 
+0100
@@ -85,12 +85,6 @@
     target_include_directories(KF5WindowSystem PUBLIC ${XCB_XCB_INCLUDE_DIR} 
${X11_X11_INCLUDE_PATH})
 endif()
 
-if(IS_ABSOLUTE "${KDE_INSTALL_INCLUDEDIR_KF5}")
-  target_include_directories(KF5WindowSystem INTERFACE 
"$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR_KF5}>" )
-else()
-  target_include_directories(KF5WindowSystem INTERFACE 
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_PREFIX}/${KDE_INSTALL_INCLUDEDIR_KF5}>" )
-endif()
-
 set_target_properties(KF5WindowSystem PROPERTIES VERSION   
${KWINDOWSYSTEM_VERSION_STRING}
                                                  SOVERSION 
${KWINDOWSYSTEM_SOVERSION}
                                                  EXPORT_NAME WindowSystem
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwindowsystem-5.27.0/src/netwm_def.h 
new/kwindowsystem-5.28.0/src/netwm_def.h
--- old/kwindowsystem-5.27.0/src/netwm_def.h    2016-10-02 12:01:58.000000000 
+0200
+++ new/kwindowsystem-5.28.0/src/netwm_def.h    2016-11-05 16:00:08.000000000 
+0100
@@ -687,6 +687,7 @@
         @li WM2InitialMappingState initial state hint of WM_HINTS (see ICCCM 
4.1.2.4)
         @li WM2IconPixmap icon pixmap and mask in WM_HINTS (see ICCCM 4.1.2.4)
         @li WM2OpaqueRegion
+        @li WM2DesktopFileName the base name of the desktop file name or the 
full path to the desktop file
     **/
     enum Property2 {
         WM2UserTime            = 1u << 0,
@@ -716,6 +717,7 @@
         WM2InitialMappingState = 1u << 24, // @since 5.5
         WM2IconPixmap          = 1u << 25, // @since 5.7
         WM2OpaqueRegion        = 1u << 25, // @since 5.7
+        WM2DesktopFileName     = 1u << 26, // NOT STANDARD @since 5.28
         WM2AllProperties       = ~0u
     };
     Q_DECLARE_FLAGS(Properties2, Property2)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwindowsystem-5.27.0/src/platforms/xcb/atoms_p.h 
new/kwindowsystem-5.28.0/src/platforms/xcb/atoms_p.h
--- old/kwindowsystem-5.27.0/src/platforms/xcb/atoms_p.h        2016-10-02 
12:01:58.000000000 +0200
+++ new/kwindowsystem-5.28.0/src/platforms/xcb/atoms_p.h        2016-11-05 
16:00:08.000000000 +0100
@@ -100,6 +100,7 @@
     ENUM(_NET_WM_WINDOW_OPACITY),
     ENUM(_NET_WM_FULLSCREEN_MONITORS),
     ENUM(_NET_WM_OPAQUE_REGION),
+    ENUM(_KDE_NET_WM_DESKTOP_FILE),
     // used to determine whether application window is managed or not
     ENUM(WM_STATE),
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwindowsystem-5.27.0/src/platforms/xcb/netwm.cpp 
new/kwindowsystem-5.28.0/src/platforms/xcb/netwm.cpp
--- old/kwindowsystem-5.27.0/src/platforms/xcb/netwm.cpp        2016-10-02 
12:01:58.000000000 +0200
+++ new/kwindowsystem-5.28.0/src/platforms/xcb/netwm.cpp        2016-11-05 
16:00:08.000000000 +0100
@@ -172,6 +172,7 @@
         delete [] p->class_name;
         delete [] p->activities;
         delete [] p->client_machine;
+        delete [] p->desktop_file;
 
         int i;
         for (i = 0; i < p->icons.size(); i++) {
@@ -2587,6 +2588,7 @@
     p->client_machine = (char *) 0;
     p->icon_sizes = NULL;
     p->activities = (char *) 0;
+    p->desktop_file = Q_NULLPTR;
     p->blockCompositing = false;
     p->urgency = false;
     p->input = true;
@@ -2649,6 +2651,7 @@
     p->client_machine = (char *) 0;
     p->icon_sizes = NULL;
     p->activities = (char *) 0;
+    p->desktop_file = Q_NULLPTR;
     p->blockCompositing = false;
     p->urgency = false;
     p->input = true;
@@ -3774,6 +3777,8 @@
             dirty2 |= WM2Protocols;
         } else if (pe->atom == p->atom(_NET_WM_OPAQUE_REGION)) {
             dirty2 |= WM2OpaqueRegion;
+        } else if (pe->atom == p->atom(_KDE_NET_WM_DESKTOP_FILE)) {
+            dirty2 = WM2DesktopFileName;
         }
 
         do_update = true;
@@ -3961,6 +3966,10 @@
         cookies[c++] = xcb_get_property(p->conn, false, p->window, 
p->atom(_NET_WM_OPAQUE_REGION), XCB_ATOM_CARDINAL, 0, MAX_PROP_SIZE);
     }
 
+    if (dirty2 & WM2DesktopFileName) {
+        cookies[c++] = xcb_get_property(p->conn, false, p->window, 
p->atom(_KDE_NET_WM_DESKTOP_FILE), p->atom(UTF8_STRING), 0, MAX_PROP_SIZE);
+    }
+
     c = 0;
 
     if (dirty & XAWMState) {
@@ -4524,6 +4533,16 @@
             p->opaqueRegion.push_back(rect);
         }
     }
+
+    if (dirty2 & WM2DesktopFileName) {
+        delete[] p->desktop_file;
+        p->desktop_file = NULL;
+
+        const QByteArray id = get_string_reply(p->conn, cookies[c++], 
p->atom(UTF8_STRING));
+        if (id.length() > 0) {
+            p->desktop_file = nstrndup(id.constData(), id.length());
+        }
+    }
 }
 
 NETRect NETWinInfo::iconGeometry() const
@@ -4803,6 +4822,25 @@
     return p->conn;
 }
 
+void NETWinInfo::setDesktopFileName(const char *name)
+{
+    if (p->role != Client) {
+        return;
+    }
+
+    delete[] p->desktop_file;
+    p->desktop_file = nstrdup(name);
+
+    xcb_change_property(p->conn, XCB_PROP_MODE_REPLACE, p->window, 
p->atom(_KDE_NET_WM_DESKTOP_FILE),
+                        p->atom(UTF8_STRING), 8, strlen(p->desktop_file),
+                        (const void *) p->desktop_file);
+}
+
+const char *NETWinInfo::desktopFileName() const
+{
+    return p->desktop_file;
+}
+
 void NETRootInfo::virtual_hook(int, void *)
 {
     /*BASE::virtual_hook( id, data );*/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwindowsystem-5.27.0/src/platforms/xcb/netwm.h 
new/kwindowsystem-5.28.0/src/platforms/xcb/netwm.h
--- old/kwindowsystem-5.27.0/src/platforms/xcb/netwm.h  2016-10-02 
12:01:58.000000000 +0200
+++ new/kwindowsystem-5.28.0/src/platforms/xcb/netwm.h  2016-11-05 
16:00:08.000000000 +0100
@@ -1583,6 +1583,28 @@
     std::vector<NETRect> opaqueRegion() const;
 
     /**
+     * Sets the @p name as the desktop file name.
+     *
+     * This is either the base name without full path and without file 
extension of the
+     * desktop file for the window's application (e.g. "org.kde.foo").
+     *
+     * If the application's desktop file name is not at a standard location it 
should be
+     * the full path to the desktop file name (e.g. 
"/opt/kde/share/org.kde.foo.desktop").
+     *
+     * If the window does not know the desktop file name, it should not set 
the name at all.
+     *
+     * @since 5.28
+     **/
+    void setDesktopFileName(const char *name);
+
+    /**
+     * @returns The desktop file name of the window's application if present.
+     * @since 5.28
+     * @see setDesktopFileName
+     **/
+    const char *desktopFileName() const;
+
+    /**
        Sentinel value to indicate that the client wishes to be visible on
        all desktops.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwindowsystem-5.27.0/src/platforms/xcb/netwm_p.h 
new/kwindowsystem-5.28.0/src/platforms/xcb/netwm_p.h
--- old/kwindowsystem-5.27.0/src/platforms/xcb/netwm_p.h        2016-10-02 
12:01:58.000000000 +0200
+++ new/kwindowsystem-5.28.0/src/platforms/xcb/netwm_p.h        2016-11-05 
16:00:08.000000000 +0100
@@ -182,7 +182,7 @@
     xcb_window_t transient_for, window_group;
     xcb_pixmap_t icon_pixmap, icon_mask;
     NET::Actions allowed_actions;
-    char *class_class, *class_name, *window_role, *client_machine;
+    char *class_class, *class_name, *window_role, *client_machine, 
*desktop_file;
 
     NET::Properties properties;
     NET::Properties2 properties2;


Reply via email to