Bug 355918

Summary: Plasma panel sometimes don't respect "autohide" option in plasma/layout-templates/*/contents/layout.js
Product: [Plasma] plasmashell Reporter: opensuse.lietuviu.kalba
Component: PanelAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED FIXED    
Severity: normal CC: kde, kde
Priority: NOR    
Version: 5.4.3   
Target Milestone: 1.0   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description opensuse.lietuviu.kalba 2015-11-26 06:43:56 UTC
Plasma panel don't respect "autohide" option in plasma/layout-templates/*/contents/layout.js,
if script execution is trigered for new user at first login into KDE Plasma 5.

Reproducible: Always

Steps to Reproduce:
1. Open plasma/layout-templates/org.kde.plasma.desktop.defaultPanel/contents/layout.js
2. insert line:
panel.hiding = "autohide" ;
3. Save file.
4. Create new user.
5. Login with new user into KDE Plasma 5 desktop

Actual Results:  
Panel not auto-hiden

Expected Results:  
Panel is auto-hiden

P.S. To workaround I try:
 sleep(4000) ;

but this not helped – no pause while creation panel  for new user at first login into KDE Plasma 5.
Comment 1 David Edmundson 2015-12-05 18:28:39 UTC
Same bug as we had for min, max length.

Will fix, thanks.
Comment 2 David Edmundson 2015-12-28 16:24:09 UTC
Git commit 0dc7f6c3e5d62f6d8211e5d024ee3080b2baae37 by David Edmundson.
Committed on 28/12/2015 at 16:23.
Pushed by davidedmundson into branch 'master'.

Don't rely graphic objects in panel script engine

The basic design of Plasma is that scripts and and the shell (in theory)
manipulate a tree of basic applet geometry and configs.

Plasmashell then reacts to those changes and displays them visually with
a distinct separation between the layout and UI.

Panel's scriptengine seemed to do away with all, and try and manipulate
the graphic object directly..which might not exist and that leads to
complex code.

This changes it to read/write from the same config object as
PanelView will use. More akin to how the script engine for applet and
contiainment works.

If there's a view for this panel, we update immediately, otherwise it'll
just get loaded when it's needed. PanelView::reload() has the error
checking/bounds management so no point duplicating that.
REVIEW: 125921

M  +12   -35   shell/panelview.cpp
M  +3    -0    shell/panelview.h
M  +89   -277  shell/scripting/panel.cpp
M  +1    -0    shell/scripting/panel.h

http://commits.kde.org/plasma-workspace/0dc7f6c3e5d62f6d8211e5d024ee3080b2baae37