Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package libkscreen2 for openSUSE:Factory 
checked in at 2022-10-11 18:01:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libkscreen2 (Old)
 and      /work/SRC/openSUSE:Factory/.libkscreen2.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libkscreen2"

Tue Oct 11 18:01:05 2022 rev:145 rq:1009115 version:5.26.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/libkscreen2/libkscreen2.changes  2022-09-08 
14:21:02.446291306 +0200
+++ /work/SRC/openSUSE:Factory/.libkscreen2.new.2275/libkscreen2.changes        
2022-10-11 18:03:26.185879823 +0200
@@ -1,0 +2,27 @@
+Thu Oct  6 14:48:43 UTC 2022 - Fabian Vogt <fab...@ritter-vogt.de>
+
+- Update to 5.26.0
+  * New bugfix release
+  * For more details please see:
+  * https://kde.org/announcements/plasma/5/5.26.0
+- No code changes since 5.25.90
+
+-------------------------------------------------------------------
+Thu Sep 15 20:46:58 UTC 2022 - Fabian Vogt <fab...@ritter-vogt.de>
+
+- Update to 5.25.90
+  * New feature release
+  * For more details please see:
+  * https://kde.org/announcements/plasma/5/5.25.90
+- Changes since 5.25.5:
+  * Update default on XwaylandClientsScale to true
+  * Add FreeBSD Qt6 CI support
+  * Add missing license file
+  * Fix Qt major version in CMake config files
+  * Disable KF5::WaylandServer based tests for Qt6 build
+  * Remove duplicate headers between cpp/h
+  * wayland: Set kwin up for allowing Xwayland clients scale themselves
+  * fix(randr): screen is dirty when switching display modes
+  * Remove CI dependency on kwayland-server as that is no longer a thing.
+
+-------------------------------------------------------------------

Old:
----
  libkscreen-5.25.5.tar.xz
  libkscreen-5.25.5.tar.xz.sig

New:
----
  libkscreen-5.26.0.tar.xz
  libkscreen-5.26.0.tar.xz.sig

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

Other differences:
------------------
++++++ libkscreen2.spec ++++++
--- /var/tmp/diff_new_pack.R2KN4L/_old  2022-10-11 18:03:26.829880864 +0200
+++ /var/tmp/diff_new_pack.R2KN4L/_new  2022-10-11 18:03:26.837880876 +0200
@@ -19,7 +19,7 @@
 %bcond_without released
 %define lname   libKF5Screen7
 Name:           libkscreen2
-Version:        5.25.5
+Version:        5.26.0
 Release:        0
 # Full Plasma 5 version (e.g. 5.8.95)
 %{!?_plasma5_bugfix: %define _plasma5_bugfix %{version}}
@@ -29,18 +29,19 @@
 License:        GPL-2.0-or-later
 Group:          System/GUI/KDE
 URL:            http://www.kde.org
-Source:         
https://download.kde.org/stable/plasma/%{version}/libkscreen-%{version}.tar.xz
+Source:         libkscreen-%{version}.tar.xz
 %if %{with released}
-Source1:        
https://download.kde.org/stable/plasma/%{version}/libkscreen-%{version}.tar.xz.sig
+Source1:        libkscreen-%{version}.tar.xz.sig
 Source2:        plasma.keyring
 %endif
 BuildRequires:  cmake >= 3.16
-BuildRequires:  extra-cmake-modules
+BuildRequires:  extra-cmake-modules >= 5.98.0
 BuildRequires:  fdupes
 BuildRequires:  kf5-filesystem
+BuildRequires:  cmake(KF5Config)
 BuildRequires:  cmake(KF5Wayland)
 BuildRequires:  cmake(PlasmaWaylandProtocols)
-BuildRequires:  cmake(Qt5Core) >= 5.11.0
+BuildRequires:  cmake(Qt5Core) >= 5.15.0
 BuildRequires:  cmake(Qt5DBus)
 BuildRequires:  cmake(Qt5Gui)
 BuildRequires:  cmake(Qt5Test)
@@ -64,7 +65,7 @@
 Summary:        KDE's screen management library (development package)
 Group:          Development/Libraries/C and C++
 Requires:       %{lname} = %{version}
-Requires:       cmake(Qt5Core) >= 5.11.0
+Requires:       cmake(Qt5Core)
 
 %description devel
 Development files belonging to libkscreen, dynamic display management in KDE

++++++ libkscreen-5.25.5.tar.xz -> libkscreen-5.26.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libkscreen-5.25.5/.gitlab-ci.yml 
new/libkscreen-5.26.0/.gitlab-ci.yml
--- old/libkscreen-5.25.5/.gitlab-ci.yml        2022-09-06 14:25:08.000000000 
+0200
+++ new/libkscreen-5.26.0/.gitlab-ci.yml        2022-10-06 14:24:23.000000000 
+0200
@@ -4,3 +4,5 @@
 include:
   - 
https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/linux.yml
   - 
https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/freebsd.yml
+  - 
https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/linux-qt6.yml
+  - 
https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/freebsd-qt6.yml
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libkscreen-5.25.5/.kde-ci.yml 
new/libkscreen-5.26.0/.kde-ci.yml
--- old/libkscreen-5.25.5/.kde-ci.yml   2022-09-06 14:25:08.000000000 +0200
+++ new/libkscreen-5.26.0/.kde-ci.yml   2022-10-06 14:24:23.000000000 +0200
@@ -6,3 +6,4 @@
   'require':
     'frameworks/extra-cmake-modules': '@latest'
     'frameworks/kwayland': '@latest'
+    'frameworks/kconfig': '@latest'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libkscreen-5.25.5/CMakeLists.txt 
new/libkscreen-5.26.0/CMakeLists.txt
--- old/libkscreen-5.25.5/CMakeLists.txt        2022-09-06 14:25:08.000000000 
+0200
+++ new/libkscreen-5.26.0/CMakeLists.txt        2022-10-06 14:24:23.000000000 
+0200
@@ -1,10 +1,10 @@
 cmake_minimum_required(VERSION 3.16)
 
 project(libkscreen)
-set(PROJECT_VERSION "5.25.5")
+set(PROJECT_VERSION "5.26.0")
 
 set(QT_MIN_VERSION "5.15.2")
-set(KF5_MIN_VERSION "5.94")
+set(KF5_MIN_VERSION "5.98.0")
 set(KDE_COMPILERSETTINGS_LEVEL "5.82")
 
 set(CMAKE_CXX_STANDARD 17)
@@ -36,14 +36,11 @@
 # Wayland backend
 find_package(KF5Wayland ${KF5_MIN_VERSION} CONFIG REQUIRED)
 add_feature_info("KF5Wayland" KF5Wayland_FOUND "Required for building 
libkscreen's KWayland backend")
+find_package(KF5Config ${KF5_MIN_VERSION} CONFIG REQUIRED)
 
 find_package(PlasmaWaylandProtocols 1.6.0 CONFIG)
 set_package_properties(PlasmaWaylandProtocols PROPERTIES TYPE REQUIRED)
 
-# Wayland backend
-find_package(KF5Wayland ${KF5_MIN_VERSION} CONFIG REQUIRED)
-add_feature_info("KF5Wayland" KF5Wayland_FOUND "Required for building 
libkscreen's KWayland backend")
-
 find_package(Wayland 1.15 COMPONENTS Client)
 set_package_properties(Wayland PROPERTIES
                        TYPE REQUIRED
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libkscreen-5.25.5/KF5ScreenConfig.cmake.in 
new/libkscreen-5.26.0/KF5ScreenConfig.cmake.in
--- old/libkscreen-5.25.5/KF5ScreenConfig.cmake.in      2022-09-06 
14:25:08.000000000 +0200
+++ new/libkscreen-5.26.0/KF5ScreenConfig.cmake.in      2022-10-06 
14:24:23.000000000 +0200
@@ -1,8 +1,8 @@
 @PACKAGE_INIT@
 
 include(CMakeFindDependencyMacro)
-find_dependency(Qt5Core @QT_MIN_VERSION@)
-find_dependency(Qt5Gui @QT_MIN_VERSION@)
+find_dependency(Qt@QT_MAJOR_VERSION@Core @QT_MIN_VERSION@)
+find_dependency(Qt@QT_MAJOR_VERSION@Gui @QT_MIN_VERSION@)
 
 include("${CMAKE_CURRENT_LIST_DIR}/KF5ScreenTargets.cmake")
 @PACKAGE_INCLUDE_QCHTARGETS@
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libkscreen-5.25.5/LICENSES/CC0-1.0.txt 
new/libkscreen-5.26.0/LICENSES/CC0-1.0.txt
--- old/libkscreen-5.25.5/LICENSES/CC0-1.0.txt  1970-01-01 01:00:00.000000000 
+0100
+++ new/libkscreen-5.26.0/LICENSES/CC0-1.0.txt  2022-10-06 14:24:23.000000000 
+0200
@@ -0,0 +1,121 @@
+Creative Commons Legal Code
+
+CC0 1.0 Universal
+
+    CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
+    LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
+    ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
+    INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
+    REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
+    PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
+    THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
+    HEREUNDER.
+
+Statement of Purpose
+
+The laws of most jurisdictions throughout the world automatically confer
+exclusive Copyright and Related Rights (defined below) upon the creator
+and subsequent owner(s) (each and all, an "owner") of an original work of
+authorship and/or a database (each, a "Work").
+
+Certain owners wish to permanently relinquish those rights to a Work for
+the purpose of contributing to a commons of creative, cultural and
+scientific works ("Commons") that the public can reliably and without fear
+of later claims of infringement build upon, modify, incorporate in other
+works, reuse and redistribute as freely as possible in any form whatsoever
+and for any purposes, including without limitation commercial purposes.
+These owners may contribute to the Commons to promote the ideal of a free
+culture and the further production of creative, cultural and scientific
+works, or to gain reputation or greater distribution for their Work in
+part through the use and efforts of others.
+
+For these and/or other purposes and motivations, and without any
+expectation of additional consideration or compensation, the person
+associating CC0 with a Work (the "Affirmer"), to the extent that he or she
+is an owner of Copyright and Related Rights in the Work, voluntarily
+elects to apply CC0 to the Work and publicly distribute the Work under its
+terms, with knowledge of his or her Copyright and Related Rights in the
+Work and the meaning and intended legal effect of CC0 on those rights.
+
+1. Copyright and Related Rights. A Work made available under CC0 may be
+protected by copyright and related or neighboring rights ("Copyright and
+Related Rights"). Copyright and Related Rights include, but are not
+limited to, the following:
+
+  i. the right to reproduce, adapt, distribute, perform, display,
+     communicate, and translate a Work;
+ ii. moral rights retained by the original author(s) and/or performer(s);
+iii. publicity and privacy rights pertaining to a person's image or
+     likeness depicted in a Work;
+ iv. rights protecting against unfair competition in regards to a Work,
+     subject to the limitations in paragraph 4(a), below;
+  v. rights protecting the extraction, dissemination, use and reuse of data
+     in a Work;
+ vi. database rights (such as those arising under Directive 96/9/EC of the
+     European Parliament and of the Council of 11 March 1996 on the legal
+     protection of databases, and under any national implementation
+     thereof, including any amended or successor version of such
+     directive); and
+vii. other similar, equivalent or corresponding rights throughout the
+     world based on applicable law or treaty, and any national
+     implementations thereof.
+
+2. Waiver. To the greatest extent permitted by, but not in contravention
+of, applicable law, Affirmer hereby overtly, fully, permanently,
+irrevocably and unconditionally waives, abandons, and surrenders all of
+Affirmer's Copyright and Related Rights and associated claims and causes
+of action, whether now known or unknown (including existing as well as
+future claims and causes of action), in the Work (i) in all territories
+worldwide, (ii) for the maximum duration provided by applicable law or
+treaty (including future time extensions), (iii) in any current or future
+medium and for any number of copies, and (iv) for any purpose whatsoever,
+including without limitation commercial, advertising or promotional
+purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
+member of the public at large and to the detriment of Affirmer's heirs and
+successors, fully intending that such Waiver shall not be subject to
+revocation, rescission, cancellation, termination, or any other legal or
+equitable action to disrupt the quiet enjoyment of the Work by the public
+as contemplated by Affirmer's express Statement of Purpose.
+
+3. Public License Fallback. Should any part of the Waiver for any reason
+be judged legally invalid or ineffective under applicable law, then the
+Waiver shall be preserved to the maximum extent permitted taking into
+account Affirmer's express Statement of Purpose. In addition, to the
+extent the Waiver is so judged Affirmer hereby grants to each affected
+person a royalty-free, non transferable, non sublicensable, non exclusive,
+irrevocable and unconditional license to exercise Affirmer's Copyright and
+Related Rights in the Work (i) in all territories worldwide, (ii) for the
+maximum duration provided by applicable law or treaty (including future
+time extensions), (iii) in any current or future medium and for any number
+of copies, and (iv) for any purpose whatsoever, including without
+limitation commercial, advertising or promotional purposes (the
+"License"). The License shall be deemed effective as of the date CC0 was
+applied by Affirmer to the Work. Should any part of the License for any
+reason be judged legally invalid or ineffective under applicable law, such
+partial invalidity or ineffectiveness shall not invalidate the remainder
+of the License, and in such case Affirmer hereby affirms that he or she
+will not (i) exercise any of his or her remaining Copyright and Related
+Rights in the Work or (ii) assert any associated claims and causes of
+action with respect to the Work, in either case contrary to Affirmer's
+express Statement of Purpose.
+
+4. Limitations and Disclaimers.
+
+ a. No trademark or patent rights held by Affirmer are waived, abandoned,
+    surrendered, licensed or otherwise affected by this document.
+ b. Affirmer offers the Work as-is and makes no representations or
+    warranties of any kind concerning the Work, express, implied,
+    statutory or otherwise, including without limitation warranties of
+    title, merchantability, fitness for a particular purpose, non
+    infringement, or the absence of latent or other defects, accuracy, or
+    the present or absence of errors, whether or not discoverable, all to
+    the greatest extent permissible under applicable law.
+ c. Affirmer disclaims responsibility for clearing rights of other persons
+    that may apply to the Work or any use thereof, including without
+    limitation any person's Copyright and Related Rights in the Work.
+    Further, Affirmer disclaims responsibility for obtaining any necessary
+    consents, permissions or other rights required for any use of the
+    Work.
+ d. Affirmer understands and acknowledges that Creative Commons is not a
+    party to this document and has no duty or obligation with respect to
+    this CC0 or use of the Work.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libkscreen-5.25.5/autotests/CMakeLists.txt 
new/libkscreen-5.26.0/autotests/CMakeLists.txt
--- old/libkscreen-5.25.5/autotests/CMakeLists.txt      2022-09-06 
14:25:08.000000000 +0200
+++ new/libkscreen-5.26.0/autotests/CMakeLists.txt      2022-10-06 
14:24:23.000000000 +0200
@@ -25,6 +25,11 @@
 kscreen_add_test(testmodelistchange)
 kscreen_add_test(testedid)
 
+if (NOT TARGET KF5::WaylandServer)
+    message(WARNING "Skipping KF5::WaylandServer based unit tests!")
+    return()
+endif()
+
 set(KSCREEN_WAYLAND_LIBS
     KF5::WaylandServer KF5::WaylandClient
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libkscreen-5.25.5/backends/kwayland/CMakeLists.txt 
new/libkscreen-5.26.0/backends/kwayland/CMakeLists.txt
--- old/libkscreen-5.25.5/backends/kwayland/CMakeLists.txt      2022-09-06 
14:25:08.000000000 +0200
+++ new/libkscreen-5.26.0/backends/kwayland/CMakeLists.txt      2022-10-06 
14:24:23.000000000 +0200
@@ -47,6 +47,7 @@
 target_link_libraries(KSC_KWayland Qt::Core
                                   Qt::DBus
                                   Qt::Gui
+                                  KF5::ConfigCore
                                   KF5::Screen
                                   KF5::WaylandClient
                                   Wayland::Client
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libkscreen-5.25.5/backends/kwayland/waylandbackend.cpp 
new/libkscreen-5.26.0/backends/kwayland/waylandbackend.cpp
--- old/libkscreen-5.25.5/backends/kwayland/waylandbackend.cpp  2022-09-06 
14:25:08.000000000 +0200
+++ new/libkscreen-5.26.0/backends/kwayland/waylandbackend.cpp  2022-10-06 
14:24:23.000000000 +0200
@@ -16,9 +16,13 @@
 #include <configmonitor.h>
 #include <mode.h>
 
+#include <QProcess>
 #include <QSettings>
 #include <QStandardPaths>
 
+#include <KConfig>
+#include <KConfigGroup>
+
 using namespace KScreen;
 
 WaylandBackend::WaylandBackend()
@@ -28,7 +32,31 @@
     qCDebug(KSCREEN_WAYLAND) << "Loading Wayland backend.";
 
     connect(m_internalConfig, &WaylandConfig::configChanged, this, [this]() {
-        Q_EMIT configChanged(m_internalConfig->currentConfig());
+        const auto newConfig = m_internalConfig->currentConfig();
+
+        KConfig cfg(QStringLiteral("kdeglobals"));
+
+        KConfigGroup kscreenGroup = cfg.group("KScreen");
+        const bool xwaylandClientsScale = 
kscreenGroup.readEntry("XwaylandClientsScale", true);
+
+        KConfig kwinCfg(QStringLiteral("kwinrc"));
+        KConfigGroup xwaylandGroup = kwinCfg.group("Xwayland");
+        if (xwaylandClientsScale) {
+            qreal scaleFactor = 1;
+            const auto outputs = newConfig->outputs();
+            for (auto output : outputs) {
+                scaleFactor = std::max(scaleFactor, output->scale());
+            }
+
+            xwaylandGroup.writeEntry("Scale", scaleFactor, KConfig::Notify);
+
+        } else {
+            xwaylandGroup.deleteEntry("Scale", KConfig::Notify);
+        }
+        // here we rerun the fonts kcm init that does the appropriate xrdb 
call with the new settings
+        QProcess::startDetached("kcminit", {"kcm_fonts"});
+
+        Q_EMIT configChanged(newConfig);
     });
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libkscreen-5.25.5/backends/kwayland/waylandconfig.cpp 
new/libkscreen-5.26.0/backends/kwayland/waylandconfig.cpp
--- old/libkscreen-5.25.5/backends/kwayland/waylandconfig.cpp   2022-09-06 
14:25:08.000000000 +0200
+++ new/libkscreen-5.26.0/backends/kwayland/waylandconfig.cpp   2022-10-06 
14:24:23.000000000 +0200
@@ -242,7 +242,7 @@
     m_kscreenConfig->setScreen(m_screen->toKScreenScreen(m_kscreenConfig));
 
     const auto features = Config::Feature::Writable | 
Config::Feature::PerOutputScaling | Config::Feature::AutoRotation | 
Config::Feature::TabletMode
-        | Config::Feature::PrimaryDisplay | 
Config::Feature::SynchronousOutputChanges;
+        | Config::Feature::PrimaryDisplay | Config::Feature::XwaylandScales | 
Config::Feature::SynchronousOutputChanges;
     m_kscreenConfig->setSupportedFeatures(features);
     m_kscreenConfig->setValid(m_connection->display());
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libkscreen-5.25.5/backends/qscreen/qscreenconfig.cpp 
new/libkscreen-5.26.0/backends/qscreen/qscreenconfig.cpp
--- old/libkscreen-5.25.5/backends/qscreen/qscreenconfig.cpp    2022-09-06 
14:25:08.000000000 +0200
+++ new/libkscreen-5.26.0/backends/qscreen/qscreenconfig.cpp    2022-10-06 
14:24:23.000000000 +0200
@@ -13,7 +13,6 @@
 
 #include <QGuiApplication>
 #include <QRect>
-#include <QScreen>
 
 using namespace KScreen;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libkscreen-5.25.5/backends/qscreen/qscreenoutput.cpp 
new/libkscreen-5.26.0/backends/qscreen/qscreenoutput.cpp
--- old/libkscreen-5.25.5/backends/qscreen/qscreenoutput.cpp    2022-09-06 
14:25:08.000000000 +0200
+++ new/libkscreen-5.26.0/backends/qscreen/qscreenoutput.cpp    2022-10-06 
14:24:23.000000000 +0200
@@ -11,7 +11,6 @@
 #include <mode.h>
 
 #include <QGuiApplication>
-#include <QScreen>
 
 using namespace KScreen;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libkscreen-5.25.5/backends/qscreen/qscreenscreen.cpp 
new/libkscreen-5.26.0/backends/qscreen/qscreenscreen.cpp
--- old/libkscreen-5.25.5/backends/qscreen/qscreenscreen.cpp    2022-09-06 
14:25:08.000000000 +0200
+++ new/libkscreen-5.26.0/backends/qscreen/qscreenscreen.cpp    2022-10-06 
14:24:23.000000000 +0200
@@ -13,7 +13,6 @@
 #include <mode.h>
 
 #include <QGuiApplication>
-#include <QScreen>
 
 using namespace KScreen;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libkscreen-5.25.5/backends/xcbeventlistener.cpp 
new/libkscreen-5.26.0/backends/xcbeventlistener.cpp
--- old/libkscreen-5.25.5/backends/xcbeventlistener.cpp 2022-09-06 
14:25:08.000000000 +0200
+++ new/libkscreen-5.26.0/backends/xcbeventlistener.cpp 2022-10-06 
14:24:23.000000000 +0200
@@ -13,8 +13,6 @@
 #include <QX11Info>
 #endif
 
-#include <QRect>
-
 Q_LOGGING_CATEGORY(KSCREEN_XCB_HELPER, "kscreen.xcb.helper")
 
 XCBEventListener::XCBEventListener()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libkscreen-5.25.5/backends/xrandr/xrandr.cpp 
new/libkscreen-5.26.0/backends/xrandr/xrandr.cpp
--- old/libkscreen-5.25.5/backends/xrandr/xrandr.cpp    2022-09-06 
14:25:08.000000000 +0200
+++ new/libkscreen-5.26.0/backends/xrandr/xrandr.cpp    2022-10-06 
14:24:23.000000000 +0200
@@ -7,7 +7,6 @@
 #include "xrandr.h"
 
 #include "../xcbeventlistener.h"
-#include "../xcbwrapper.h"
 #include "xrandrconfig.h"
 #include "xrandrscreen.h"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libkscreen-5.25.5/backends/xrandr/xrandrconfig.cpp 
new/libkscreen-5.26.0/backends/xrandr/xrandrconfig.cpp
--- old/libkscreen-5.25.5/backends/xrandr/xrandrconfig.cpp      2022-09-06 
14:25:08.000000000 +0200
+++ new/libkscreen-5.26.0/backends/xrandr/xrandrconfig.cpp      2022-10-06 
14:24:23.000000000 +0200
@@ -8,10 +8,7 @@
 #include "config.h"
 #include "edid.h"
 #include "output.h"
-#include "xrandr.h"
-#include "xrandrcrtc.h"
 #include "xrandrmode.h"
-#include "xrandroutput.h"
 #include "xrandrscreen.h"
 
 #include "../xcbwrapper.h"
@@ -122,16 +119,11 @@
     const QSize newScreenSize = screenSize(config);
     const QSize currentScreenSize = m_screen->currentSize();
 
-    // When the current screen configuration is bigger than the new size (like
-    // when rotating an output), the XSetScreenSize can fail or apply the 
smaller
-    // size only partially, because we apply the size (we have to) before the
-    // output changes. To prevent all kinds of weird screen sizes from 
happening,
-    // we initially set such screen size, that it can take the current as well
-    // as the new configuration, then we apply the output changes, and finally 
then
-    // (if necessary) we reduce the screen size to fix the new configuration 
precisely.
-    const QSize intermediateScreenSize =
-        QSize(qMax(newScreenSize.width(), currentScreenSize.width()), 
qMax(newScreenSize.height(), currentScreenSize.height()));
-
+    // Previously we initially set such screen size, that it can take the 
current 
+    // as well  as the new configuration, then we apply the output changes, 
+    // and finally then (if necessary) we reduce the screen size to 
+    // fix the new configuration precisely.Now we initially disable the 
output, 
+    // then set the target screen size, and finally we apply the output 
changes.
     int neededCrtcs = 0;
     xcb_randr_output_t primaryOutput = 0;
     xcb_randr_output_t oldPrimaryOutput = 0;
@@ -242,7 +234,6 @@
     qCDebug(KSCREEN_XRANDR) << "\tChange Screen Size:" << (newScreenSize != 
currentScreenSize);
     if (newScreenSize != currentScreenSize) {
         qCDebug(KSCREEN_XRANDR) << "\t\tOld:" << currentScreenSize << "\n"
-                                << "\t\tIntermediate:" << 
intermediateScreenSize << "\n"
                                 << "\t\tNew:" << newScreenSize;
     }
 
@@ -277,24 +268,14 @@
         disableOutput(output);
     }
 
-    if (intermediateScreenSize != currentScreenSize) {
-        setScreenSize(intermediateScreenSize);
+    if (currentScreenSize != newScreenSize) {
+       for (const KScreen::OutputPtr &output : toChange) {
+             disableOutput(output);
+        }
     }
 
     bool forceScreenSizeUpdate = false;
 
-    for (const KScreen::OutputPtr &output : toChange) {
-        if (!changeOutput(output)) {
-            /* If we disabled the output before changing it and XRandR failed
-             * to re-enable it, then update screen size too */
-            if (toDisable.contains(output->id())) {
-                output->setEnabled(false);
-                qCDebug(KSCREEN_XRANDR) << "Output failed to change: " << 
output->name();
-                forceScreenSizeUpdate = true;
-            }
-        }
-    }
-
     for (const KScreen::OutputPtr &output : toEnable) {
         if (!enableOutput(output)) {
             qCDebug(KSCREEN_XRANDR) << "Output failed to be Enabled: " << 
output->name();
@@ -306,7 +287,7 @@
         setPrimaryOutput(primaryOutput);
     }
 
-    if (forceScreenSizeUpdate || intermediateScreenSize != newScreenSize) {
+    if (forceScreenSizeUpdate || currentScreenSize != newScreenSize) {
         QSize newSize = newScreenSize;
         if (forceScreenSizeUpdate) {
             newSize = screenSize(config);
@@ -314,6 +295,18 @@
         }
         setScreenSize(newSize);
     }
+
+    for (const KScreen::OutputPtr &output : toChange) {
+        if (!changeOutput(output)) {
+            /* If we disabled the output before changing it and XRandR failed
+             * to re-enable it, then update screen size too */
+            if (toDisable.contains(output->id())) {
+                output->setEnabled(false);
+                qCDebug(KSCREEN_XRANDR) << "Output failed to change: " << 
output->name();
+            }
+        }
+    }
+
 }
 
 void XRandRConfig::printConfig(const ConfigPtr &config) const
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libkscreen-5.25.5/backends/xrandr/xrandroutput.cpp 
new/libkscreen-5.26.0/backends/xrandr/xrandroutput.cpp
--- old/libkscreen-5.25.5/backends/xrandr/xrandroutput.cpp      2022-09-06 
14:25:08.000000000 +0200
+++ new/libkscreen-5.26.0/backends/xrandr/xrandroutput.cpp      2022-10-06 
14:24:23.000000000 +0200
@@ -10,7 +10,6 @@
 #include "config.h"
 #include "xrandr.h"
 #include "xrandrconfig.h"
-#include "xrandrmode.h"
 
 #include <xcb/render.h>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libkscreen-5.25.5/src/config.cpp 
new/libkscreen-5.26.0/src/config.cpp
--- old/libkscreen-5.25.5/src/config.cpp        2022-09-06 14:25:08.000000000 
+0200
+++ new/libkscreen-5.26.0/src/config.cpp        2022-10-06 14:24:23.000000000 
+0200
@@ -9,7 +9,6 @@
 #include "abstractbackend.h"
 #include "backendmanager_p.h"
 #include "kscreen_debug.h"
-#include "output.h"
 
 #include <QCryptographicHash>
 #include <QDebug>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libkscreen-5.25.5/src/config.h 
new/libkscreen-5.26.0/src/config.h
--- old/libkscreen-5.25.5/src/config.h  2022-09-06 14:25:08.000000000 +0200
+++ new/libkscreen-5.26.0/src/config.h  2022-10-06 14:24:23.000000000 +0200
@@ -42,6 +42,7 @@
         None = 0x0,
         RequireAtLeastOneEnabledScreen = 0x1,
     };
+    Q_ENUM(ValidityFlag)
     Q_DECLARE_FLAGS(ValidityFlags, ValidityFlag)
 
     /** This indicates which features the used backend supports.
@@ -58,7 +59,9 @@
         AutoRotation = 1 << 4, ///< The backend supports automatic rotation of 
outputs.
         TabletMode = 1 << 5, ///< The backend supports querying if a device is 
in tablet mode.
         SynchronousOutputChanges = 1 << 6, ///< The backend supports blocking 
until the output setting changes are applied
+        XwaylandScales = 1 << 7, ///< The backend supports adapting Xwayland 
clients to a certain scale
     };
+    Q_ENUM(Feature)
     Q_DECLARE_FLAGS(Features, Feature)
 
     /**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libkscreen-5.25.5/src/doctor/doctor.cpp 
new/libkscreen-5.26.0/src/doctor/doctor.cpp
--- old/libkscreen-5.25.5/src/doctor/doctor.cpp 2022-09-06 14:25:08.000000000 
+0200
+++ new/libkscreen-5.26.0/src/doctor/doctor.cpp 2022-10-06 14:24:23.000000000 
+0200
@@ -8,7 +8,6 @@
 #include "dpmsclient.h"
 
 #include <QCollator>
-#include <QCommandLineParser>
 #include <QCoreApplication>
 #include <QDateTime>
 #include <QFile>
@@ -21,7 +20,6 @@
 #include <QStandardPaths>
 
 #include "../backendmanager_p.h"
-#include "../config.h"
 #include "../configoperation.h"
 #include "../edid.h"
 #include "../getconfigoperation.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libkscreen-5.25.5/src/doctor/dpmsclient.cpp 
new/libkscreen-5.26.0/src/doctor/dpmsclient.cpp
--- old/libkscreen-5.25.5/src/doctor/dpmsclient.cpp     2022-09-06 
14:25:08.000000000 +0200
+++ new/libkscreen-5.26.0/src/doctor/dpmsclient.cpp     2022-10-06 
14:24:23.000000000 +0200
@@ -8,13 +8,11 @@
 
 #include <QCommandLineParser>
 #include <QLoggingCategory>
-#include <QRect>
 #include <QStandardPaths>
 #include <QThread>
 
 #include <KWayland/Client/connection_thread.h>
 #include <KWayland/Client/output.h>
-#include <KWayland/Client/registry.h>
 
 #include "qwayland-dpms.h"
 #include <QtWaylandClient/qwaylandclientextension.h>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libkscreen-5.25.5/src/output.cpp 
new/libkscreen-5.26.0/src/output.cpp
--- old/libkscreen-5.25.5/src/output.cpp        2022-09-06 14:25:08.000000000 
+0200
+++ new/libkscreen-5.26.0/src/output.cpp        2022-10-06 14:24:23.000000000 
+0200
@@ -10,13 +10,11 @@
 #include "backendmanager_p.h"
 #include "edid.h"
 #include "kscreen_debug.h"
-#include "mode.h"
 
 #include <QCryptographicHash>
 #include <QGuiApplication>
 #include <QRect>
 #include <QScopedPointer>
-#include <QStringList>
 
 using namespace KScreen;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libkscreen-5.25.5/tests/kwayland/CMakeLists.txt 
new/libkscreen-5.26.0/tests/kwayland/CMakeLists.txt
--- old/libkscreen-5.25.5/tests/kwayland/CMakeLists.txt 2022-09-06 
14:25:08.000000000 +0200
+++ new/libkscreen-5.26.0/tests/kwayland/CMakeLists.txt 2022-10-06 
14:24:23.000000000 +0200
@@ -1,3 +1,7 @@
+if (NOT TARGET KF5::WaylandServer)
+    message(WARNING "Skipping KF5::WaylandServer based tests!")
+    return()
+endif()
 
 add_definitions(-DTEST_DATA="${CMAKE_SOURCE_DIR}/autotests/configs/")
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libkscreen-5.25.5/tests/kwayland/waylandtestserver.cpp 
new/libkscreen-5.26.0/tests/kwayland/waylandtestserver.cpp
--- old/libkscreen-5.25.5/tests/kwayland/waylandtestserver.cpp  2022-09-06 
14:25:08.000000000 +0200
+++ new/libkscreen-5.26.0/tests/kwayland/waylandtestserver.cpp  2022-10-06 
14:24:23.000000000 +0200
@@ -132,8 +132,8 @@
             outputdevice->setGlobalPosition(c->position());
         }
         if (c->scaleChanged()) {
-            qCDebug(KSCREEN_WAYLAND_TESTSERVER) << "Setting scale:" << 
c->scale();
-            outputdevice->setScale(c->scale());
+            qCDebug(KSCREEN_WAYLAND_TESTSERVER) << "Setting scale:" << 
c->scaleF();
+            outputdevice->setScaleF(c->scaleF());
         }
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libkscreen-5.25.5/tests/testpnp.cpp 
new/libkscreen-5.26.0/tests/testpnp.cpp
--- old/libkscreen-5.25.5/tests/testpnp.cpp     2022-09-06 14:25:08.000000000 
+0200
+++ new/libkscreen-5.26.0/tests/testpnp.cpp     2022-10-06 14:24:23.000000000 
+0200
@@ -7,13 +7,11 @@
 
 #include "testpnp.h"
 
-#include "../src/config.h"
 #include "../src/configmonitor.h"
 #include "../src/edid.h"
 #include "../src/getconfigoperation.h"
 #include "../src/mode.h"
 #include "../src/output.h"
-#include "../src/screen.h"
 
 #include <QGuiApplication>
 #include <QRect>

Reply via email to