12
0
Hrvoje Senjan
2015-12-16 16:39:56 +00:00
committed by Git OBS Bridge
parent 28d71e2dd0
commit a708e7b6cd
5 changed files with 23 additions and 145 deletions

View File

@@ -1,72 +0,0 @@
From 1390b40b399770e7a67da714c74d172eee1bb433 Mon Sep 17 00:00:00 2001
From: Anthony Fieroni <bvbfan@abv.bg>
Date: Tue, 15 Dec 2015 12:49:39 +0000
Subject: [PATCH 1/2] Fix left click on item in panel being ignored
Last patch has a reggression due to QtQuick issue (only on Xcb):
QEvent::Leave is triggered after QEvent::MouseButtonPress Qt::LeftButton
BUG: 354651
REVIEW: 126331
---
shell/panelview.cpp | 25 +++++++++----------------
1 file changed, 9 insertions(+), 16 deletions(-)
diff --git a/shell/panelview.cpp b/shell/panelview.cpp
index 28faac44350ccc0ab6a4246045795ba99c7a6ea8..893def0ced7297271d03dd27f40f8f6599a2354f 100644
--- a/shell/panelview.cpp
+++ b/shell/panelview.cpp
@@ -748,7 +748,6 @@ bool PanelView::event(QEvent *e)
* on the mouse edge, forward the click in the containment boundaries
*/
switch (e->type()) {
- case QEvent::Enter:
case QEvent::MouseMove:
case QEvent::MouseButtonPress:
case QEvent::MouseButtonRelease: {
@@ -756,7 +755,7 @@ bool PanelView::event(QEvent *e)
//first, don't mess with position if the cursor is actually outside the view:
//somebody is doing a click and drag that must not break when the cursor i outside
- if (geometry().contains(me->screenPos().toPoint())) {
+ if (geometry().contains(QCursor::pos())) {
if (!containmentContainsPosition(me->windowPos())) {
auto me2 = new QMouseEvent(me->type(),
positionAdjustedForContainment(me->windowPos()),
@@ -767,25 +766,19 @@ bool PanelView::event(QEvent *e)
QCoreApplication::postEvent(this, me2);
return true;
}
- }
- break;
- }
- case QEvent::Leave: {
- QMouseEvent *me = static_cast<QMouseEvent *>(e);
- // don't forget to trigger QEvent::Leave if current mouse position is outside the panel
- if (!geometry().contains(me->screenPos().toPoint())) {
- auto me2 = new QMouseEvent(QEvent::Leave,
- positionAdjustedForContainment(me->windowPos()),
- positionAdjustedForContainment(me->windowPos()),
- positionAdjustedForContainment(me->windowPos()) + position(),
- me->button(), me->buttons(), me->modifiers());
-
- QCoreApplication::postEvent(this, me2);
+ } else {
+ // discard event if current mouse position is outside the panel
return true;
}
break;
}
+ case QEvent::Enter:
+ case QEvent::Leave:
+ // QtQuick < 5.6 issue:
+ // QEvent::Leave is triggered on MouseButtonPress Qt::LeftButton
+ break;
+
case QEvent::Wheel: {
QWheelEvent *we = static_cast<QWheelEvent *>(e);
--
2.6.2

View File

@@ -1,47 +0,0 @@
From a0578e6e5dbd429366e6a9837af543a4c85b5a75 Mon Sep 17 00:00:00 2001
From: Xuetian Weng <wengxt@gmail.com>
Date: Tue, 15 Dec 2015 12:52:26 +0000
Subject: [PATCH 2/2] Workaround a system icon tray issue in bug
QTimer::singleShot(time, QObject*, char*)
QTimer::singleShot(time, QObject*, PointerToFunction)
behave differently when time == 0
So the porting had an effect
This patch migrates to QMetaObject::invokeMethod which is clearer
CCBUG: 352055
There seems to be two different bug in 352055 but looks similar, the other one is fixed in Qt 5.6 according to Albert Astals Cid.
---
applets/systemtray/plugin/host.cpp | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/applets/systemtray/plugin/host.cpp b/applets/systemtray/plugin/host.cpp
index 61e87050826a28409e44c8dac5baebe12e59bf63..06ecf18cc2d520eff76423cbd748119ac35d067d 100644
--- a/applets/systemtray/plugin/host.cpp
+++ b/applets/systemtray/plugin/host.cpp
@@ -32,7 +32,7 @@
#include <QLoggingCategory>
#include <QQuickItem>
-#include <QTimer>
+#include <QMetaObject>
#include <QVariant>
#include <QStandardItemModel>
#include <QMenu>
@@ -99,7 +99,8 @@ Host::Host(QObject* parent) :
QObject(parent),
d(new HostPrivate(this))
{
- QTimer::singleShot(0, this, &Host::init);
+ // Workaround for bug 352055
+ QMetaObject::invokeMethod(this, "init", Qt::QueuedConnection);
}
Host::~Host()
--
2.6.2

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7e91dac2301975ae8ee788deddc9e4ac8c5f699865e85d09cefe0f9f29ac3705
size 7383100

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b8423fe5b8f6ef08f5c187320a58538dde37cb47263371bc8e1de2f9619eaecd
size 7383196

View File

@@ -18,8 +18,9 @@
%bcond_without lang
Name: plasma5-workspace
Version: 5.5.1
Version: 5.5.1.1
Release: 0
%define plasma_version 5.5.1
Summary: The KDE Plasma Workspace Components
License: GPL-2.0+
Group: System/GUI/KDE
@@ -34,8 +35,6 @@ Patch1: create_kdehome.patch
# PATCH-FIX_OPENSUSE fix-breeze-sddm-theme-with-many-users.patch alarrosa@suse.com -- Asks for user/password and hide the user list when there's a large number of users
Patch2: fix-breeze-sddm-theme-with-many-users.patch
# PATCHES 100-200 and above are from upstream 5.5 branch
Patch100: 0001-Fix-left-click-on-item-in-panel-being-ignored.patch
Patch101: 0002-Workaround-a-system-icon-tray-issue-in-bug.patch
# PATCHES 201-300 and above are from upstream master/5.6 branch
BuildRequires: kf5-filesystem
BuildRequires: update-desktop-files
@@ -62,14 +61,14 @@ BuildRequires: cmake(KF5Runner) >= 5.15.0
BuildRequires: cmake(KF5Screen) >= 5.0.93
BuildRequires: cmake(KF5Solid) >= 5.15.0
BuildRequires: cmake(KF5Su) >= 5.15.0
BuildRequires: cmake(KF5SysGuard) >= %{version}
BuildRequires: cmake(KF5SysGuard) >= %{plasma_version}
BuildRequires: cmake(KF5TextEditor)
BuildRequires: cmake(KF5TextWidgets) >= 5.15.0
BuildRequires: cmake(KF5Wallet) >= 5.15.0
BuildRequires: cmake(KF5Wayland) >= %{version}
BuildRequires: cmake(KF5Wayland) >= %{plasma_version}
BuildRequires: cmake(KF5XmlRpcClient)
BuildRequires: cmake(KScreenLocker) >= %{version}
BuildRequires: cmake(KWinDBusInterface) >= %{version}
BuildRequires: cmake(KScreenLocker) >= %{plasma_version}
BuildRequires: cmake(KWinDBusInterface) >= %{plasma_version}
BuildRequires: cmake(Phonon4Qt5) >= 4.6.60
BuildRequires: cmake(Qt5Concurrent) >= 5.4.0
BuildRequires: cmake(Qt5DBus) >= 5.4.0
@@ -82,7 +81,7 @@ BuildRequires: cmake(Qt5Sql) >= 5.4.0
BuildRequires: cmake(Qt5Test) >= 5.4.0
BuildRequires: cmake(Qt5Widgets) >= 5.4.0
BuildRequires: cmake(Qt5X11Extras) >= 5.4.0
BuildRequires: cmake(ScreenSaverDBusInterface) >= %{version}
BuildRequires: cmake(ScreenSaverDBusInterface) >= %{plasma_version}
BuildRequires: cmake(dbusmenu-qt5)
BuildRequires: pkgconfig(libgps)
BuildRequires: pkgconfig(libqalculate)
@@ -100,34 +99,34 @@ BuildRequires: pkgconfig(zlib)
Conflicts: kdebase4-workspace < 5.3.0
# Some files have been moved from kio-extras5 to plasma5-workspace in 5.4. This should prevent a possible file conflict. (boo#944656)
Conflicts: kio-extras5 < 15.08.0
Requires: %{name}-branding = %{version}
Requires: %{name}-branding = %{plasma_version}
Requires: %{name}-libs = %{version}-%{release}
# used within startup
Requires: kde-cli-tools5 >= %{version}
Requires: kde-cli-tools5 >= %{plasma_version}
Requires: kded
Requires: kdelibs4support
Requires: kinit
Requires: kscreenlocker >= %{version}
Requires: kwin5 >= %{version}
Requires: kscreenlocker >= %{plasma_version}
Requires: kwin5 >= %{plasma_version}
Requires: libqt5-qttools >= 5.4.0
# /usr/bin/startkde calls xprop
Requires: xprop
# contains default style, cursors, etc
Requires: breeze >= %{version}
Requires: breeze >= %{plasma_version}
# needed by krunner
Requires: milou5 >= %{version}
Requires: milou5 >= %{plasma_version}
# heavily used by plasma
Requires: libqt5-qtquickcontrols
# battery applet
Requires: drkonqi5 >= %{version}
Requires: kglobalaccel5 >= %{version}
Requires: drkonqi5 >= %{plasma_version}
Requires: kglobalaccel5 >= %{plasma_version}
Requires: solid-imports
# dialog/platformtheme/etc
Requires: frameworkintegration-plugin
Requires: kscreen5 >= %{version}
Requires: libkscreen2-plugin >= %{version}
Requires: kscreen5 >= %{plasma_version}
Requires: libkscreen2-plugin >= %{plasma_version}
# boo#912317
Requires: oxygen5-sounds >= %{version}
Requires: oxygen5-sounds >= %{plasma_version}
# hardcode versions of plasma-framework-componets and plasma-framework-private packages, as upstream doesn't keep backwards compability there
%requires_ge plasma-framework-components
%requires_ge plasma-framework-private
@@ -150,7 +149,7 @@ This package contains the basic packages for a Plasma workspace.
%package branding-upstream
Summary: The KDE Plasma Workspace Components
Group: System/GUI/KDE
Provides: %{name}-branding = %{version}
Provides: %{name}-branding = %{plasma_version}
Supplements: packageand(plasma5-workspace:branding-upstream)
Conflicts: otherproviders(%{name}-branding)
@@ -189,7 +188,7 @@ workspace.
Summary: The KDE Plasma Workspace Components
Group: Development/Libraries/KDE
Requires: %{name}-libs = %{version}-%{release}
Requires: cmake(KF5SysGuard) >= %{version}
Requires: cmake(KF5SysGuard) >= %{plasma_version}
Conflicts: kdebase4-workspace-devel
Provides: plasma-workspace5-devel = %{version}
Obsoletes: plasma-workspace5-devel <= %{version}
@@ -204,8 +203,6 @@ workspace. Development files.
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch100 -p1
%patch101 -p1
%build
%cmake_kf5 -d build -- -DKDE4_COMMON_PAM_SERVICE=xdm -DKDE_DEFAULT_HOME=.kde4 -DCMAKE_INSTALL_LOCALEDIR=share/locale/kf5