pull in upstream fixes (notifications,xembedsniproxy)

epel9
Rex Dieter 9 years ago
parent 4f35cc4608
commit 9e13be7e0f

@ -0,0 +1,31 @@
From 32ace708bdaa5bf0494274661aacc5beff527cdc Mon Sep 17 00:00:00 2001
From: Martin Klapetek <mklapetek@kde.org>
Date: Wed, 6 Jan 2016 22:59:14 -0500
Subject: [PATCH 1/6] [notifications] Ensure the screen position selector works
after state change
Disabling it and enabling back again gives it stale data. This ensures
the selector is properly cleared when disabled.
---
applets/notifications/package/contents/ui/ScreenPositionSelector.qml | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/applets/notifications/package/contents/ui/ScreenPositionSelector.qml b/applets/notifications/package/contents/ui/ScreenPositionSelector.qml
index efff648..4b848c5 100644
--- a/applets/notifications/package/contents/ui/ScreenPositionSelector.qml
+++ b/applets/notifications/package/contents/ui/ScreenPositionSelector.qml
@@ -39,8 +39,10 @@ QtControls.GroupBox {
onEnabledChanged: {
if (!enabled) {
- selectedPosition = NotificationsHelper.Default
+ positionRadios.current = null
}
+
+ selectedPosition = NotificationsHelper.Default
}
PlasmaCore.Svg {
--
2.5.0

@ -0,0 +1,33 @@
From 03cf4b2ba8810323e633e4e6708419c7be3a5030 Mon Sep 17 00:00:00 2001
From: Martin Klapetek <mklapetek@kde.org>
Date: Thu, 7 Jan 2016 00:46:50 -0500
Subject: [PATCH 2/6] [notifications] Replace the mainItem's
Layout.max/minWidth with fixed width
The item is not a layout and is not in a layout, so setting
Layout.min/maxWidth on it has no effect.
---
applets/notifications/package/contents/ui/NotificationPopup.qml | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/applets/notifications/package/contents/ui/NotificationPopup.qml b/applets/notifications/package/contents/ui/NotificationPopup.qml
index d398027..06a62be 100644
--- a/applets/notifications/package/contents/ui/NotificationPopup.qml
+++ b/applets/notifications/package/contents/ui/NotificationPopup.qml
@@ -67,12 +67,11 @@ PlasmaCore.Dialog {
mainItem: MouseArea {
id: root
- Layout.minimumWidth: notificationItem.width + (units.smallSpacing * 2)
- Layout.maximumWidth: Layout.minimumWidth
LayoutMirroring.enabled: Qt.application.layoutDirection === Qt.RightToLeft
LayoutMirroring.childrenInherit: true
height: notificationItem.implicitHeight + (units.smallSpacing * 2)
+ width: notificationItem.width + (units.smallSpacing * 2)
hoverEnabled: true
--
2.5.0

@ -0,0 +1,47 @@
From b806d726ccfc2507bb7636029e60a9b02b6da3a3 Mon Sep 17 00:00:00 2001
From: Martin Klapetek <mklapetek@kde.org>
Date: Thu, 7 Jan 2016 13:32:25 -0500
Subject: [PATCH 3/6] [notifications] Ensure the applet gets correct screen
geometry when loaded
The bug happens because the binary part of the applet sends out the
available screen resolution _before_ the applet is fully loaded AND also
whenever the screen changes in any way. This works fine with the non-
auto hiding panel because once the panel gets loaded, it changes the
available screen area (cause the part where panel is is reserved and
windows cannot go there) and that change is told to the binary part of
the applet and that part tells the positioning part.
However with the auto-hiding panel the signal about the changed
available screen space never arrives because the panel does not take
that space when it loads. And so the applet was left with "available
screen space = 0x0" because the first signal is sent out before the
applet is fully loaded.
So the obvious fix is to simply ask for the available screen space
_after_ the applet has finished loading.
BUG: 357652
FIXED-IN: 5.5.4
---
applets/notifications/package/contents/ui/Notifications.qml | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/applets/notifications/package/contents/ui/Notifications.qml b/applets/notifications/package/contents/ui/Notifications.qml
index a354abb..eab4bc1 100644
--- a/applets/notifications/package/contents/ui/Notifications.qml
+++ b/applets/notifications/package/contents/ui/Notifications.qml
@@ -189,6 +189,10 @@ Column {
NotificationsHelper {
id: notificationPositioner
popupLocation: plasmoid.nativeInterface.screenPosition
+
+ Component.onCompleted: {
+ notificationPositioner.setPlasmoidScreenGeometry(plasmoid.nativeInterface.availableScreenRect);
+ }
}
Repeater {
--
2.5.0

@ -0,0 +1,26 @@
From abb010cae5c6c0093aec21b81585fbebfc46faa3 Mon Sep 17 00:00:00 2001
From: Kai Uwe Broulik <kde@privat.broulik.de>
Date: Thu, 7 Jan 2016 23:08:51 +0100
Subject: [PATCH 4/6] [Device Notifier] Improve legibility of device status
label
---
applets/devicenotifier/package/contents/ui/DeviceItem.qml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/applets/devicenotifier/package/contents/ui/DeviceItem.qml b/applets/devicenotifier/package/contents/ui/DeviceItem.qml
index 3078cef..1a07c3f 100644
--- a/applets/devicenotifier/package/contents/ui/DeviceItem.qml
+++ b/applets/devicenotifier/package/contents/ui/DeviceItem.qml
@@ -161,7 +161,7 @@ Item {
// initialized
text: deviceItem.state == 0 ? container.idleStatus() : (deviceItem.state == 1 ? i18nc("Accessing is a less technical word for Mounting; translation should be short and mean \'Currently mounting this device\'", "Accessing...") : i18nc("Removing is a less technical word for Unmounting; translation shoud be short and mean \'Currently unmounting this device\'", "Removing..."))
font.pointSize: theme.smallestFont.pointSize
- color: "#99"+(theme.textColor.toString().substr(1))
+ opacity: 0.6
Behavior on opacity { NumberAnimation { duration: units.shortDuration * 3 } }
}
--
2.5.0

@ -0,0 +1,62 @@
From 6232362cca7021e5b436d267e07f9d6875a20a4c Mon Sep 17 00:00:00 2001
From: David Edmundson <kde@davidedmundson.co.uk>
Date: Mon, 21 Dec 2015 23:09:50 +0000
Subject: [PATCH 5/6] Check for null geometry in client window
BUG: 355463
---
xembed-sni-proxy/sniproxy.cpp | 17 ++++++++++++++---
1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/xembed-sni-proxy/sniproxy.cpp b/xembed-sni-proxy/sniproxy.cpp
index 7a51767..9f3ef81 100644
--- a/xembed-sni-proxy/sniproxy.cpp
+++ b/xembed-sni-proxy/sniproxy.cpp
@@ -158,23 +158,30 @@ SNIProxy::SNIProxy(xcb_window_t wid, QObject* parent):
windowMoveConfigVals);
+ QSize clientWindowSize;
+
+ if (clientGeom) {
+ clientWindowSize = QSize(clientGeom->width, clientGeom->height);
+ }
//if the window is a clearly stupid size resize to be something sensible
//this is needed as chormium and such when resized just fill the icon with transparent space and only draw in the middle
//however spotify does need this as by default the window size is 900px wide.
//use an artbitrary heuristic to make sure icons are always sensible
- if (clientGeom->width > s_embedSize || clientGeom->height > s_embedSize )
+ if (clientWindowSize.isEmpty() || clientWindowSize.width() > s_embedSize || clientWindowSize.height() > s_embedSize )
{
+ qCDebug(SNIPROXY) << "Resizing window" << wid << Title() << "from w*h" << clientWindowSize;
+
const uint32_t windowMoveConfigVals[2] = { s_embedSize, s_embedSize };
xcb_configure_window(c, wid,
XCB_CONFIG_WINDOW_WIDTH | XCB_CONFIG_WINDOW_HEIGHT,
windowMoveConfigVals);
- qCDebug(SNIPROXY) << "Resizing window" << wid << Title() << "from w*h" << clientGeom->width << clientGeom->height;
+ clientWindowSize = QSize(s_embedSize, s_embedSize);
}
//show the embedded window otherwise nothing happens
xcb_map_window(c, wid);
- xcb_clear_area(c, 0, wid, 0, 0, qMin(clientGeom->width, s_embedSize), qMin(clientGeom->height, s_embedSize));
+ xcb_clear_area(c, 0, wid, 0, 0, clientWindowSize.width(), clientWindowSize.height());
xcb_flush(c);
@@ -246,6 +253,10 @@ QImage SNIProxy::getImageNonComposite() const
QScopedPointer<xcb_get_geometry_reply_t, QScopedPointerPodDeleter>
geom(xcb_get_geometry_reply(c, cookie, Q_NULLPTR));
+ if (!geom) {
+ return QImage();
+ }
+
xcb_image_t *image = xcb_image_get(c, m_windowId, 0, 0, geom->width, geom->height, 0xFFFFFF, XCB_IMAGE_FORMAT_Z_PIXMAP);
// Don't hook up cleanup yet, we may use a different QImage after all
--
2.5.0

@ -11,7 +11,7 @@
Name: plasma-workspace Name: plasma-workspace
Summary: Plasma workspace, applications and applets Summary: Plasma workspace, applications and applets
Version: 5.5.3 Version: 5.5.3
Release: 1%{?dist} Release: 2%{?dist}
License: GPLv2+ License: GPLv2+
URL: https://projects.kde.org/plasma-workspace URL: https://projects.kde.org/plasma-workspace
@ -44,6 +44,11 @@ Patch14: plasma-workspace-5.5.0-plasmawayland_desktop.patch
Patch1: kde-runtime-4.9.0-installdbgsymbols.patch Patch1: kde-runtime-4.9.0-installdbgsymbols.patch
## upstream Patches ## upstream Patches
Patch101: 0001-notifications-Ensure-the-screen-position-selector-wo.patch
Patch102: 0002-notifications-Replace-the-mainItem-s-Layout.max-minW.patch
Patch103: 0003-notifications-Ensure-the-applet-gets-correct-screen-.patch
Patch104: 0004-Device-Notifier-Improve-legibility-of-device-status-.patch
Patch105: 0005-Check-for-null-geometry-in-client-window.patch
## master branch Patches ## master branch Patches
@ -343,6 +348,11 @@ Requires: qt5-qtwayland%{?_isa}
%setup -q %setup -q
# upstream patches # upstream patches
%patch101 -p1 -b .0001
%patch102 -p1 -b .0002
%patch103 -p1 -b .0003
%patch104 -p1 -b .0004
%patch105 -p1 -b .0005
%patch1 -p1 -b .installdbgsymbols %patch1 -p1 -b .installdbgsymbols
%patch10 -p1 -b .konsole-in-contextmenu %patch10 -p1 -b .konsole-in-contextmenu
@ -568,6 +578,9 @@ fi
%changelog %changelog
* Sat Jan 09 2016 Rex Dieter <rdieter@fedoraproject.org> 5.5.3-2
- pull in upstream fixes (notifications,xembedsniproxy)
* Thu Jan 07 2016 Daniel Vrátil <dvratil@fedoraproject.org> - 5.5.3-1 * Thu Jan 07 2016 Daniel Vrátil <dvratil@fedoraproject.org> - 5.5.3-1
- Plasma 5.5.3 - Plasma 5.5.3

Loading…
Cancel
Save