Accepting request 357760 from KDE:Frameworks5
- Added reset-the-model-on-list-always-shown-hide-change.patch (kde#357627, kde#352055) - Update to 5.5.4: * Bugfix release * For more details please see: https://www.kde.org/announcements/plasma-5.5.4.php - Drop xembedsniproxy-check-for-null-geometry.patch, upstreamed OBS-URL: https://build.opensuse.org/request/show/357760 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/plasma5-workspace?expand=0&rev=33
This commit is contained in:
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:4949b207fc8251b4be029619caba6346bf022041d7b14f9843b9c59503affa72
|
||||
size 7383524
|
3
plasma-workspace-5.5.4.tar.xz
Normal file
3
plasma-workspace-5.5.4.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f0a0eb82346514b0b3b00644cd9464c32152d48accee13ed322c500b3036097e
|
||||
size 7391812
|
@@ -1,3 +1,18 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Feb 4 16:20:20 UTC 2016 - hrvoje.senjan@gmail.com
|
||||
|
||||
- Added reset-the-model-on-list-always-shown-hide-change.patch
|
||||
(kde#357627, kde#352055)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jan 26 22:20:18 UTC 2016 - hrvoje.senjan@gmail.com
|
||||
|
||||
- Update to 5.5.4:
|
||||
* Bugfix release
|
||||
* For more details please see:
|
||||
https://www.kde.org/announcements/plasma-5.5.4.php
|
||||
- Drop xembedsniproxy-check-for-null-geometry.patch, upstreamed
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 20 10:50:47 UTC 2016 - wbauer@tmo.at
|
||||
|
||||
|
@@ -18,9 +18,9 @@
|
||||
|
||||
%bcond_without lang
|
||||
Name: plasma5-workspace
|
||||
Version: 5.5.3
|
||||
Version: 5.5.4
|
||||
Release: 0
|
||||
%define plasma_version 5.5.3
|
||||
%define plasma_version 5.5.4
|
||||
Summary: The KDE Plasma Workspace Components
|
||||
License: GPL-2.0+
|
||||
Group: System/GUI/KDE
|
||||
@@ -35,8 +35,7 @@ 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
|
||||
# PATCH-FIX-UPSTREAM xembedsniproxy-check-for-null-geometry.patch boo#954623, kde#355463, kde#358227 -- fixes an xembedsniproxy crash
|
||||
Patch100: xembedsniproxy-check-for-null-geometry.patch
|
||||
Patch100: reset-the-model-on-list-always-shown-hide-change.patch
|
||||
# PATCHES 201-300 and above are from upstream master/5.6 branch
|
||||
BuildRequires: kf5-filesystem
|
||||
BuildRequires: update-desktop-files
|
||||
|
74
reset-the-model-on-list-always-shown-hide-change.patch
Normal file
74
reset-the-model-on-list-always-shown-hide-change.patch
Normal file
@@ -0,0 +1,74 @@
|
||||
From 42a3d8accd4e494d343954ddaa916a6c618d94f3 Mon Sep 17 00:00:00 2001
|
||||
From: Marco Martin <notmart@gmail.com>
|
||||
Date: Wed, 3 Feb 2016 15:36:31 +0100
|
||||
Subject: [PATCH 1/1] reset the model on list always shown/hide change
|
||||
|
||||
something really wrong is going on on the proxymodel updates
|
||||
the wrong item gets removed from the list.
|
||||
it may be a wrong mapping between source and dest model
|
||||
(doesn't seem so)
|
||||
or may have been some misguided attempt by QML to recycle delegates
|
||||
|
||||
anyways resetting the model in some conditions even if expensive
|
||||
seems to be the only way to workaround this.
|
||||
Anyways this systray implementation is beyond any repair and
|
||||
the rewritten version won't have to rely on so many models
|
||||
and proxymodels
|
||||
|
||||
BUG:357627
|
||||
CCBUG:352055
|
||||
---
|
||||
applets/systemtray/plugin/tasksproxymodel.cpp | 13 ++++++++++---
|
||||
applets/systemtray/plugin/tasksproxymodel.h | 5 ++++-
|
||||
2 files changed, 14 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/applets/systemtray/plugin/tasksproxymodel.cpp b/applets/systemtray/plugin/tasksproxymodel.cpp
|
||||
index 632e84b..b93b05e 100644
|
||||
--- a/applets/systemtray/plugin/tasksproxymodel.cpp
|
||||
+++ b/applets/systemtray/plugin/tasksproxymodel.cpp
|
||||
@@ -50,9 +50,9 @@ void TasksProxyModel::setHost(Host *host)
|
||||
|
||||
connect(m_host, &Host::taskStatusChanged, this, &TasksProxyModel::invalidateFilter);
|
||||
connect(m_host, &Host::shownCategoriesChanged, this, &TasksProxyModel::invalidateFilter);
|
||||
- connect(m_host, &Host::showAllItemsChanged, this, &TasksProxyModel::invalidateFilter);
|
||||
- connect(m_host, &Host::forcedHiddenItemsChanged, this, &TasksProxyModel::invalidateFilter);
|
||||
- connect(m_host, &Host::forcedShownItemsChanged, this, &TasksProxyModel::invalidateFilter);
|
||||
+ connect(m_host, &Host::showAllItemsChanged, this, &TasksProxyModel::reset);
|
||||
+ connect(m_host, &Host::forcedHiddenItemsChanged, this, &TasksProxyModel::reset);
|
||||
+ connect(m_host, &Host::forcedShownItemsChanged, this, &TasksProxyModel::reset);
|
||||
}
|
||||
|
||||
invalidateFilter();
|
||||
@@ -74,6 +74,13 @@ void TasksProxyModel::setCategory(Category category)
|
||||
}
|
||||
}
|
||||
|
||||
+void TasksProxyModel::reset()
|
||||
+{
|
||||
+ beginResetModel();
|
||||
+ invalidateFilter();
|
||||
+ endResetModel();
|
||||
+}
|
||||
+
|
||||
bool TasksProxyModel::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const
|
||||
{
|
||||
Q_UNUSED(sourceParent);
|
||||
diff --git a/applets/systemtray/plugin/tasksproxymodel.h b/applets/systemtray/plugin/tasksproxymodel.h
|
||||
index 70e723a..5799d62 100644
|
||||
--- a/applets/systemtray/plugin/tasksproxymodel.h
|
||||
+++ b/applets/systemtray/plugin/tasksproxymodel.h
|
||||
@@ -56,7 +56,10 @@ public:
|
||||
|
||||
virtual bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const override;
|
||||
|
||||
-signals:
|
||||
+private Q_SLOTS:
|
||||
+ void reset();
|
||||
+
|
||||
+Q_SIGNALS:
|
||||
void hostChanged();
|
||||
void categoryChanged();
|
||||
void countChanged();
|
||||
--
|
||||
2.6.2
|
||||
|
@@ -1,59 +0,0 @@
|
||||
From: David Edmundson <kde@davidedmundson.co.uk>
|
||||
Date: Mon, 21 Dec 2015 23:09:50 +0000
|
||||
Subject: Check for null geometry in client window
|
||||
X-Git-Url: http://quickgit.kde.org/?p=plasma-workspace.git&a=commitdiff&h=6232362cca7021e5b436d267e07f9d6875a20a4c
|
||||
---
|
||||
Check for null geometry in client window
|
||||
|
||||
BUG: 355463
|
||||
---
|
||||
|
||||
|
||||
--- a/xembed-sni-proxy/sniproxy.cpp
|
||||
+++ b/xembed-sni-proxy/sniproxy.cpp
|
||||
@@ -158,23 +158,30 @@
|
||||
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);
|
||||
|
||||
@@ -245,6 +252,10 @@
|
||||
auto cookie = xcb_get_geometry(c, m_windowId);
|
||||
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);
|
||||
|
||||
|
Reference in New Issue
Block a user