Hello community, here is the log from the commit of package kwayland for openSUSE:Factory checked in at 2018-07-21 10:15:57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kwayland (Old) and /work/SRC/openSUSE:Factory/.kwayland.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kwayland" Sat Jul 21 10:15:57 2018 rev:51 rq:623317 version:5.48.0 Changes: -------- --- /work/SRC/openSUSE:Factory/kwayland/kwayland.changes 2018-06-22 13:24:28.318847685 +0200 +++ /work/SRC/openSUSE:Factory/.kwayland.new/kwayland.changes 2018-07-21 10:16:00.299089635 +0200 @@ -1,0 +2,30 @@ +Mon Jul 16 04:37:44 UTC 2018 - [email protected] + +- Update to 5.48.0 + * New feature release + * For more details please see: + * https://www.kde.org/announcements/kde-frameworks-5.48.0.php +- Changes since 5.47.0: + * Fix some of cppcheck warnings + * [server] Send frame event instead of flush on relative pointer motion (kde#395815) + * Fix XDGV6 popup test + * Fix stupid copy paste bug in XDGShellV6 Client + * Do not cancel old clipboard selection if it is same as the new one. (kde#395366) + * Fix compiler warning about hidden virtual overloads + * Honor BUILD_TESTING + * Fix some spelling issues suggested by new linter tool + * Add the arclint file in kwayland + * Fix 'unused parameter' warnings + * Documentation fix + * [server] Small code cleanup in SurfaceInterface + * Fixup @since for skip switcher API +- Dropped patches, now upstream: + * 0001-Do-not-cancel-old-clipboard-selection-if-it-is-same-.patch + +------------------------------------------------------------------- +Thu Jun 21 17:11:52 UTC 2018 - [email protected] + +- Add patch to fix copy-paste from GTK3 applications (boo#1097606): + * 0001-Do-not-cancel-old-clipboard-selection-if-it-is-same-.patch + +------------------------------------------------------------------- Old: ---- kwayland-5.47.0.tar.xz New: ---- kwayland-5.48.0.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kwayland.spec ++++++ --- /var/tmp/diff_new_pack.muakDl/_old 2018-07-21 10:16:00.783089521 +0200 +++ /var/tmp/diff_new_pack.muakDl/_new 2018-07-21 10:16:00.787089520 +0200 @@ -16,13 +16,13 @@ # -%define _tar_path 5.47 +%define _tar_path 5.48 # 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}')} +%{!?_kf5_bugfix_version: %define _kf5_bugfix_version %(echo %{_kf5_version} | awk -F. '{print $1"."$2}')} Name: kwayland -Version: 5.47.0 +Version: 5.48.0 Release: 0 Summary: KDE Wayland library License: LGPL-2.1-or-later ++++++ kwayland-5.47.0.tar.xz -> kwayland-5.48.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.47.0/.arclint new/kwayland-5.48.0/.arclint --- old/kwayland-5.47.0/.arclint 1970-01-01 01:00:00.000000000 +0100 +++ new/kwayland-5.48.0/.arclint 2018-07-07 23:53:49.000000000 +0200 @@ -0,0 +1,20 @@ +{ + "exclude": "(^test/)", + "linters": { + "spelling": { + "type": "spelling" + }, + "merge-conflict": { + "type": "merge-conflict" + }, + "xml": { + "type": "xml", + "include": "(\\.xml$)" + }, + "cppcheck": { + "type": "cppcheck", + "include": "(\\.(cpp|h|cxx|hpp)$)", + "flags": ["--language=c++", "--std=c++11"] + } + } +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.47.0/CMakeLists.txt new/kwayland-5.48.0/CMakeLists.txt --- old/kwayland-5.47.0/CMakeLists.txt 2018-06-02 18:29:52.000000000 +0200 +++ new/kwayland-5.48.0/CMakeLists.txt 2018-07-07 23:53:49.000000000 +0200 @@ -1,11 +1,11 @@ cmake_minimum_required(VERSION 3.0) -set(KF5_VERSION "5.47.0") # handled by release scripts +set(KF5_VERSION "5.48.0") # handled by release scripts project(KWayland VERSION ${KF5_VERSION}) # ECM setup include(FeatureSummary) -find_package(ECM 5.47.0 NO_MODULE) +find_package(ECM 5.48.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) set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR}) @@ -59,8 +59,11 @@ ecm_install_po_files_as_qm(po) endif() add_subdirectory(src) -add_subdirectory(autotests) -add_subdirectory(tests) + +if (BUILD_TESTING) + add_subdirectory(autotests) + add_subdirectory(tests) +endif() # create a Config.cmake and a ConfigVersion.cmake file and install them set(CMAKECONFIG_INSTALL_DIR "${CMAKECONFIG_INSTALL_PREFIX}/KF5Wayland") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.47.0/autotests/client/test_datadevice.cpp new/kwayland-5.48.0/autotests/client/test_datadevice.cpp --- old/kwayland-5.47.0/autotests/client/test_datadevice.cpp 2018-06-02 18:29:52.000000000 +0200 +++ new/kwayland-5.48.0/autotests/client/test_datadevice.cpp 2018-07-07 23:53:49.000000000 +0200 @@ -512,6 +512,12 @@ QCOMPARE(selectionOfferedSpy.count(), 2); QVERIFY(sourceCancelled2Spy.isEmpty()); + // replace the data source with itself, ensure that it did not get cancelled + dataDevice->setSelection(1, dataSource2.data()); + QVERIFY(!sourceCancelled2Spy.wait(500)); + QCOMPARE(selectionOfferedSpy.count(), 2); + QVERIFY(sourceCancelled2Spy.isEmpty()); + // create a new DataDevice and replace previous one QScopedPointer<DataDevice> dataDevice2(m_dataDeviceManager->getDataDevice(m_seat)); QVERIFY(dataDevice2->isValid()); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.47.0/autotests/client/test_wayland_registry.cpp new/kwayland-5.48.0/autotests/client/test_wayland_registry.cpp --- old/kwayland-5.47.0/autotests/client/test_wayland_registry.cpp 2018-06-02 18:29:52.000000000 +0200 +++ new/kwayland-5.48.0/autotests/client/test_wayland_registry.cpp 2018-07-07 23:53:49.000000000 +0200 @@ -598,7 +598,7 @@ //server removes the global //(simultaneously) the client legimitely uses the bound resource to the global - //client then gets the server events...it should no-op, not be a protcol error + //client then gets the server events...it should no-op, not be a protocol error using namespace KWayland::Client; KWayland::Client::ConnectionThread connection; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.47.0/autotests/client/test_xdg_shell_v6.cpp new/kwayland-5.48.0/autotests/client/test_xdg_shell_v6.cpp --- old/kwayland-5.47.0/autotests/client/test_xdg_shell_v6.cpp 2018-06-02 18:29:52.000000000 +0200 +++ new/kwayland-5.48.0/autotests/client/test_xdg_shell_v6.cpp 2018-07-07 23:53:49.000000000 +0200 @@ -68,7 +68,7 @@ void XdgShellTestV6::testPopup_data() { - QTest::addColumn<XdgPositioner>("positioners"); + QTest::addColumn<XdgPositioner>("positioner"); XdgPositioner positioner(QSize(10,10), QRect(100,100,50,50)); QTest::newRow("default") << positioner; @@ -105,7 +105,7 @@ QVERIFY(xdgTopLevelCreatedSpy.wait()); auto serverXdgTopLevel = xdgTopLevelCreatedSpy.first().first().value<XdgShellSurfaceInterface*>(); - XdgPositioner positioner(QSize(10,10), QRect(100,100,50,50)); + QFETCH(XdgPositioner, positioner); QScopedPointer<Surface> surface(m_compositor->createSurface()); QScopedPointer<XdgShellPopup> xdgSurface(m_xdgShell->createPopup(surface.data(), xdgParentSurface.data(), positioner)); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.47.0/autotests/server/test_display.cpp new/kwayland-5.48.0/autotests/server/test_display.cpp --- old/kwayland-5.47.0/autotests/server/test_display.cpp 2018-06-02 18:29:52.000000000 +0200 +++ new/kwayland-5.48.0/autotests/server/test_display.cpp 2018-07-07 23:53:49.000000000 +0200 @@ -207,10 +207,10 @@ void TestWaylandServerDisplay::testOutputManagement() { - auto display = new KWayland::Server::Display(this); - display->setSocketName("kwayland-test-0"); - display->start(); - auto kwin = display->createOutputManagement(this); + Display display; + display.setSocketName("kwayland-test-0"); + display.start(); + auto kwin = display.createOutputManagement(this); kwin->create(); QVERIFY(kwin->isValid()); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.47.0/src/client/plasmashell.h new/kwayland-5.48.0/src/client/plasmashell.h --- old/kwayland-5.47.0/src/client/plasmashell.h 2018-06-02 18:29:52.000000000 +0200 +++ new/kwayland-5.48.0/src/client/plasmashell.h 2018-07-07 23:53:49.000000000 +0200 @@ -290,7 +290,7 @@ /** * Setting this bit on a window will indicate it does not prefer * to be included in a window switcher. - * @since 5.45 + * @since 5.47 */ void setSkipSwitcher(bool skip); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.47.0/src/client/plasmawindowmodel.h new/kwayland-5.48.0/src/client/plasmawindowmodel.h --- old/kwayland-5.47.0/src/client/plasmawindowmodel.h 2018-06-02 18:29:52.000000000 +0200 +++ new/kwayland-5.48.0/src/client/plasmawindowmodel.h 2018-07-07 23:53:49.000000000 +0200 @@ -107,7 +107,7 @@ */ Pid, /** - * @since 5.45 + * @since 5.47 */ SkipSwitcher, }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.47.0/src/client/protocols/fullscreen-shell.xml new/kwayland-5.48.0/src/client/protocols/fullscreen-shell.xml --- old/kwayland-5.47.0/src/client/protocols/fullscreen-shell.xml 2018-06-02 18:29:52.000000000 +0200 +++ new/kwayland-5.48.0/src/client/protocols/fullscreen-shell.xml 2018-07-07 23:53:49.000000000 +0200 @@ -62,7 +62,7 @@ its own cursor and set wl_pointer.cursor(NULL). </description> <entry name="arbitrary_modes" value="1" summary="compositor is capable of almost any output mode"/> - <entry name="cursor_plane" value="2" summary="compositor has a seperate cursor plane"/> + <entry name="cursor_plane" value="2" summary="compositor has a separate cursor plane"/> </enum> <event name="capability"> @@ -74,7 +74,7 @@ the wl_fullscreen_shell.capability enum. If clients want to take advantage of any of these capabilities, they sould use a wl_display.sync request immediatly after binding to ensure that they - recieve all the capability events. + receive all the capability events. </description> <arg name="capabilty" type="uint"/> </event> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.47.0/src/client/protocols/outputdevice.xml new/kwayland-5.48.0/src/client/protocols/outputdevice.xml --- old/kwayland-5.47.0/src/client/protocols/outputdevice.xml 2018-06-02 18:29:52.000000000 +0200 +++ new/kwayland-5.48.0/src/client/protocols/outputdevice.xml 2018-07-07 23:53:49.000000000 +0200 @@ -223,7 +223,7 @@ <description summary="A unique id for this outputdevice"> The uuid can be used to identify the output. It's controlled by the server entirely. The server should make sure the uuid is - persistant across restarts. An empty uuid is considered invalid. + persistent across restarts. An empty uuid is considered invalid. </description> <arg name="uuid" type="string" summary="output devices ID"/> </event> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.47.0/src/client/registry.h new/kwayland-5.48.0/src/client/registry.h --- old/kwayland-5.47.0/src/client/registry.h 2018-06-02 18:29:52.000000000 +0200 +++ new/kwayland-5.48.0/src/client/registry.h 2018-07-07 23:53:49.000000000 +0200 @@ -224,7 +224,7 @@ * * The EventQueue should be set before the Registry gets setup. * The EventQueue gets automatically added to all interfaces created by - * this Registry. So that all objects are in teh same EventQueue. + * this Registry. So that all objects are in the same EventQueue. * * @param queue The event queue to use for this Registry. **/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.47.0/src/client/textinput.h new/kwayland-5.48.0/src/client/textinput.h --- old/kwayland-5.47.0/src/client/textinput.h 2018-06-02 18:29:52.000000000 +0200 +++ new/kwayland-5.48.0/src/client/textinput.h 2018-07-07 23:53:49.000000000 +0200 @@ -342,7 +342,7 @@ quint32 afterLength; }; /** - * @returns The lenght in bytes which should be deleted around the cursor position + * @returns The length in bytes which should be deleted around the cursor position * @see committed **/ DeleteSurroundingText deleteSurroundingText() const; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.47.0/src/client/textinput_v0.cpp new/kwayland-5.48.0/src/client/textinput_v0.cpp --- old/kwayland-5.47.0/src/client/textinput_v0.cpp 2018-06-02 18:29:52.000000000 +0200 +++ new/kwayland-5.48.0/src/client/textinput_v0.cpp 2018-07-07 23:53:49.000000000 +0200 @@ -437,6 +437,7 @@ bool isValid() override; void setupV0(wl_text_input_manager *ti) override; TextInput *createTextInput(Seat *seat, QObject *parent = nullptr) override; + using TextInputManager::Private::operator zwp_text_input_manager_v2*; //overriding only one overload results in a compiler warning. This tells GCC we're doing it deliberately operator wl_text_input_manager*() override { return textinputmanagerunstablev0; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.47.0/src/client/textinput_v2.cpp new/kwayland-5.48.0/src/client/textinput_v2.cpp --- old/kwayland-5.47.0/src/client/textinput_v2.cpp 2018-06-02 18:29:52.000000000 +0200 +++ new/kwayland-5.48.0/src/client/textinput_v2.cpp 2018-07-07 23:53:49.000000000 +0200 @@ -461,6 +461,7 @@ bool isValid() override; void setupV2(zwp_text_input_manager_v2 *ti) override; TextInput *createTextInput(Seat *seat, QObject *parent = nullptr) override; + using TextInputManager::Private::operator wl_text_input_manager*; operator zwp_text_input_manager_v2*() override { return textinputmanagerunstablev2; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.47.0/src/client/xdgoutput.cpp new/kwayland-5.48.0/src/client/xdgoutput.cpp --- old/kwayland-5.47.0/src/client/xdgoutput.cpp 2018-06-02 18:29:52.000000000 +0200 +++ new/kwayland-5.48.0/src/client/xdgoutput.cpp 2018-07-07 23:53:49.000000000 +0200 @@ -172,8 +172,8 @@ } } -XdgOutput::Private::Private(XdgOutput *q) - : q(q) +XdgOutput::Private::Private(XdgOutput *qptr) + : q(qptr) { } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.47.0/src/client/xdgshell_v6.cpp new/kwayland-5.48.0/src/client/xdgshell_v6.cpp --- old/kwayland-5.47.0/src/client/xdgshell_v6.cpp 2018-06-02 18:29:52.000000000 +0200 +++ new/kwayland-5.48.0/src/client/xdgshell_v6.cpp 2018-07-07 23:53:49.000000000 +0200 @@ -160,24 +160,24 @@ } uint32_t gravity = 0; - if (positioner.anchorEdge().testFlag(Qt::LeftEdge)) { + if (positioner.gravity().testFlag(Qt::LeftEdge)) { gravity |= ZXDG_POSITIONER_V6_GRAVITY_LEFT; } - if (positioner.anchorEdge().testFlag(Qt::TopEdge)) { + if (positioner.gravity().testFlag(Qt::TopEdge)) { gravity |= ZXDG_POSITIONER_V6_GRAVITY_TOP; } - if (positioner.anchorEdge().testFlag(Qt::RightEdge)) { + if (positioner.gravity().testFlag(Qt::RightEdge)) { gravity |= ZXDG_POSITIONER_V6_GRAVITY_RIGHT; } - if (positioner.anchorEdge().testFlag(Qt::BottomEdge)) { + if (positioner.gravity().testFlag(Qt::BottomEdge)) { gravity |= ZXDG_POSITIONER_V6_GRAVITY_BOTTOM; } - zxdg_positioner_v6_set_anchor(p, anchor); if (gravity != 0) { zxdg_positioner_v6_set_gravity(p, gravity); } uint32_t constraint = 0; + if (positioner.constraints().testFlag(XdgPositioner::Constraint::SlideX)) { constraint |= ZXDG_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_SLIDE_X; } @@ -191,7 +191,7 @@ constraint |= ZXDG_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_FLIP_Y; } if (positioner.constraints().testFlag(XdgPositioner::Constraint::ResizeX)) { - constraint |= ZXDG_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_RESIZE_Y; + constraint |= ZXDG_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_RESIZE_X; } if (positioner.constraints().testFlag(XdgPositioner::Constraint::ResizeY)) { constraint |= ZXDG_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_RESIZE_Y; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.47.0/src/server/datadevice_interface.cpp new/kwayland-5.48.0/src/server/datadevice_interface.cpp --- old/kwayland-5.47.0/src/server/datadevice_interface.cpp 2018-06-02 18:29:52.000000000 +0200 +++ new/kwayland-5.48.0/src/server/datadevice_interface.cpp 2018-07-07 23:53:49.000000000 +0200 @@ -130,6 +130,9 @@ wl_resource_post_error(dataSource->resource(), WL_DATA_SOURCE_ERROR_INVALID_SOURCE, "Data source is for drag and drop"); return; } + if (selection == dataSource) { + return; + } Q_Q(DataDeviceInterface); QObject::disconnect(selectionUnboundConnection); QObject::disconnect(selectionDestroyedConnection); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.47.0/src/server/dpms_interface.cpp new/kwayland-5.48.0/src/server/dpms_interface.cpp --- old/kwayland-5.47.0/src/server/dpms_interface.cpp 2018-06-02 18:29:52.000000000 +0200 +++ new/kwayland-5.48.0/src/server/dpms_interface.cpp 2018-07-07 23:53:49.000000000 +0200 @@ -34,9 +34,9 @@ }; #endif -DpmsManagerInterface::Private::Private(DpmsManagerInterface *q, Display *d) +DpmsManagerInterface::Private::Private(DpmsManagerInterface *qptr, Display *d) : Global::Private(d, &org_kde_kwin_dpms_manager_interface, s_version) - , q(q) + , q(qptr) { } @@ -82,9 +82,9 @@ }; #endif -DpmsInterface::Private::Private(DpmsInterface *q, DpmsManagerInterface *g, wl_resource *parentResource, OutputInterface *output) +DpmsInterface::Private::Private(DpmsInterface *q, DpmsManagerInterface *g, wl_resource *parentResource, OutputInterface *outputInterface) : Resource::Private(q, g, parentResource, &org_kde_kwin_dpms_interface, &s_interface) - , output(output) + , output(outputInterface) { } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.47.0/src/server/plasmashell_interface.h new/kwayland-5.48.0/src/server/plasmashell_interface.h --- old/kwayland-5.47.0/src/server/plasmashell_interface.h 2018-06-02 18:29:52.000000000 +0200 +++ new/kwayland-5.48.0/src/server/plasmashell_interface.h 2018-07-07 23:53:49.000000000 +0200 @@ -141,7 +141,7 @@ /** * @returns true if this window doesn't want to be listed * in a window switcher - * @since 5.45 + * @since 5.47 **/ bool skipSwitcher() const; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.47.0/src/server/pointer_interface.cpp new/kwayland-5.48.0/src/server/pointer_interface.cpp --- old/kwayland-5.47.0/src/server/pointer_interface.cpp 2018-06-02 18:29:52.000000000 +0200 +++ new/kwayland-5.48.0/src/server/pointer_interface.cpp 2018-07-07 23:53:49.000000000 +0200 @@ -352,7 +352,7 @@ for (auto it = d->relativePointers.constBegin(), end = d->relativePointers.constEnd(); it != end; it++) { (*it)->relativeMotion(delta, deltaNonAccelerated, microseconds); } - client()->flush(); + d->sendFrame(); } PointerInterface::Private *PointerInterface::d_func() const diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.47.0/src/server/surface_interface.cpp new/kwayland-5.48.0/src/server/surface_interface.cpp --- old/kwayland-5.47.0/src/server/surface_interface.cpp 2018-06-02 18:29:52.000000000 +0200 +++ new/kwayland-5.48.0/src/server/surface_interface.cpp 2018-07-07 23:53:49.000000000 +0200 @@ -181,93 +181,89 @@ Q_ASSERT(lockedPointer.isNull()); Q_ASSERT(confinedPointer.isNull()); lockedPointer = QPointer<LockedPointerInterface>(lock); + + auto cleanUp = [this]() { + lockedPointer.clear(); + disconnect(constrainsOneShotConnection); + constrainsOneShotConnection = QMetaObject::Connection(); + disconnect(constrainsUnboundConnection); + constrainsUnboundConnection = QMetaObject::Connection(); + emit q_func()->pointerConstraintsChanged(); + }; + if (lock->lifeTime() == LockedPointerInterface::LifeTime::OneShot) { constrainsOneShotConnection = QObject::connect(lock, &LockedPointerInterface::lockedChanged, q_func(), - [this] { - if (lockedPointer.isNull()) { + [this, cleanUp] { + if (lockedPointer.isNull() || lockedPointer->isLocked()) { return; } - if (!lockedPointer->isLocked()) { - lockedPointer.clear(); - disconnect(constrainsOneShotConnection); - constrainsOneShotConnection = QMetaObject::Connection(); - disconnect(constrainsUnboundConnection); - constrainsUnboundConnection = QMetaObject::Connection(); - emit q_func()->pointerConstraintsChanged(); - } + cleanUp(); } ); } constrainsUnboundConnection = QObject::connect(lock, &LockedPointerInterface::unbound, q_func(), - [this] { + [this, cleanUp] { if (lockedPointer.isNull()) { return; } - lockedPointer.clear(); - disconnect(constrainsOneShotConnection); - constrainsOneShotConnection = QMetaObject::Connection(); - disconnect(constrainsUnboundConnection); - constrainsUnboundConnection = QMetaObject::Connection(); - emit q_func()->pointerConstraintsChanged(); + cleanUp(); } ); emit q_func()->pointerConstraintsChanged(); } -void SurfaceInterface::Private::installIdleInhibitor(IdleInhibitorInterface *inhibitor) -{ - idleInhibitors << inhibitor; - QObject::connect(inhibitor, &IdleInhibitorInterface::aboutToBeUnbound, q, - [this, inhibitor] { - idleInhibitors.removeOne(inhibitor); - if (idleInhibitors.isEmpty()) { - emit q_func()->inhibitsIdleChanged(); - } - } - ); - if (idleInhibitors.count() == 1) { - emit q_func()->inhibitsIdleChanged(); - } -} - void SurfaceInterface::Private::installPointerConstraint(ConfinedPointerInterface *confinement) { Q_ASSERT(lockedPointer.isNull()); Q_ASSERT(confinedPointer.isNull()); confinedPointer = QPointer<ConfinedPointerInterface>(confinement); + + auto cleanUp = [this]() { + confinedPointer.clear(); + disconnect(constrainsOneShotConnection); + constrainsOneShotConnection = QMetaObject::Connection(); + disconnect(constrainsUnboundConnection); + constrainsUnboundConnection = QMetaObject::Connection(); + emit q_func()->pointerConstraintsChanged(); + }; + if (confinement->lifeTime() == ConfinedPointerInterface::LifeTime::OneShot) { constrainsOneShotConnection = QObject::connect(confinement, &ConfinedPointerInterface::confinedChanged, q_func(), - [this] { - if (confinedPointer.isNull()) { + [this, cleanUp] { + if (confinedPointer.isNull() || confinedPointer->isConfined()) { return; } - if (!confinedPointer->isConfined()) { - confinedPointer.clear(); - disconnect(constrainsOneShotConnection); - constrainsOneShotConnection = QMetaObject::Connection(); - disconnect(constrainsUnboundConnection); - constrainsUnboundConnection = QMetaObject::Connection(); - emit q_func()->pointerConstraintsChanged(); - } + cleanUp(); } ); } constrainsUnboundConnection = QObject::connect(confinement, &ConfinedPointerInterface::unbound, q_func(), - [this] { + [this, cleanUp] { if (confinedPointer.isNull()) { return; } - confinedPointer.clear(); - disconnect(constrainsOneShotConnection); - constrainsOneShotConnection = QMetaObject::Connection(); - disconnect(constrainsUnboundConnection); - constrainsUnboundConnection = QMetaObject::Connection(); - emit q_func()->pointerConstraintsChanged(); + cleanUp(); } ); emit q_func()->pointerConstraintsChanged(); } +void SurfaceInterface::Private::installIdleInhibitor(IdleInhibitorInterface *inhibitor) +{ + idleInhibitors << inhibitor; + QObject::connect(inhibitor, &IdleInhibitorInterface::aboutToBeUnbound, q, + [this, inhibitor] { + idleInhibitors.removeOne(inhibitor); + if (idleInhibitors.isEmpty()) { + emit q_func()->inhibitsIdleChanged(); + } + } + ); + if (idleInhibitors.count() == 1) { + emit q_func()->inhibitsIdleChanged(); + } +} + #ifndef DOXYGEN_SHOULD_SKIP_THIS const struct wl_surface_interface SurfaceInterface::Private::s_interface = { resourceDestroyedCallback, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.47.0/src/server/xdgforeign_v2_interface.cpp new/kwayland-5.48.0/src/server/xdgforeign_v2_interface.cpp --- old/kwayland-5.47.0/src/server/xdgforeign_v2_interface.cpp 2018-06-02 18:29:52.000000000 +0200 +++ new/kwayland-5.48.0/src/server/xdgforeign_v2_interface.cpp 2018-07-07 23:53:49.000000000 +0200 @@ -95,6 +95,7 @@ void XdgExporterUnstableV2Interface::Private::destroyCallback(wl_client *client, wl_resource *resource) { Q_UNUSED(client) + Q_UNUSED(resource) } void XdgExporterUnstableV2Interface::Private::exportCallback(wl_client *client, wl_resource *resource, uint32_t id, wl_resource * surface) @@ -237,6 +238,7 @@ void XdgImporterUnstableV2Interface::Private::destroyCallback(wl_client *client, wl_resource *resource) { Q_UNUSED(client) + Q_UNUSED(resource) } void XdgImporterUnstableV2Interface::Private::importCallback(wl_client *client, wl_resource *resource, uint32_t id, const char *h) @@ -438,6 +440,8 @@ void XdgImportedUnstableV2Interface::Private::setParentOfCallback(wl_client *client, wl_resource *resource, wl_resource * surface) { + Q_UNUSED(client) + auto s = cast<Private>(resource); SurfaceInterface *surf = SurfaceInterface::get(surface); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.47.0/src/server/xdgoutput_interface.cpp new/kwayland-5.48.0/src/server/xdgoutput_interface.cpp --- old/kwayland-5.47.0/src/server/xdgoutput_interface.cpp 2018-06-02 18:29:52.000000000 +0200 +++ new/kwayland-5.48.0/src/server/xdgoutput_interface.cpp 2018-07-07 23:53:49.000000000 +0200 @@ -86,7 +86,7 @@ XdgOutputManagerInterface::XdgOutputManagerInterface(Display *display, QObject *parent) - : Global(new XdgOutputManagerInterface::Private(this, display)) + : Global(new XdgOutputManagerInterface::Private(this, display), parent) { } @@ -150,9 +150,9 @@ }); } -XdgOutputManagerInterface::Private::Private(XdgOutputManagerInterface *q, Display *d) +XdgOutputManagerInterface::Private::Private(XdgOutputManagerInterface *qptr, Display *d) : Global::Private(d, &zxdg_output_manager_v1_interface, s_version) - , q(q) + , q(qptr) { } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.47.0/src/server/xdgoutput_interface.h new/kwayland-5.48.0/src/server/xdgoutput_interface.h --- old/kwayland-5.47.0/src/server/xdgoutput_interface.h 2018-06-02 18:29:52.000000000 +0200 +++ new/kwayland-5.48.0/src/server/xdgoutput_interface.h 2018-07-07 23:53:49.000000000 +0200 @@ -44,7 +44,7 @@ /** * Global manager for XdgOutputs - * @since 5.XDGOUTPUT + * @since 5.47 */ class KWAYLANDSERVER_EXPORT XdgOutputManagerInterface : public Global { @@ -70,7 +70,7 @@ * Extension to Output * Users should set all relevant values on creation and on future changes. * done() should be explicitly called after change batches including initial setting. - * @since 5.XDGOUTPUT + * @since 5.47 */ class KWAYLANDSERVER_EXPORT XdgOutputInterface : public QObject {
