Bug 384408 - PanelView::setBackgroundHints doesn't update enabledBorders (which means it doesn't toggle the shadows)
Summary: PanelView::setBackgroundHints doesn't update enabledBorders (which means it d...
Status: CONFIRMED
Alias: None
Product: plasmashell
Classification: Plasma
Component: general (show other bugs)
Version: 5.10.5
Platform: Other Linux
: NOR minor
Target Milestone: 1.0
Assignee: David Edmundson
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-09-06 04:03 UTC by Chris Holland
Modified: 2021-03-09 05:05 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Chris Holland 2017-09-06 04:03:46 UTC
While fussing with /usr/share/plasma/shells/.../contents/views/Panel.qml, I tried dynamically disabling the blur+shadows on the panel (using a repeating timer). I noticed that while the blur effect went away, the shadows did not.

QML:
panel.backgroundHints = Plasma.Types.NoBackground

C++: https://github.com/KDE/plasma-workspace/blame/master/shell/panelview.cpp
setBackgroundHints(Plasma::Types::NoBackground)
emit backgroundHintsChanged()
connect(this, SIGNAL(backgroundHintsChanged()), this, SLOT(themeChanged()));

themeChanged() calls updateMask() but doesn't call updateEnabledBorders().
updateEnabledBorders() is what disables the panel shadow.

PanelView::resizeEvent and PanelView::moveEvent call both "update" functions, so 

You can test this by editing Panel.qml. Note that "panel" == PanelView.cpp.
Video: https://streamable.com/cishh

I did try resizing the panel, and the shadow did dissappear. However it did not reappear when I resized it again.
Comment 1 Kai Uwe Broulik 2017-09-06 08:45:10 UTC
There's also something wrong going on in PanelShadows. Even if I fix the issue you mentioned, the shadow doesn't re-appear after it's gone.

It never calls addShadow again after initialization but it does removeShadow when background hints become "NoBackground", so updateShadows won't do anything. I then fixed that but it still wouldn't help :/