From kde-panel-devel Sat Dec 31 22:22:43 2016 From: "broulik (Kai Uwe Broulik)" Date: Sat, 31 Dec 2016 22:22:43 +0000 To: kde-panel-devel Subject: [Differential] [Request, 21 lines] D3897: [Panel Containment] Explicitly bind visible on both the co Message-Id: X-MARC-Message: https://marc.info/?l=kde-panel-devel&m=148322298210660 MIME-Version: 1 Content-Type: multipart/mixed; boundary="--bf7a473283954ab9910d3d33dcfb0f48" --bf7a473283954ab9910d3d33dcfb0f48 Content-Type: text/plain; charset="ascii" Mime-Version: 1.0 Content-Transfer-Encoding: 7bit broulik created this revision. broulik added a reviewer: Plasma. broulik set the repository for this revision to R119 Plasma Desktop. Restricted Application added a project: Plasma. Restricted Application added a subscriber: plasma-devel. REVISION SUMMARY While trying to fix a random plasmashell crash I was getting fairly often (and I hoped was fixed by David's last spacer fix) I found that the cause was actually in virtual desktop pager. The virtual desktop pager is hidden when there's just one desktop and it will not update its models in this case to save resources. Back when I added this I already noticed that sometimes the pager (usually after one "open and close panelcontroller" cycle) still thought it was visible. It was even weirder than that, I found out that on teardown it suddenly thought it became visible. This had it populate its model which in turn spawned QML items, all of this whilst the panel was already in the process of destroying its children, leading to a crash. TEST PLAN Previously I could easily reproduce the crash: start plasmashell open panel controller quickly open krunner and type kquitapp plasmashell boom No more, gosh, this was a weird one. Also verified that virtual desktop pager "enabled" property stays consistent. REPOSITORY R119 Plasma Desktop REVISION DETAIL https://phabricator.kde.org/D3897 AFFECTED FILES containments/panel/contents/ui/main.qml EMAIL PREFERENCES https://phabricator.kde.org/settings/panel/emailpreferences/ To: broulik, #plasma Cc: plasma-devel, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas --bf7a473283954ab9910d3d33dcfb0f48 Content-Type: text/html; charset="ascii" Mime-Version: 1.0 Content-Transfer-Encoding: quoted-printable View Revision=
broulik created this revision.
broulik added= a reviewer: Plasma.
broulik set the repository for this revision to R= 119 Plasma Desktop.
Restricted Application added a project: Plasma.Restricted Application added a subscriber: plasma-devel.

REVISION SUMMARY

While tryi= ng to fix a random plasmashell crash I was getting fairly often (and I hope= d was fixed by David's last spacer fix) I found that the cause was act= ually in virtual desktop pager.

The virtual desktop pager is hidden when there's just one desktop a= nd it will not update its models in this case to save resources. Back when = I added this I already noticed that sometimes the pager (usually after one = "open and close panelcontroller" cycle) still thought it was visi= ble. It was even weirder than that, I found out that on teardown it suddenl= y thought it became visible. This had it populate its model which in turn s= pawned QML items, all of this whilst the panel was already in the process o= f destroying its children, leading to a crash.


TEST PLAN

Previously I could easily reproduce the cra= sh:
start plasmashell
open panel controller
quickly open krunner and type kquitapp plasmashell
boom

No more, gosh, this was a weird one. Also verified that virtual desktop = pager "enabled" property stays consistent.


<= div>REPOSITORY
R119 Plasma Desktop

REVISION DETAIL
https://phabricator.kde.org/D3897<= /a>

AFFECTED FILES
containm= ents/panel/contents/ui/main.qml

EMAIL P= REFERENCES
https://phabricator.kde.org/settin= gs/panel/emailpreferences/

To: b= roulik, Plasma
Cc: plasma-devel, lesliezhai, ali-moha= med, jensreuterberg, abetts, sebas
--bf7a473283954ab9910d3d33dcfb0f48--