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
|
||||||
|
|
Loading…
Reference in new issue