From bb10ac1f5ee70b914c12dd416d98f18872101b4c2472742e8e08b3a704bc9a7f Mon Sep 17 00:00:00 2001 From: Hrvoje Senjan Date: Sat, 12 Dec 2015 20:10:21 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/KDE:Frameworks5/plasma5-workspace?expand=0&rev=147 --- ...ter-and-leave-events-on-feathered-ed.patch | 54 ++++++++++++++++ ...eck-if-the-popup-is-visible-before-u.patch | 34 ++++++++++ ...ve-reading-globalConfig-from-ctor-to.patch | 62 +++++++++++++++++++ ...tion-of-the-timezones-configuration-.patch | 32 ++++++++++ ...x-default-notification-position-sett.patch | 42 +++++++++++++ plasma5-workspace.changes | 6 ++ plasma5-workspace.spec | 10 +++ 7 files changed, 240 insertions(+) create mode 100644 0001-Forward-mouse-enter-and-leave-events-on-feathered-ed.patch create mode 100644 0001-notifications-Check-if-the-popup-is-visible-before-u.patch create mode 100644 0002-notifications-Move-reading-globalConfig-from-ctor-to.patch create mode 100644 0003-Make-comment-section-of-the-timezones-configuration-.patch create mode 100644 0004-notifications-Fix-default-notification-position-sett.patch diff --git a/0001-Forward-mouse-enter-and-leave-events-on-feathered-ed.patch b/0001-Forward-mouse-enter-and-leave-events-on-feathered-ed.patch new file mode 100644 index 0000000..c4f1f98 --- /dev/null +++ b/0001-Forward-mouse-enter-and-leave-events-on-feathered-ed.patch @@ -0,0 +1,54 @@ +From 76cb47f1279ea012a9eda11c4ead7f28db4c1399 Mon Sep 17 00:00:00 2001 +From: Anthony Fieroni +Date: Tue, 1 Dec 2015 09:27:15 +0000 +Subject: [PATCH 1/9] Forward mouse enter and leave events on feathered edges + +REVIEW: 126175 +BUG: 354651 +--- + shell/panelview.cpp | 22 ++++++++++++++++++++-- + 1 file changed, 20 insertions(+), 2 deletions(-) + +diff --git a/shell/panelview.cpp b/shell/panelview.cpp +index 34075013b22995d81c98d933db596dff520bd812..28faac44350ccc0ab6a4246045795ba99c7a6ea8 100644 +--- a/shell/panelview.cpp ++++ b/shell/panelview.cpp +@@ -748,6 +748,7 @@ 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: { +@@ -755,8 +756,25 @@ 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()) && !containmentContainsPosition(me->windowPos())) { +- auto me2 = new QMouseEvent(me->type(), ++ if (geometry().contains(me->screenPos().toPoint())) { ++ if (!containmentContainsPosition(me->windowPos())) { ++ auto me2 = new QMouseEvent(me->type(), ++ positionAdjustedForContainment(me->windowPos()), ++ positionAdjustedForContainment(me->windowPos()), ++ positionAdjustedForContainment(me->windowPos()) + position(), ++ me->button(), me->buttons(), me->modifiers()); ++ ++ QCoreApplication::postEvent(this, me2); ++ return true; ++ } ++ } ++ break; ++ } ++ case QEvent::Leave: { ++ QMouseEvent *me = static_cast(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(), +-- +2.6.2 + diff --git a/0001-notifications-Check-if-the-popup-is-visible-before-u.patch b/0001-notifications-Check-if-the-popup-is-visible-before-u.patch new file mode 100644 index 0000000..6e2e2c2 --- /dev/null +++ b/0001-notifications-Check-if-the-popup-is-visible-before-u.patch @@ -0,0 +1,34 @@ +From 2b59ccd531dcdb7d86577cee1d987f95a9db9bf0 Mon Sep 17 00:00:00 2001 +From: Martin Klapetek +Date: Wed, 9 Dec 2015 13:29:24 -0500 +Subject: [PATCH 1/4] [notifications] Check if the popup is visible before + updating its geometry + +This slot gets triggered also on popup hiding, which is unwanted. +Should also prevent a crash when unloading notifications applet while +there is an active popup on screen. + +BUG: 356402 +FIXED-IN: 5.5.1 +--- + applets/notifications/plugin/notificationshelper.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/applets/notifications/plugin/notificationshelper.cpp b/applets/notifications/plugin/notificationshelper.cpp +index ab002d952a358c616bb2ffefc7207da2057062a0..208dcc5de9027fea4dd02c70e597789015084bb9 100644 +--- a/applets/notifications/plugin/notificationshelper.cpp ++++ b/applets/notifications/plugin/notificationshelper.cpp +@@ -130,8 +130,8 @@ void NotificationsHelper::addNotificationPopup(QObject *win) + + void NotificationsHelper::onPopupShown() + { +- QObject *popup = sender(); +- if (!popup) { ++ QWindow *popup = qobject_cast(sender()); ++ if (!popup || !popup->isVisible()) { + return; + } + +-- +2.6.2 + diff --git a/0002-notifications-Move-reading-globalConfig-from-ctor-to.patch b/0002-notifications-Move-reading-globalConfig-from-ctor-to.patch new file mode 100644 index 0000000..e51a691 --- /dev/null +++ b/0002-notifications-Move-reading-globalConfig-from-ctor-to.patch @@ -0,0 +1,62 @@ +From 5c5bbc3f8c4297cfd6862072aa33a45d947fa41b Mon Sep 17 00:00:00 2001 +From: Martin Klapetek +Date: Wed, 9 Dec 2015 14:07:07 -0500 +Subject: [PATCH 2/4] [notifications] Move reading globalConfig() from ctor to + init() + +The globalConfig() in ctor returns a non-(yet-)existing KConfigGroup +which makes it always return the default value. So the config access +must be delayed for init(). + +Custom notification position is now correctly remembered. + +BUG: 356419 +FIXED-IN: 5.5.1 +--- + applets/notifications/lib/notificationsapplet.cpp | 10 +++++++--- + applets/notifications/lib/notificationsapplet.h | 1 + + 2 files changed, 8 insertions(+), 3 deletions(-) + +diff --git a/applets/notifications/lib/notificationsapplet.cpp b/applets/notifications/lib/notificationsapplet.cpp +index fdfb6578f9abeca6067db45fea9f4ec6f5857eec..33184c4fdd9d091f2ba39f354c7c9d2a66b2b48b 100644 +--- a/applets/notifications/lib/notificationsapplet.cpp ++++ b/applets/notifications/lib/notificationsapplet.cpp +@@ -28,16 +28,20 @@ + NotificationsApplet::NotificationsApplet(QObject *parent, const QVariantList &data) + : Plasma::Applet(parent, data) + { +- KConfigGroup globalGroup = globalConfig(); +- m_popupPosition = (NotificationsHelper::PositionOnScreen)globalGroup.readEntry("popupPosition", 0); //0 is default +- + connect(this, &Plasma::Applet::locationChanged, + this, &NotificationsApplet::onAppletLocationChanged); + } + + NotificationsApplet::~NotificationsApplet() + { ++} ++ ++void NotificationsApplet::init() ++{ ++ KConfigGroup globalGroup = globalConfig(); ++ m_popupPosition = (NotificationsHelper::PositionOnScreen)globalGroup.readEntry("popupPosition", 0); //0 is default + ++ Plasma::Applet::init(); + } + + void NotificationsApplet::onAppletLocationChanged(Plasma::Types::Location location) +diff --git a/applets/notifications/lib/notificationsapplet.h b/applets/notifications/lib/notificationsapplet.h +index bad3071a29d3a341f4b16609398443e7a9925bf9..5b262f1b4d33119b1f8032fbd26cc5dfb2ebeb36 100644 +--- a/applets/notifications/lib/notificationsapplet.h ++++ b/applets/notifications/lib/notificationsapplet.h +@@ -38,6 +38,7 @@ public: + Q_INVOKABLE uint screenPosition() const; + + public Q_SLOTS: ++ void init() Q_DECL_OVERRIDE; + void onScreenPositionChanged(uint position); + void onAppletLocationChanged(Plasma::Types::Location location); + +-- +2.6.2 + diff --git a/0003-Make-comment-section-of-the-timezones-configuration-.patch b/0003-Make-comment-section-of-the-timezones-configuration-.patch new file mode 100644 index 0000000..f26180d --- /dev/null +++ b/0003-Make-comment-section-of-the-timezones-configuration-.patch @@ -0,0 +1,32 @@ +From 6381dbd9b7a0f33dd024a98ef18a5143ba929b0e Mon Sep 17 00:00:00 2001 +From: Imran Tatriev +Date: Thu, 10 Dec 2015 15:35:35 +0000 +Subject: [PATCH 3/4] Make "comment" section of the timezones configuration + searchable + +BUG: 354238 +REVIEW: 126302 +FIXED-IN: 5.5.1 +--- + applets/digital-clock/plugin/timezonemodel.cpp | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/applets/digital-clock/plugin/timezonemodel.cpp b/applets/digital-clock/plugin/timezonemodel.cpp +index 5d2350505e286280dd59dd7964ea1819026150e4..2fe7b16275f623908cfcfb3bffbb9185dd55011e 100644 +--- a/applets/digital-clock/plugin/timezonemodel.cpp ++++ b/applets/digital-clock/plugin/timezonemodel.cpp +@@ -40,8 +40,10 @@ bool TimeZoneFilterProxy::filterAcceptsRow(int source_row, const QModelIndex &so + + const QString city = sourceModel()->index(source_row, 0, source_parent).data(TimeZoneModel::CityRole).toString(); + const QString region = sourceModel()->index(source_row, 0, source_parent).data(TimeZoneModel::RegionRole).toString(); ++ const QString comment = sourceModel()->index(source_row, 0, source_parent).data(TimeZoneModel::CommentRole).toString(); + +- if (m_stringMatcher.indexIn(city) != -1 || m_stringMatcher.indexIn(region) != -1) { ++ if (m_stringMatcher.indexIn(city) != -1 || m_stringMatcher.indexIn(region) != -1 || ++ m_stringMatcher.indexIn(comment) != -1) { + return true; + } + +-- +2.6.2 + diff --git a/0004-notifications-Fix-default-notification-position-sett.patch b/0004-notifications-Fix-default-notification-position-sett.patch new file mode 100644 index 0000000..59a2e65 --- /dev/null +++ b/0004-notifications-Fix-default-notification-position-sett.patch @@ -0,0 +1,42 @@ +From 5d56df0d53851a8cd61344d356bcb552220dd3ed Mon Sep 17 00:00:00 2001 +From: Martin Klapetek +Date: Thu, 10 Dec 2015 16:29:43 -0500 +Subject: [PATCH 4/4] [notifications] Fix default notification position setting + +It can happen that the onAppletLocationChanged() slot gets called before +init(), making init() reset the calculated position from the slot. + +CCBUG: 356461 +--- + applets/notifications/lib/notificationsapplet.cpp | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/applets/notifications/lib/notificationsapplet.cpp b/applets/notifications/lib/notificationsapplet.cpp +index 33184c4fdd9d091f2ba39f354c7c9d2a66b2b48b..891cdb0a21d87cb6bf6a5ab3bcd0fddf71047d75 100644 +--- a/applets/notifications/lib/notificationsapplet.cpp ++++ b/applets/notifications/lib/notificationsapplet.cpp +@@ -28,8 +28,6 @@ + NotificationsApplet::NotificationsApplet(QObject *parent, const QVariantList &data) + : Plasma::Applet(parent, data) + { +- connect(this, &Plasma::Applet::locationChanged, +- this, &NotificationsApplet::onAppletLocationChanged); + } + + NotificationsApplet::~NotificationsApplet() +@@ -41,7 +39,12 @@ void NotificationsApplet::init() + KConfigGroup globalGroup = globalConfig(); + m_popupPosition = (NotificationsHelper::PositionOnScreen)globalGroup.readEntry("popupPosition", 0); //0 is default + ++ connect(this, &Plasma::Applet::locationChanged, ++ this, &NotificationsApplet::onAppletLocationChanged); ++ + Plasma::Applet::init(); ++ ++ onAppletLocationChanged(location()); + } + + void NotificationsApplet::onAppletLocationChanged(Plasma::Types::Location location) +-- +2.6.2 + diff --git a/plasma5-workspace.changes b/plasma5-workspace.changes index aee8475..40aa633 100644 --- a/plasma5-workspace.changes +++ b/plasma5-workspace.changes @@ -6,6 +6,12 @@ Sat Dec 12 17:32:52 UTC 2015 - hrvoje.senjan@gmail.com https://dot.kde.org/2015/12/08/plasma-55-beautiful-new-artwork - Move to cmake(...) BuildRequires where possible - Drop no longer needed fix-wayland-requirement.patch and rb125743.patch +- Added patches from upstream: + 0001-notifications-Check-if-the-popup-is-visible-before-u.patch + 0002-notifications-Move-reading-globalConfig-from-ctor-to.patch + 0003-Make-comment-section-of-the-timezones-configuration-.patch + 0004-notifications-Fix-default-notification-position-sett.patch + 0001-Forward-mouse-enter-and-leave-events-on-feathered-ed.patch ------------------------------------------------------------------- Fri Dec 4 12:02:33 UTC 2015 - alarrosa@suse.com diff --git a/plasma5-workspace.spec b/plasma5-workspace.spec index d2089e1..40c3135 100644 --- a/plasma5-workspace.spec +++ b/plasma5-workspace.spec @@ -34,6 +34,11 @@ 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-Forward-mouse-enter-and-leave-events-on-feathered-ed.patch +Patch101: 0001-notifications-Check-if-the-popup-is-visible-before-u.patch +Patch102: 0002-notifications-Move-reading-globalConfig-from-ctor-to.patch +Patch103: 0003-Make-comment-section-of-the-timezones-configuration-.patch +Patch104: 0004-notifications-Fix-default-notification-position-sett.patch # PATCHES 201-300 and above are from upstream master/5.6 branch BuildRequires: kf5-filesystem BuildRequires: update-desktop-files @@ -202,6 +207,11 @@ workspace. Development files. %patch0 -p1 %patch1 -p1 %patch2 -p1 +%patch100 -Rp1 +%patch101 -p1 +%patch102 -p1 +%patch103 -p1 +%patch104 -p1 %build %cmake_kf5 -d build -- -DKDE4_COMMON_PAM_SERVICE=xdm -DKDE_DEFAULT_HOME=.kde4 -DCMAKE_INSTALL_LOCALEDIR=share/locale/kf5