From 9e13be7e0fac52834cef37008ec4e9102b7fbdc4 Mon Sep 17 00:00:00 2001 From: Rex Dieter Date: Jan 09 2016 15:02:46 +0000 Subject: pull in upstream fixes (notifications,xembedsniproxy) --- diff --git a/0001-notifications-Ensure-the-screen-position-selector-wo.patch b/0001-notifications-Ensure-the-screen-position-selector-wo.patch new file mode 100644 index 0000000..15436ea --- /dev/null +++ b/0001-notifications-Ensure-the-screen-position-selector-wo.patch @@ -0,0 +1,31 @@ +From 32ace708bdaa5bf0494274661aacc5beff527cdc Mon Sep 17 00:00:00 2001 +From: Martin Klapetek +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 + diff --git a/0002-notifications-Replace-the-mainItem-s-Layout.max-minW.patch b/0002-notifications-Replace-the-mainItem-s-Layout.max-minW.patch new file mode 100644 index 0000000..7d5975b --- /dev/null +++ b/0002-notifications-Replace-the-mainItem-s-Layout.max-minW.patch @@ -0,0 +1,33 @@ +From 03cf4b2ba8810323e633e4e6708419c7be3a5030 Mon Sep 17 00:00:00 2001 +From: Martin Klapetek +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 + diff --git a/0003-notifications-Ensure-the-applet-gets-correct-screen-.patch b/0003-notifications-Ensure-the-applet-gets-correct-screen-.patch new file mode 100644 index 0000000..85b1cb2 --- /dev/null +++ b/0003-notifications-Ensure-the-applet-gets-correct-screen-.patch @@ -0,0 +1,47 @@ +From b806d726ccfc2507bb7636029e60a9b02b6da3a3 Mon Sep 17 00:00:00 2001 +From: Martin Klapetek +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 + diff --git a/0004-Device-Notifier-Improve-legibility-of-device-status-.patch b/0004-Device-Notifier-Improve-legibility-of-device-status-.patch new file mode 100644 index 0000000..7209f23 --- /dev/null +++ b/0004-Device-Notifier-Improve-legibility-of-device-status-.patch @@ -0,0 +1,26 @@ +From abb010cae5c6c0093aec21b81585fbebfc46faa3 Mon Sep 17 00:00:00 2001 +From: Kai Uwe Broulik +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 + diff --git a/0005-Check-for-null-geometry-in-client-window.patch b/0005-Check-for-null-geometry-in-client-window.patch new file mode 100644 index 0000000..3fa061a --- /dev/null +++ b/0005-Check-for-null-geometry-in-client-window.patch @@ -0,0 +1,62 @@ +From 6232362cca7021e5b436d267e07f9d6875a20a4c Mon Sep 17 00:00:00 2001 +From: David Edmundson +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 + 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 + diff --git a/plasma-workspace.spec b/plasma-workspace.spec index cbb0459..5baa93c 100644 --- a/plasma-workspace.spec +++ b/plasma-workspace.spec @@ -11,7 +11,7 @@ Name: plasma-workspace Summary: Plasma workspace, applications and applets Version: 5.5.3 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2+ 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 ## 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 @@ -343,6 +348,11 @@ Requires: qt5-qtwayland%{?_isa} %setup -q # 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 %patch10 -p1 -b .konsole-in-contextmenu @@ -568,6 +578,9 @@ fi %changelog +* Sat Jan 09 2016 Rex Dieter 5.5.3-2 +- pull in upstream fixes (notifications,xembedsniproxy) + * Thu Jan 07 2016 Daniel Vrátil - 5.5.3-1 - Plasma 5.5.3