Hello community, here is the log from the commit of package kwindowsystem for openSUSE:Factory checked in at 2019-05-21 10:32:57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kwindowsystem (Old) and /work/SRC/openSUSE:Factory/.kwindowsystem.new.5148 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kwindowsystem" Tue May 21 10:32:57 2019 rev:70 rq:703384 version:5.58.0 Changes: -------- --- /work/SRC/openSUSE:Factory/kwindowsystem/kwindowsystem.changes 2019-04-19 21:24:43.987900892 +0200 +++ /work/SRC/openSUSE:Factory/.kwindowsystem.new.5148/kwindowsystem.changes 2019-05-21 10:32:59.355375251 +0200 @@ -1,0 +2,15 @@ +Wed May 15 18:16:18 UTC 2019 - lbeltr...@kde.org + +- Update to 5.58.0 + * New feature release + * For more details please see: + * https://www.kde.org/announcements/kde-frameworks-5.58.0.php +- Changes since 5.57.0: + * API dox: fix typo + * Introduce CriticalNotificationType + * Adjust unit test for newly added state + * Support NET_WM_STATE_FOCUSED + * Document that modToStringUser and stringUserToMod only deal with english strings + * Replace count() == 0 by isEmpty() + +------------------------------------------------------------------- Old: ---- kwindowsystem-5.57.0.tar.xz New: ---- kwindowsystem-5.58.0.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kwindowsystem.spec ++++++ --- /var/tmp/diff_new_pack.GjZf2o/_old 2019-05-21 10:32:59.967374853 +0200 +++ /var/tmp/diff_new_pack.GjZf2o/_new 2019-05-21 10:32:59.971374851 +0200 @@ -17,14 +17,14 @@ %define lname libKF5WindowSystem5 -%define _tar_path 5.57 +%define _tar_path 5.58 # 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 lang Name: kwindowsystem -Version: 5.57.0 +Version: 5.58.0 Release: 0 Summary: KDE Access to window manager License: LGPL-2.1-or-later ++++++ kwindowsystem-5.57.0.tar.xz -> kwindowsystem-5.58.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwindowsystem-5.57.0/CMakeLists.txt new/kwindowsystem-5.58.0/CMakeLists.txt --- old/kwindowsystem-5.57.0/CMakeLists.txt 2019-04-07 09:33:44.000000000 +0200 +++ new/kwindowsystem-5.58.0/CMakeLists.txt 2019-05-07 13:30:02.000000000 +0200 @@ -1,11 +1,11 @@ cmake_minimum_required(VERSION 3.5) -set(KF5_VERSION "5.57.0") # handled by release scripts +set(KF5_VERSION "5.58.0") # handled by release scripts project(KWindowSystem VERSION ${KF5_VERSION}) # ECM setup include(FeatureSummary) -find_package(ECM 5.57.0 NO_MODULE) +find_package(ECM 5.58.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.57.0/autotests/kwindowinfox11test.cpp new/kwindowsystem-5.58.0/autotests/kwindowinfox11test.cpp --- old/kwindowsystem-5.57.0/autotests/kwindowinfox11test.cpp 2019-04-07 09:33:44.000000000 +0200 +++ new/kwindowsystem-5.58.0/autotests/kwindowinfox11test.cpp 2019-05-07 13:30:02.000000000 +0200 @@ -415,6 +415,7 @@ QTest::newRow("ComboBox") << NET::ComboBoxMask << NET::ComboBox << NET::ComboBox; QTest::newRow("DNDIcon") << NET::DNDIconMask << NET::DNDIcon << NET::DNDIcon; QTest::newRow("OnScreenDisplay") << NET::OnScreenDisplayMask << NET::OnScreenDisplay << NET::OnScreenDisplay; + QTest::newRow("CriticalNotification") << NET::CriticalNotificationMask << NET::CriticalNotification << NET::CriticalNotification; // incorrect masks QTest::newRow("desktop-unknown") << NET::NormalMask << NET::Desktop << NET::Unknown; @@ -433,6 +434,7 @@ QTest::newRow("ComboBox-unknown") << NET::NormalMask << NET::ComboBox << NET::Unknown; QTest::newRow("DNDIcon-unknown") << NET::NormalMask << NET::DNDIcon << NET::Unknown; QTest::newRow("OnScreenDisplay-unknown") << NET::NormalMask << NET::OnScreenDisplay << NET::Unknown; + QTest::newRow("CriticalNotification-unknown") << NET::NormalMask << NET::CriticalNotification << NET::Unknown; } void KWindowInfoX11Test::testWindowType() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwindowsystem-5.57.0/autotests/netrootinfotestwm.cpp new/kwindowsystem-5.58.0/autotests/netrootinfotestwm.cpp --- old/kwindowsystem-5.57.0/autotests/netrootinfotestwm.cpp 2019-04-07 09:33:44.000000000 +0200 +++ new/kwindowsystem-5.58.0/autotests/netrootinfotestwm.cpp 2019-05-07 13:30:02.000000000 +0200 @@ -216,7 +216,7 @@ NETRootInfo rootInfo(connection(), m_supportWindow, s_wmName, NET::WMAllProperties, NET::AllTypesMask, NET::States(~0u), NET::WM2AllProperties, NET::Actions(~0u)); int count = 0; - for (int i = 0; i < 32; ++i) { + for (int i = 0; i < 33; ++i) { if (i == 12) { continue; } @@ -231,7 +231,7 @@ QVERIFY(rootInfo.isSupported(NET::WindowTypeMask(1 << i))); count++; } - for (int i = 0; i < 12; ++i) { + for (int i = 0; i < 13; ++i) { QVERIFY(rootInfo.isSupported(NET::State(1 << i))); count++; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwindowsystem-5.57.0/autotests/netwininfotestclient.cpp new/kwindowsystem-5.58.0/autotests/netwininfotestclient.cpp --- old/kwindowsystem-5.57.0/autotests/netwininfotestclient.cpp 2019-04-07 09:33:44.000000000 +0200 +++ new/kwindowsystem-5.58.0/autotests/netwininfotestclient.cpp 2019-05-07 13:30:02.000000000 +0200 @@ -601,6 +601,7 @@ QTest::newRow("DNDIcon") << NET::DNDIcon << 1 << QByteArrayLiteral("_NET_WM_WINDOW_TYPE_DND") << QByteArray(); QTest::newRow("Normal") << NET::Normal << 1 << QByteArrayLiteral("_NET_WM_WINDOW_TYPE_NORMAL") << QByteArray(); QTest::newRow("OnScreenDisplay") << NET::OnScreenDisplay << 1 << QByteArrayLiteral("_KDE_NET_WM_WINDOW_TYPE_ON_SCREEN_DISPLAY") << QByteArray(); + QTest::newRow("CriticalNotification") << NET::CriticalNotification << 1 << QByteArrayLiteral("_KDE_NET_WM_WINDOW_TYPE_CRITICAL_NOTIFICATION") << QByteArray(); } void NetWinInfoTestClient::testWindowType() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwindowsystem-5.57.0/autotests/netwininfotestwm.cpp new/kwindowsystem-5.58.0/autotests/netwininfotestwm.cpp --- old/kwindowsystem-5.57.0/autotests/netwininfotestwm.cpp 2019-04-07 09:33:44.000000000 +0200 +++ new/kwindowsystem-5.58.0/autotests/netwininfotestwm.cpp 2019-05-07 13:30:02.000000000 +0200 @@ -437,6 +437,7 @@ const QByteArray fullScreen = QByteArrayLiteral("_NET_WM_STATE_FULLSCREEN"); const QByteArray keepBelow = QByteArrayLiteral("_NET_WM_STATE_BELOW"); const QByteArray demandsAttention = QByteArrayLiteral("_NET_WM_STATE_DEMANDS_ATTENTION"); + const QByteArray focused = QByteArrayLiteral("_NET_WM_STATE_FOCUSED"); QTest::newRow("modal") << NET::States(NET::Modal) << (QVector<QByteArray>() << modal); QTest::newRow("sticky") << NET::States(NET::Sticky) << (QVector<QByteArray>() << sticky); @@ -452,6 +453,7 @@ QTest::newRow("keepBelow") << NET::States(NET::KeepBelow) << (QVector<QByteArray>() << keepBelow); QTest::newRow("demandsAttention") << NET::States(NET::DemandsAttention) << (QVector<QByteArray>() << demandsAttention); QTest::newRow("skipSwitcher") << NET::States(NET::SkipSwitcher) << (QVector<QByteArray>() << skipSwitcher); + QTest::newRow("focused") << NET::States(NET::Focused) << (QVector<QByteArray>() << focused); // TODO: it's possible to be keep above and below at the same time?!? QTest::newRow("all") << NET::States(NET::Modal | @@ -465,11 +467,12 @@ NET::Hidden | NET::FullScreen | NET::DemandsAttention | - NET::SkipSwitcher) + NET::SkipSwitcher | + NET::Focused) << (QVector<QByteArray>() << modal << sticky << maxVert << maxHoriz << shaded << skipTaskbar << keepAbove << skipPager << hidden << fullScreen - << keepBelow << demandsAttention << staysOnTop << skipSwitcher); + << keepBelow << demandsAttention << staysOnTop << skipSwitcher << focused); } void NetWinInfoTestWM::testState() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwindowsystem-5.57.0/po/zh_CN/kwindowsystem5_qt.po new/kwindowsystem-5.58.0/po/zh_CN/kwindowsystem5_qt.po --- old/kwindowsystem-5.57.0/po/zh_CN/kwindowsystem5_qt.po 2019-04-07 09:33:44.000000000 +0200 +++ new/kwindowsystem-5.58.0/po/zh_CN/kwindowsystem5_qt.po 2019-05-07 13:30:02.000000000 +0200 @@ -13,8 +13,8 @@ msgid "" msgstr "" "Project-Id-Version: kdeorg\n" -"PO-Revision-Date: 2019-03-07 09:22\n" -"Last-Translator: guoyunhe <i...@guoyunhe.me>\n" +"PO-Revision-Date: 2019-05-05 22:21\n" +"Last-Translator: Guo Yunhe (guoyunhe)\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.57.0/src/kkeyserver.h new/kwindowsystem-5.58.0/src/kkeyserver.h --- old/kwindowsystem-5.57.0/src/kkeyserver.h 2019-04-07 09:33:44.000000000 +0200 +++ new/kwindowsystem-5.58.0/src/kkeyserver.h 2019-05-07 13:30:02.000000000 +0200 @@ -47,12 +47,12 @@ * Converts the mask of ORed KKey::ModFlag modifiers to a * user-readable string. * @param mod the mask of ORed KKey::ModFlag modifiers - * @return the user-readable string + * @return the user-readable string (in English) */ KWINDOWSYSTEM_EXPORT QString modToStringUser(uint mod); /** - * Converts the modifier given as user-readable string + * Converts the modifier given as user-readable string (in English) * to KKey::ModFlag modifier, or 0. * @internal */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwindowsystem-5.57.0/src/kstartupinfo.cpp new/kwindowsystem-5.58.0/src/kstartupinfo.cpp --- old/kwindowsystem-5.57.0/src/kstartupinfo.cpp 2019-04-07 09:33:44.000000000 +0200 +++ new/kwindowsystem-5.58.0/src/kstartupinfo.cpp 2019-05-07 13:30:02.000000000 +0200 @@ -441,8 +441,8 @@ void KStartupInfo::Private::remove_startup_pids(const KStartupInfoId &id_P, const KStartupInfoData &data_P) { - if (data_P.pids().count() == 0) { - qFatal("data_P.pids().count() == 0"); + if (data_P.pids().isEmpty()) { + qFatal("data_P.pids().isEmpty()"); } Data *data = nullptr; if (startups.contains(id_P)) { @@ -458,7 +458,7 @@ for (auto pid : pids) { data->d->remove_pid(pid); // remove all pids from the info } - if (data->pids().count() == 0) { // all pids removed -> remove info + if (data->pids().isEmpty()) { // all pids removed -> remove info removeAllStartupInfoInternal(id_P); } } @@ -827,7 +827,7 @@ KStartupInfo::startup_t KStartupInfo::Private::check_startup_internal(WId w_P, KStartupInfoId *id_O, KStartupInfoData *data_O) { - if (startups.count() == 0) { + if (startups.isEmpty()) { return NoMatch; // no startups } // Strategy: @@ -1010,8 +1010,8 @@ void KStartupInfo::Private::startups_cleanup() { - if (startups.count() == 0 && silent_startups.count() == 0 - && uninited_startups.count() == 0) { + if (startups.isEmpty() && silent_startups.isEmpty() + && uninited_startups.isEmpty()) { cleanup->stop(); return; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwindowsystem-5.57.0/src/kwindowsystem.h new/kwindowsystem-5.58.0/src/kwindowsystem.h --- old/kwindowsystem-5.57.0/src/kwindowsystem.h 2019-04-07 09:33:44.000000000 +0200 +++ new/kwindowsystem-5.58.0/src/kwindowsystem.h 2019-05-07 13:30:02.000000000 +0200 @@ -482,7 +482,7 @@ */ static void setUserTime(WId win, long time); /** - * Sets the strut of window @p win to @p to @p left width + * Sets the strut of window @p win to @p left_width * ranging from @p left_start to @p left_end on the left edge, * and simiarly for the other edges. For not reserving a strut, pass 0 as the width. * E.g. to reserve 10x10 square in the topleft corner, use e.g. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwindowsystem-5.57.0/src/netwm_def.h new/kwindowsystem-5.58.0/src/netwm_def.h --- old/kwindowsystem-5.57.0/src/netwm_def.h 2019-04-07 09:33:44.000000000 +0200 +++ new/kwindowsystem-5.58.0/src/netwm_def.h 2019-05-07 13:30:02.000000000 +0200 @@ -378,7 +378,12 @@ indicates an On Screen Display window (such as volume feedback) @since 5.6 **/ - OnScreenDisplay = 16 // NON STANDARD + OnScreenDisplay = 16, // NON STANDARD + /** + indicates a critical notification (such as battery is running out) + @since 5.58 + **/ + CriticalNotification = 17, // NON STANDARD }; /** @@ -403,6 +408,7 @@ ComboBoxMask = 1u << 14, ///< @see ComboBox DNDIconMask = 1u << 15, ///< @see DNDIcon OnScreenDisplayMask = 1u << 16, ///< NON STANDARD @see OnScreenDisplay @since 5.6 + CriticalNotificationMask = 1u << 17, ///< NON STANDARD @see CriticalNotification @since 5.58 AllTypesMask = 0U - 1 ///< All window types. }; Q_DECLARE_FLAGS(WindowTypes, WindowTypeMask) @@ -499,7 +505,13 @@ @since 5.45 **/ - SkipSwitcher = 1u << 12 + SkipSwitcher = 1u << 12, + /** + indicates that a client should render as though it has focus + Only the window manager is allowed to change it. + @since 5.58 + **/ + Focused = 1u << 13, }; Q_DECLARE_FLAGS(States, State) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwindowsystem-5.57.0/src/platforms/xcb/atoms_p.h new/kwindowsystem-5.58.0/src/platforms/xcb/atoms_p.h --- old/kwindowsystem-5.57.0/src/platforms/xcb/atoms_p.h 2019-04-07 09:33:44.000000000 +0200 +++ new/kwindowsystem-5.58.0/src/platforms/xcb/atoms_p.h 2019-05-07 13:30:02.000000000 +0200 @@ -133,6 +133,7 @@ ENUM(_NET_WM_STATE_ABOVE), ENUM(_NET_WM_STATE_BELOW), ENUM(_NET_WM_STATE_DEMANDS_ATTENTION), + ENUM(_NET_WM_STATE_FOCUSED), // KDE-specific atom ENUM(_KDE_NET_WM_STATE_SKIP_SWITCHER), @@ -153,6 +154,7 @@ ENUM(_KDE_NET_WM_WINDOW_TYPE_OVERRIDE), ENUM(_KDE_NET_WM_WINDOW_TYPE_TOPMENU), ENUM(_KDE_NET_WM_WINDOW_TYPE_ON_SCREEN_DISPLAY), + ENUM(_KDE_NET_WM_WINDOW_TYPE_CRITICAL_NOTIFICATION), ENUM(_KDE_NET_WM_TEMPORARY_RULES), ENUM(_NET_WM_FRAME_OVERLAP), // deprecated and naming convention violation diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwindowsystem-5.57.0/src/platforms/xcb/netwm.cpp new/kwindowsystem-5.58.0/src/platforms/xcb/netwm.cpp --- old/kwindowsystem-5.57.0/src/platforms/xcb/netwm.cpp 2019-04-07 09:33:44.000000000 +0200 +++ new/kwindowsystem-5.58.0/src/platforms/xcb/netwm.cpp 2019-05-07 13:30:02.000000000 +0200 @@ -976,6 +976,9 @@ if (p->windowTypes & OnScreenDisplayMask) { atoms[pnum++] = p->atom(_KDE_NET_WM_WINDOW_TYPE_ON_SCREEN_DISPLAY); } + if (p->windowTypes & CriticalNotificationMask) { + atoms[pnum++] = p->atom(_KDE_NET_WM_WINDOW_TYPE_CRITICAL_NOTIFICATION); + } } if (p->properties & WMState) { @@ -1025,6 +1028,9 @@ if (p->states & StaysOnTop) { atoms[pnum++] = p->atom(_NET_WM_STATE_STAYS_ON_TOP); } + if (p->states & Focused) { + atoms[pnum++] = p->atom(_NET_WM_STATE_FOCUSED); + } } if (p->properties & WMStrut) { @@ -1298,6 +1304,8 @@ p->windowTypes |= TopMenuMask; } else if (atom == p->atom(_KDE_NET_WM_WINDOW_TYPE_ON_SCREEN_DISPLAY)) { p->windowTypes |= OnScreenDisplayMask; + } else if (atom == p->atom(_KDE_NET_WM_WINDOW_TYPE_CRITICAL_NOTIFICATION)) { + p->windowTypes |= CriticalNotificationMask; } else if (atom == p->atom(_NET_WM_STATE)) { @@ -1331,10 +1339,10 @@ p->states |= KeepBelow; } else if (atom == p->atom(_NET_WM_STATE_DEMANDS_ATTENTION)) { p->states |= DemandsAttention; - } - - else if (atom == p->atom(_NET_WM_STATE_STAYS_ON_TOP)) { + } else if (atom == p->atom(_NET_WM_STATE_STAYS_ON_TOP)) { p->states |= StaysOnTop; + } else if (atom == p->atom(_NET_WM_STATE_FOCUSED)) { + p->states |= Focused; } else if (atom == p->atom(_NET_WM_STRUT)) { @@ -3035,6 +3043,7 @@ xcb_send_event(p->conn, false, p->root, netwm_sendevent_mask, (const char *) &event); } + //Focused is not added here as it is effectively "read only" set by the WM, a client setting it would be silly } else { p->state &= ~mask; p->state |= state; @@ -3064,6 +3073,9 @@ if (p->state & DemandsAttention) { data[count++] = p->atom(_NET_WM_STATE_DEMANDS_ATTENTION); } + if (p->state & Focused) { + data[count++] = p->atom(_NET_WM_STATE_FOCUSED); + } // Policy if (p->state & KeepAbove) { @@ -3212,6 +3224,12 @@ len = 1; break; + case CriticalNotification: + data[0] = p->atom(_KDE_NET_WM_WINDOW_TYPE_CRITICAL_NOTIFICATION); + data[1] = p->atom(_NET_WM_WINDOW_TYPE_NOTIFICATION); + len = 1; + break; + default: case Normal: data[0] = p->atom(_NET_WM_WINDOW_TYPE_NORMAL); @@ -3664,6 +3682,8 @@ mask |= DemandsAttention; } else if ((xcb_atom_t) message->data.data32[i] == p->atom(_NET_WM_STATE_STAYS_ON_TOP)) { mask |= StaysOnTop; + } else if ((xcb_atom_t) message->data.data32[i] == p->atom(_NET_WM_STATE_FOCUSED)) { + mask |= Focused; } } @@ -4088,6 +4108,10 @@ else if (state == p->atom(_NET_WM_STATE_STAYS_ON_TOP)) { p->state |= StaysOnTop; } + + else if (state == p->atom(_NET_WM_STATE_FOCUSED)) { + p->state |= Focused; + } } } @@ -4233,6 +4257,10 @@ else if (type == p->atom(_KDE_NET_WM_WINDOW_TYPE_ON_SCREEN_DISPLAY)) { p->types[pos++] = OnScreenDisplay; } + + else if (type == p->atom(_KDE_NET_WM_WINDOW_TYPE_CRITICAL_NOTIFICATION)) { + p->types[pos++] = CriticalNotification; + } } } } @@ -4304,7 +4332,7 @@ QVector<uint32_t> data = get_array_reply<uint32_t>(p->conn, cookies[c++], XCB_ATOM_CARDINAL); - if (data.count() == 0) { + if (data.isEmpty()) { data = get_array_reply<uint32_t>(p->conn, cookies[c++], XCB_ATOM_CARDINAL); } else { xcb_discard_reply(p->conn, cookies[c++].sequence); @@ -4620,6 +4648,7 @@ CHECK_TYPE_MASK(ComboBox) CHECK_TYPE_MASK(DNDIcon) CHECK_TYPE_MASK(OnScreenDisplay) + CHECK_TYPE_MASK(CriticalNotification) #undef CHECK_TYPE_MASK default: break;