Hello community, here is the log from the commit of package kwindowsystem for openSUSE:Factory checked in at 2019-12-18 14:41:51 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kwindowsystem (Old) and /work/SRC/openSUSE:Factory/.kwindowsystem.new.4691 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kwindowsystem" Wed Dec 18 14:41:51 2019 rev:77 rq:757068 version:5.65.0 Changes: -------- --- /work/SRC/openSUSE:Factory/kwindowsystem/kwindowsystem.changes 2019-11-12 11:50:37.287045967 +0100 +++ /work/SRC/openSUSE:Factory/.kwindowsystem.new.4691/kwindowsystem.changes 2019-12-18 14:44:10.849825066 +0100 @@ -1,0 +2,12 @@ +Sun Dec 8 11:18:53 UTC 2019 - Christophe Giboudeaux <[email protected]> + +- Update to 5.65.0 + * New feature release + * For more details please see: + * https://www.kde.org/announcements/kde-frameworks-5.65.0.php +- Changes since 5.64.0: + * Adjust count after _GTK_FRAME_EXTENTS addition + * Add support for _GTK_FRAME_EXTENTS + * use modern for syntax + +------------------------------------------------------------------- Old: ---- kwindowsystem-5.64.0.tar.xz kwindowsystem-5.64.0.tar.xz.sig New: ---- kwindowsystem-5.65.0.tar.xz kwindowsystem-5.65.0.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kwindowsystem.spec ++++++ --- /var/tmp/diff_new_pack.vBahLJ/_old 2019-12-18 14:44:11.997825591 +0100 +++ /var/tmp/diff_new_pack.vBahLJ/_new 2019-12-18 14:44:12.001825594 +0100 @@ -1,7 +1,7 @@ # # spec file for package kwindowsystem # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,14 +17,14 @@ %define lname libKF5WindowSystem5 -%define _tar_path 5.64 +%define _tar_path 5.65 # 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.64.0 +Version: 5.65.0 Release: 0 Summary: KDE Access to window manager License: LGPL-2.1-or-later ++++++ kwindowsystem-5.64.0.tar.xz -> kwindowsystem-5.65.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwindowsystem-5.64.0/CMakeLists.txt new/kwindowsystem-5.65.0/CMakeLists.txt --- old/kwindowsystem-5.64.0/CMakeLists.txt 2019-11-02 14:01:48.000000000 +0100 +++ new/kwindowsystem-5.65.0/CMakeLists.txt 2019-12-07 22:49:24.000000000 +0100 @@ -1,11 +1,11 @@ cmake_minimum_required(VERSION 3.5) -set(KF5_VERSION "5.64.0") # handled by release scripts +set(KF5_VERSION "5.65.0") # handled by release scripts project(KWindowSystem VERSION ${KF5_VERSION}) # ECM setup include(FeatureSummary) -find_package(ECM 5.64.0 NO_MODULE) +find_package(ECM 5.65.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) @@ -81,7 +81,6 @@ add_definitions(-DQT_NO_FOREACH) add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x050d00) -add_definitions(-DQT_DEPRECATED_WARNINGS_SINCE=0x060000) add_subdirectory(src) if (BUILD_TESTING) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwindowsystem-5.64.0/autotests/netrootinfotestwm.cpp new/kwindowsystem-5.65.0/autotests/netrootinfotestwm.cpp --- old/kwindowsystem-5.64.0/autotests/netrootinfotestwm.cpp 2019-11-02 14:01:48.000000000 +0100 +++ new/kwindowsystem-5.65.0/autotests/netrootinfotestwm.cpp 2019-12-07 22:49:24.000000000 +0100 @@ -245,6 +245,8 @@ count -= 7; // WM2BlockCompositing has 3 properties count += 2; + // Add _GTK_FRAME_EXTENTS + ++count; QVERIFY(supported != XCB_ATOM_NONE); QVERIFY(utf8String != XCB_ATOM_NONE); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwindowsystem-5.64.0/po/se/kwindowsystem5_qt.po new/kwindowsystem-5.65.0/po/se/kwindowsystem5_qt.po --- old/kwindowsystem-5.64.0/po/se/kwindowsystem5_qt.po 2019-11-02 14:01:48.000000000 +0100 +++ new/kwindowsystem-5.65.0/po/se/kwindowsystem5_qt.po 2019-12-07 22:49:24.000000000 +0100 @@ -21,7 +21,7 @@ "X-Qt-Contexts: true\n" #: platforms/osx/kwindowsystem.cpp:578 platforms/windows/kwindowsystem.cpp:630 -#: platforms/xcb/kwindowsystem.cpp:989 +#: platforms/xcb/kwindowsystem.cpp:987 #, fuzzy, qt-format msgctxt "KWindowSystem|" msgid "Desktop %1" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwindowsystem-5.64.0/po/zh_CN/kwindowsystem5_qt.po new/kwindowsystem-5.65.0/po/zh_CN/kwindowsystem5_qt.po --- old/kwindowsystem-5.64.0/po/zh_CN/kwindowsystem5_qt.po 2019-11-02 14:01:48.000000000 +0100 +++ new/kwindowsystem-5.65.0/po/zh_CN/kwindowsystem5_qt.po 2019-12-07 22:49:24.000000000 +0100 @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: kdeorg\n" -"PO-Revision-Date: 2019-10-09 09:45\n" +"PO-Revision-Date: 2019-11-19 23:01\n" "Last-Translator: Guo Yunhe (guoyunhe)\n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwindowsystem-5.64.0/src/netwm_def.h new/kwindowsystem-5.65.0/src/netwm_def.h --- old/kwindowsystem-5.64.0/src/netwm_def.h 2019-11-02 14:01:48.000000000 +0100 +++ new/kwindowsystem-5.65.0/src/netwm_def.h 2019-12-07 22:49:24.000000000 +0100 @@ -710,6 +710,7 @@ @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 + @li WM2GTKFrameExtents extents of the shadow drawn by the client **/ enum Property2 { WM2UserTime = 1u << 0, @@ -740,6 +741,7 @@ WM2IconPixmap = 1u << 25, // @since 5.7 WM2OpaqueRegion = 1u << 25, // @since 5.7 WM2DesktopFileName = 1u << 26, // NOT STANDARD @since 5.28 + WM2GTKFrameExtents = 1u << 27, // NOT STANDARD @since 5.65 WM2AllProperties = ~0u }; Q_DECLARE_FLAGS(Properties2, Property2) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwindowsystem-5.64.0/src/platforms/xcb/atoms_p.h new/kwindowsystem-5.65.0/src/platforms/xcb/atoms_p.h --- old/kwindowsystem-5.64.0/src/platforms/xcb/atoms_p.h 2019-11-02 14:01:48.000000000 +0100 +++ new/kwindowsystem-5.65.0/src/platforms/xcb/atoms_p.h 2019-12-07 22:49:24.000000000 +0100 @@ -160,6 +160,9 @@ // deprecated and naming convention violation ENUM(_NET_WM_STATE_STAYS_ON_TOP), + // GTK extensions + ENUM(_GTK_FRAME_EXTENTS), + // application protocols ENUM(WM_PROTOCOLS), ENUM(WM_TAKE_FOCUS), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwindowsystem-5.64.0/src/platforms/xcb/kkeyserver.cpp new/kwindowsystem-5.65.0/src/platforms/xcb/kkeyserver.cpp --- old/kwindowsystem-5.64.0/src/platforms/xcb/kkeyserver.cpp 2019-11-02 14:01:48.000000000 +0100 +++ new/kwindowsystem-5.65.0/src/platforms/xcb/kkeyserver.cpp 2019-12-07 22:49:24.000000000 +0100 @@ -769,11 +769,11 @@ } } - 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)) + for (const TransKey &tk : g_rgQtToSymX) { + if (tk.keySymQt == symQt) { + if ((keyQt & Qt::KeypadModifier) && !is_keypad_key(tk.keySymX)) continue; - *keySym = g_rgQtToSymX[i].keySymX; + *keySym = tk.keySymX; return true; } } @@ -808,11 +808,12 @@ } else { - for (uint i = 0; i < sizeof(g_rgQtToSymX) / sizeof(TransKey); i++) - if (g_rgQtToSymX[i].keySymX == keySym) { - *keyQt = g_rgQtToSymX[i].keySymQt; + for (const TransKey &tk : g_rgQtToSymX) { + if (tk.keySymX == keySym) { + *keyQt = tk.keySymQt; break; } + } } if (*keyQt == Qt::Key_unknown) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwindowsystem-5.64.0/src/platforms/xcb/netwm.cpp new/kwindowsystem-5.65.0/src/platforms/xcb/netwm.cpp --- old/kwindowsystem-5.64.0/src/platforms/xcb/netwm.cpp 2019-11-02 14:01:48.000000000 +0100 +++ new/kwindowsystem-5.65.0/src/platforms/xcb/netwm.cpp 2019-12-07 22:49:24.000000000 +0100 @@ -1146,6 +1146,10 @@ atoms[pnum++] = p->atom(_NET_WM_OPAQUE_REGION); } + if (p->properties2 & WM2GTKFrameExtents) { + atoms[pnum++] = p->atom(_GTK_FRAME_EXTENTS); + } + xcb_change_property(p->conn, XCB_PROP_MODE_REPLACE, p->root, p->atom(_NET_SUPPORTED), XCB_ATOM_ATOM, 32, pnum, (const void *) atoms); @@ -1446,6 +1450,10 @@ else if (atom == p->atom(_NET_WM_OPAQUE_REGION)) { p->properties2 |= WM2OpaqueRegion; } + + else if (atom == p->atom(_GTK_FRAME_EXTENTS)) { + p->properties2 |= WM2GTKFrameExtents; + } } void NETRootInfo::setActiveWindow(xcb_window_t window) @@ -3500,6 +3508,25 @@ return p->frame_overlap; } +void NETWinInfo::setGtkFrameExtents(NETStrut strut) +{ + p->gtk_frame_extents = strut; + + uint32_t d[4]; + d[0] = strut.left; + d[1] = strut.right; + d[2] = strut.top; + d[3] = strut.bottom; + + xcb_change_property(p->conn, XCB_PROP_MODE_REPLACE, p->window, p->atom(_GTK_FRAME_EXTENTS), + XCB_ATOM_CARDINAL, 32, 4, (const void *) d); +} + +NETStrut NETWinInfo::gtkFrameExtents() const +{ + return p->gtk_frame_extents; +} + void NETWinInfo::kdeGeometry(NETRect &frame, NETRect &window) { if (p->win_geom.size.width == 0 || p->win_geom.size.height == 0) { @@ -3818,6 +3845,8 @@ dirty2 = WM2DesktopFileName; } else if (pe->atom == p->atom(_NET_WM_FULLSCREEN_MONITORS)) { dirty2 = WM2FullscreenMonitors; + } else if (pe->atom == p->atom(_GTK_FRAME_EXTENTS)) { + dirty2 |= WM2GTKFrameExtents; } do_update = true; @@ -4009,6 +4038,10 @@ 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); } + if (dirty2 & WM2GTKFrameExtents) { + cookies[c++] = xcb_get_property(p->conn, false, p->window, p->atom(_GTK_FRAME_EXTENTS), XCB_ATOM_CARDINAL, 0, 4); + } + c = 0; if (dirty & XAWMState) { @@ -4594,6 +4627,18 @@ p->desktop_file = nstrndup(id.constData(), id.length()); } } + + if (dirty2 & WM2GTKFrameExtents) { + p->gtk_frame_extents = NETStrut(); + + QVector<uint32_t> data = get_array_reply<uint32_t>(p->conn, cookies[c++], XCB_ATOM_CARDINAL); + if (data.count() == 4) { + p->gtk_frame_extents.left = data[0]; + p->gtk_frame_extents.right = data[1]; + p->gtk_frame_extents.top = data[2]; + p->gtk_frame_extents.bottom = data[3]; + } + } } NETRect NETWinInfo::iconGeometry() const diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwindowsystem-5.64.0/src/platforms/xcb/netwm.h new/kwindowsystem-5.65.0/src/platforms/xcb/netwm.h --- old/kwindowsystem-5.64.0/src/platforms/xcb/netwm.h 2019-11-02 14:01:48.000000000 +0100 +++ new/kwindowsystem-5.65.0/src/platforms/xcb/netwm.h 2019-12-07 22:49:24.000000000 +0100 @@ -1310,6 +1310,20 @@ NETStrut frameOverlap() const; /** + Sets the extents of the drop-shadow drawn by the client. + + @since 5.65 + **/ + void setGtkFrameExtents(NETStrut strut); + + /** + Returns the extents of the drop-shadow drawn by a GTK client. + + @since 5.65 + **/ + NETStrut gtkFrameExtents() const; + + /** Returns an icon. If width and height are passed, the icon returned will be the closest it can find (the next biggest). If width and height are omitted, then the largest icon in the list is returned. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwindowsystem-5.64.0/src/platforms/xcb/netwm_p.h new/kwindowsystem-5.65.0/src/platforms/xcb/netwm_p.h --- old/kwindowsystem-5.64.0/src/platforms/xcb/netwm_p.h 2019-11-02 14:01:48.000000000 +0100 +++ new/kwindowsystem-5.65.0/src/platforms/xcb/netwm_p.h 2019-12-07 22:49:24.000000000 +0100 @@ -171,6 +171,7 @@ NETStrut strut; NETStrut frame_strut; // strut? NETStrut frame_overlap; + NETStrut gtk_frame_extents; NETRArray<NET::WindowType> types; char *name, *visible_name, *icon_name, *visible_icon_name; int desktop;
