Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package kwindowsystem for openSUSE:Factory 
checked in at 2023-01-16 17:58:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kwindowsystem (Old)
 and      /work/SRC/openSUSE:Factory/.kwindowsystem.new.32243 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kwindowsystem"

Mon Jan 16 17:58:38 2023 rev:114 rq:1058529 version:5.102.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/kwindowsystem/kwindowsystem.changes      
2022-12-12 17:40:52.149534007 +0100
+++ /work/SRC/openSUSE:Factory/.kwindowsystem.new.32243/kwindowsystem.changes   
2023-01-16 18:01:02.563536593 +0100
@@ -1,0 +2,16 @@
+Thu Jan 12 08:19:12 UTC 2023 - Christophe Marin <[email protected]>
+
+- Update to 5.102.0
+  * New feature release
+  * For more details please see:
+  * https://kde.org/announcements/frameworks/5/5.102.0
+- Changes since 5.101.0:
+  * Merge two KWINDOWSYSTEM_HAVE_X11 sections into one
+  * Fix KStartupInfo::appStarted()
+  * Deprecate KStartupInfo::startupId()
+  * Deprecate KStartupInfo::silenceStartup
+  * Add a formatting commit to blame ignore list
+  * KWindowSystemPluginWrapper doesn't need a virtual dtor
+  * Make KX11Extras::icon behave like KWindowSytem::icon (kde#462739)
+
+-------------------------------------------------------------------

Old:
----
  kwindowsystem-5.101.0.tar.xz
  kwindowsystem-5.101.0.tar.xz.sig

New:
----
  kwindowsystem-5.102.0.tar.xz
  kwindowsystem-5.102.0.tar.xz.sig

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

Other differences:
------------------
++++++ kwindowsystem.spec ++++++
--- /var/tmp/diff_new_pack.26462u/_old  2023-01-16 18:01:03.507541889 +0100
+++ /var/tmp/diff_new_pack.26462u/_new  2023-01-16 18:01:03.531542025 +0100
@@ -17,14 +17,14 @@
 
 
 %define lname   libKF5WindowSystem5
-%define _tar_path 5.101
+%define _tar_path 5.102
 # 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: %define _kf5_bugfix_version %(echo %{_kf5_version} | 
awk -F. '{print $1"."$2}')}
 %bcond_without released
 Name:           kwindowsystem
-Version:        5.101.0
+Version:        5.102.0
 Release:        0
 Summary:        KDE Access to window manager
 License:        LGPL-2.1-or-later


++++++ kwindowsystem-5.101.0.tar.xz -> kwindowsystem-5.102.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwindowsystem-5.101.0/.git-blame-ignore-revs 
new/kwindowsystem-5.102.0/.git-blame-ignore-revs
--- old/kwindowsystem-5.101.0/.git-blame-ignore-revs    2022-12-03 
10:52:28.000000000 +0100
+++ new/kwindowsystem-5.102.0/.git-blame-ignore-revs    2023-01-07 
01:33:39.000000000 +0100
@@ -1,2 +1,5 @@
 #clang-tidy
 5e0a6105963d8fe2721aec9b6a43a565f338c978
+
+# astyle
+12e52f6208c18516b1dbe3c0c15ef5b1967ed40f
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwindowsystem-5.101.0/CMakeLists.txt 
new/kwindowsystem-5.102.0/CMakeLists.txt
--- old/kwindowsystem-5.101.0/CMakeLists.txt    2022-12-03 10:52:28.000000000 
+0100
+++ new/kwindowsystem-5.102.0/CMakeLists.txt    2023-01-07 01:33:39.000000000 
+0100
@@ -1,11 +1,11 @@
 cmake_minimum_required(VERSION 3.16)
 
-set(KF_VERSION "5.101.0") # handled by release scripts
+set(KF_VERSION "5.102.0") # handled by release scripts
 project(KWindowSystem VERSION ${KF_VERSION})
 
 # ECM setup
 include(FeatureSummary)
-find_package(ECM 5.101.0  NO_MODULE)
+find_package(ECM 5.102.0  NO_MODULE)
 set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake 
Modules." URL "https://commits.kde.org/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.101.0/autotests/kstartupinfo_unittest.cpp 
new/kwindowsystem-5.102.0/autotests/kstartupinfo_unittest.cpp
--- old/kwindowsystem-5.101.0/autotests/kstartupinfo_unittest.cpp       
2022-12-03 10:52:28.000000000 +0100
+++ new/kwindowsystem-5.102.0/autotests/kstartupinfo_unittest.cpp       
2023-01-07 01:33:39.000000000 +0100
@@ -328,12 +328,14 @@
 
 void KStartupInfo_UnitTest::setNewStartupIdTest()
 {
+#if KWINDOWSYSTEM_BUILD_DEPRECATED_SINCE(5, 102)
     {
         QWindow window;
         const QByteArray str = 
"somefancyidwhichisrandom_kstartupinfo_unittest_2";
         KStartupInfo::setNewStartupId(&window, str);
         QCOMPARE(KStartupInfo::startupId(), str);
     }
+#endif
 
 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 62)
     {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwindowsystem-5.101.0/poqm/be/kwindowsystem5_qt.po 
new/kwindowsystem-5.102.0/poqm/be/kwindowsystem5_qt.po
--- old/kwindowsystem-5.101.0/poqm/be/kwindowsystem5_qt.po      2022-12-03 
10:52:28.000000000 +0100
+++ new/kwindowsystem-5.102.0/poqm/be/kwindowsystem5_qt.po      2023-01-07 
01:33:39.000000000 +0100
@@ -1,6 +1,3 @@
-# translation of kdelibs4.po to Belarusian
-# translation of kdelibs4.po to
-#
 # Eugene Zelenko <[email protected]>, 2002-2004.
 # Ihar Hrachyshka <[email protected]>, 2006.
 # Darafei Praliaskouski <[email protected]>, 2007.
@@ -12,12 +9,12 @@
 # kom <[email protected]>, 2008.
 msgid ""
 msgstr ""
-"Project-Id-Version: kdelibs4\n"
+"Project-Id-Version: 86ff119b1606fcaa910d6b44fc14b611\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n";
 "POT-Creation-Date: 2014-03-23 01:50+0000\n"
-"PO-Revision-Date: 2009-09-06 15:21+0300\n"
+"PO-Revision-Date: 2023-01-05 07:46\n"
 "Last-Translator: Darafei Praliaskouski <[email protected]>\n"
-"Language-Team: Belarusian <[email protected]>\n"
+"Language-Team: Belarusian\n"
 "Language: be\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -27,11 +24,15 @@
 "%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || n%10>=5 && n%10<=9 || n"
 "%100>=11 && n%100<=14 ? 2 : 3);\n"
 "X-Qt-Contexts: true\n"
+"X-Crowdin-Project: 86ff119b1606fcaa910d6b44fc14b611\n"
+"X-Crowdin-Project-ID: 127\n"
+"X-Crowdin-Language: be\n"
+"X-Crowdin-File: /main/be/kwindowsystem/kwindowsystem5_qt.po\n"
+"X-Crowdin-File-ID: 8371\n"
 
 #: platforms/osx/kwindowsystem.cpp:575 platforms/windows/kwindowsystem.cpp:650
 #: platforms/xcb/kwindowsystem.cpp:1072
-#, fuzzy, qt-format
-#| msgid "Desktop %1"
+#, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
 msgstr "Працоўны стол %1"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwindowsystem-5.101.0/poqm/zh_CN/kwindowsystem5_qt.po 
new/kwindowsystem-5.102.0/poqm/zh_CN/kwindowsystem5_qt.po
--- old/kwindowsystem-5.101.0/poqm/zh_CN/kwindowsystem5_qt.po   2022-12-03 
10:52:28.000000000 +0100
+++ new/kwindowsystem-5.102.0/poqm/zh_CN/kwindowsystem5_qt.po   2023-01-07 
01:33:39.000000000 +0100
@@ -1,7 +1,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: kdeorg\n"
-"PO-Revision-Date: 2022-12-01 06:53\n"
+"PO-Revision-Date: 2023-01-02 07:11\n"
 "Language-Team: Chinese Simplified\n"
 "Language: zh_CN\n"
 "MIME-Version: 1.0\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwindowsystem-5.101.0/src/CMakeLists.txt 
new/kwindowsystem-5.102.0/src/CMakeLists.txt
--- old/kwindowsystem-5.101.0/src/CMakeLists.txt        2022-12-03 
10:52:28.000000000 +0100
+++ new/kwindowsystem-5.102.0/src/CMakeLists.txt        2023-01-07 
01:33:39.000000000 +0100
@@ -37,16 +37,6 @@
 )
 
 if (KWINDOWSYSTEM_HAVE_X11)
-  target_sources(KF5WindowSystem PRIVATE
-    platforms/xcb/kselectionowner.cpp
-    platforms/xcb/kselectionwatcher.cpp
-    platforms/xcb/kxerrorhandler.cpp
-    platforms/xcb/kxutils.cpp
-    kx11extras.cpp
-  )
-endif()
-
-if (KWINDOWSYSTEM_HAVE_X11)
    if(NOT X11_Xfixes_LIB)
       message(FATAL_ERROR "The XFixes library could not be found. Please 
install the development package for it.")
    endif()
@@ -75,8 +65,13 @@
 
    target_sources(KF5WindowSystem PRIVATE
         platforms/xcb/kkeyserver.cpp
+        platforms/xcb/kselectionowner.cpp
+        platforms/xcb/kselectionwatcher.cpp
+        platforms/xcb/kxerrorhandler.cpp
         platforms/xcb/kxmessages.cpp
+        platforms/xcb/kxutils.cpp
         platforms/xcb/netwm.cpp
+        kx11extras.cpp
    )
 
    # we install kkeyserver_x11.h which needs the X11 headers available
@@ -123,7 +118,7 @@
     GROUP_BASE_NAME KF
     VERSION ${KF_VERSION}
     DEPRECATED_BASE_VERSION 0
-    DEPRECATION_VERSIONS 5.0 5.18 5.38 5.62 5.67 5.69 5.80 5.81 5.82 5.101
+    DEPRECATION_VERSIONS 5.0 5.18 5.38 5.62 5.67 5.69 5.80 5.81 5.82 5.101 
5.102
     EXCLUDE_DEPRECATED_BEFORE_AND_AT ${EXCLUDE_DEPRECATED_BEFORE_AND_AT}
 )
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwindowsystem-5.101.0/src/kstartupinfo.cpp 
new/kwindowsystem-5.102.0/src/kstartupinfo.cpp
--- old/kwindowsystem-5.101.0/src/kstartupinfo.cpp      2022-12-03 
10:52:28.000000000 +0100
+++ new/kwindowsystem-5.102.0/src/kstartupinfo.cpp      2023-01-07 
01:33:39.000000000 +0100
@@ -686,7 +686,15 @@
 
 void KStartupInfo::appStarted()
 {
-    appStarted(startupId());
+    QByteArray startupId = s_startup_id;
+
+#if KWINDOWSYSTEM_HAVE_X11
+    if (startupId.isEmpty()) {
+        startupId = QX11Info::nextStartupId();
+    }
+#endif
+
+    appStarted(startupId);
     setStartupId("0"); // reset the id, no longer valid (must use 
clearStartupId() to avoid infinite loop)
 }
 
@@ -704,6 +712,7 @@
 #endif
 }
 
+#if KWINDOWSYSTEM_BUILD_DEPRECATED_SINCE(5, 102)
 void KStartupInfo::silenceStartup(bool silence)
 {
     KStartupInfoId id;
@@ -715,7 +724,9 @@
     data.setSilent(silence ? KStartupInfoData::Yes : KStartupInfoData::No);
     sendChange(id, data);
 }
+#endif
 
+#if KWINDOWSYSTEM_BUILD_DEPRECATED_SINCE(5, 102)
 QByteArray KStartupInfo::startupId()
 {
     if (s_startup_id.isEmpty()) {
@@ -726,10 +737,11 @@
 
     return s_startup_id;
 }
+#endif
 
 void KStartupInfo::setStartupId(const QByteArray &startup_id)
 {
-    if (startup_id == startupId()) {
+    if (startup_id == s_startup_id) {
         return;
     }
     if (startup_id.isEmpty()) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwindowsystem-5.101.0/src/kstartupinfo.h 
new/kwindowsystem-5.102.0/src/kstartupinfo.h
--- old/kwindowsystem-5.101.0/src/kstartupinfo.h        2022-12-03 
10:52:28.000000000 +0100
+++ new/kwindowsystem-5.102.0/src/kstartupinfo.h        2023-01-07 
01:33:39.000000000 +0100
@@ -67,12 +67,19 @@
      */
     static void appStarted(const QByteArray &startup_id);
 
+#if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 102)
     /**
-     * Returns the app startup notification identifier for this running
-     * application.
+     * Returns the startup ID set by setStartupId().
      * @return the startup notification identifier
+     *
+     * @warning This does not give access to the startup ID the app was 
launched with.
+     * Use QX11Info::nextStartupId() to get that.
+     *
+     * @deprecated since 5.102, use QX11Info::nextStartupId().
      */
+    KWINDOWSYSTEM_DEPRECATED_VERSION(5, 102, "Use QX11Info::nextStartupId()")
     static QByteArray startupId();
+#endif
 
     /**
      * Sets a new value for the application startup notification window 
property for newly
@@ -108,6 +115,7 @@
     static void setNewStartupId(QWidget *window, const QByteArray &startup_id);
 #endif
 
+#if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 102)
     /**
      * If your application shows temporarily some window during its startup,
      * for example a dialog, and only after closing it shows the main window,
@@ -115,8 +123,12 @@
      * To temporarily suspend and resume the notification, use this function.
      * Note that this is cumulative, i.e. after suspending twice, you have to
      * resume twice.
+     *
+     * @deprecated since 5.102, no known users.
      */
+    KWINDOWSYSTEM_DEPRECATED_VERSION(5, 102, "No known users")
     static void silenceStartup(bool silence);
+#endif
 
     /**
      * Creates and returns new startup id. The id includes properly setup
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwindowsystem-5.101.0/src/kx11extras.cpp 
new/kwindowsystem-5.102.0/src/kx11extras.cpp
--- old/kwindowsystem-5.101.0/src/kx11extras.cpp        2022-12-03 
10:52:28.000000000 +0100
+++ new/kwindowsystem-5.102.0/src/kx11extras.cpp        2023-01-07 
01:33:39.000000000 +0100
@@ -11,9 +11,18 @@
 #include "kwindowsystem.h"
 #include "kwindowsystem_p.h"
 
+#include "kxutils_p.h"
+#include "netwm.h"
+
 #include <QGuiApplication>
 #include <QRect>
 
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+#include <private/qtx11extras_p.h>
+#else
+#include <QX11Info>
+#endif
+
 // QPoint and QSize all have handy / operators which are useful for scaling, 
positions and sizes for high DPI support
 // QRect does not, so we create one for internal purposes within this class
 inline QRect operator/(const QRect &rectangle, qreal factor)
@@ -102,15 +111,101 @@
     return KWindowSystem::d_func()->icon(win, width, height, scale, flags);
 }
 
+QPixmap iconFromNetWinInfo(int width, int height, bool scale, int flags, 
NETWinInfo *info)
+{
+    QPixmap result;
+    if (!info) {
+        return result;
+    }
+    if (flags & KX11Extras::NETWM) {
+        NETIcon ni = info->icon(width, height);
+        if (ni.data && ni.size.width > 0 && ni.size.height > 0) {
+            QImage img((uchar *)ni.data, (int)ni.size.width, 
(int)ni.size.height, QImage::Format_ARGB32);
+            if (scale && width > 0 && height > 0 && img.size() != QSize(width, 
height) && !img.isNull()) {
+                img = img.scaled(width, height, Qt::IgnoreAspectRatio, 
Qt::SmoothTransformation);
+            }
+            if (!img.isNull()) {
+                result = QPixmap::fromImage(img);
+            }
+            return result;
+        }
+    }
+
+    if (flags & KX11Extras::WMHints) {
+        xcb_pixmap_t p = info->icccmIconPixmap();
+        xcb_pixmap_t p_mask = info->icccmIconPixmapMask();
+
+        if (p != XCB_PIXMAP_NONE) {
+            QPixmap pm = 
KXUtils::createPixmapFromHandle(info->xcbConnection(), p, p_mask);
+            if (scale && width > 0 && height > 0 && !pm.isNull() //
+                && (pm.width() != width || pm.height() != height)) {
+                result = QPixmap::fromImage(pm.toImage().scaled(width, height, 
Qt::IgnoreAspectRatio, Qt::SmoothTransformation));
+            } else {
+                result = pm;
+            }
+        }
+    }
+
+    // Since width can be any arbitrary size, but the icons cannot,
+    // take the nearest value for best results (ignoring 22 pixel
+    // icons as they don't exist for apps):
+    int iconWidth;
+    if (width < 24) {
+        iconWidth = 16;
+    } else if (width < 40) {
+        iconWidth = 32;
+    } else if (width < 56) {
+        iconWidth = 48;
+    } else if (width < 96) {
+        iconWidth = 64;
+    } else if (width < 192) {
+        iconWidth = 128;
+    } else {
+        iconWidth = 256;
+    }
+
+    if (flags & KX11Extras::ClassHint) {
+        // Try to load the icon from the classhint if the app didn't specify
+        // its own:
+        if (result.isNull()) {
+            const QIcon icon = 
QIcon::fromTheme(QString::fromUtf8(info->windowClassClass()).toLower());
+            const QPixmap pm = icon.isNull() ? QPixmap() : 
icon.pixmap(iconWidth, iconWidth);
+            if (scale && !pm.isNull()) {
+                result = QPixmap::fromImage(pm.toImage().scaled(width, height, 
Qt::IgnoreAspectRatio, Qt::SmoothTransformation));
+            } else {
+                result = pm;
+            }
+        }
+    }
+
+    if (flags & KX11Extras::XApp) {
+        // If the icon is still a null pixmap, load the icon for X applications
+        // as a last resort:
+        if (result.isNull()) {
+            const QIcon icon = QIcon::fromTheme(QStringLiteral("xorg"));
+            const QPixmap pm = icon.isNull() ? QPixmap() : 
icon.pixmap(iconWidth, iconWidth);
+            if (scale && !pm.isNull()) {
+                result = QPixmap::fromImage(pm.toImage().scaled(width, height, 
Qt::IgnoreAspectRatio, Qt::SmoothTransformation));
+            } else {
+                result = pm;
+            }
+        }
+    }
+    return result;
+}
+
 QPixmap KX11Extras::icon(WId win, int width, int height, bool scale, int 
flags, NETWinInfo *info)
 {
     width *= qGuiApp->devicePixelRatio();
     height *= qGuiApp->devicePixelRatio();
+
     if (info) {
-        return KWindowSystem::d_func()->iconFromNetWinInfo(width, height, 
scale, flags, info);
+        return iconFromNetWinInfo(width, height, scale, flags, info);
     }
 
-    return KWindowSystem::d_func()->icon(win, width, height, scale, flags);
+    NETWinInfo newInfo(QX11Info::connection(), win, QX11Info::appRootWindow(), 
NET::WMIcon, NET::WM2WindowClass | NET::WM2IconPixmap);
+
+    return iconFromNetWinInfo(width, height, scale, flags, &newInfo);
 }
 
 void KX11Extras::minimizeWindow(WId win)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwindowsystem-5.101.0/src/pluginwrapper_p.h 
new/kwindowsystem-5.102.0/src/pluginwrapper_p.h
--- old/kwindowsystem-5.101.0/src/pluginwrapper_p.h     2022-12-03 
10:52:28.000000000 +0100
+++ new/kwindowsystem-5.102.0/src/pluginwrapper_p.h     2023-01-07 
01:33:39.000000000 +0100
@@ -22,7 +22,7 @@
 {
 public:
     KWindowSystemPluginWrapper();
-    virtual ~KWindowSystemPluginWrapper();
+    ~KWindowSystemPluginWrapper();
     static const KWindowSystemPluginWrapper &self();
 
     KWindowEffectsPrivate *effects() const;

Reply via email to