Bug 242637 - Hidden systray items overlap when shown
Summary: Hidden systray items overlap when shown
Status: RESOLVED DOWNSTREAM
Alias: None
Product: plasma4
Classification: Unmaintained
Component: widget-systemtray (show other bugs)
Version: unspecified
Platform: Ubuntu Linux
: NOR normal
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-06-23 22:35 UTC by Octavian Voicu
Modified: 2010-07-10 10:52 UTC (History)
2 users (show)

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


Attachments
Screenshot showing the bug (71.24 KB, image/png)
2010-06-23 22:35 UTC, Octavian Voicu
Details
Another instance of the bug (53.58 KB, image/png)
2010-06-25 09:44 UTC, Octavian Voicu
Details
A more extreme instance of the bug (199.63 KB, image/png)
2010-06-25 09:56 UTC, Octavian Voicu
Details
A fix for this bug (501 bytes, patch)
2010-06-29 22:29 UTC, Octavian Voicu
Details
Same fix for this bug, but with path relative to trunk (678 bytes, patch)
2010-06-29 22:33 UTC, Octavian Voicu
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Octavian Voicu 2010-06-23 22:35:28 UTC
Created attachment 48278 [details]
Screenshot showing the bug

Version:           unspecified (using Devel) 
OS:                Linux

When clicking the small upward arrow to show the hidden systram items, a popup is shown but the items overlap with each other.

Reproducible: Always

Steps to Reproduce:
Click upward arrow icon in systray when more than one icon is hidden.

Actual Results:  
See attached screenshot.

Expected Results:  
They shouldn't overlap.

I also tried to resize the popup dialog, but they still show in only one column and overlapped. Even if the number of hidden items varies, two items always overlap.
Comment 1 Octavian Voicu 2010-06-23 22:46:13 UTC
I accidentally deleted the systray widget. When I put another one, the problem seems to have disappeared. Bug might have been caused by the upgrade to the beta KDE packages (maybe some old settings in the config files?).
Comment 2 Aaron J. Seigo 2010-06-23 22:55:35 UTC
"maybe some old settings in the config files?"

could be; looks like the two overlapping items were the printing applet and the message <something>; could you try making those items hidden again, if they aren't already, and see if that replicatest he issue?
Comment 3 Octavian Voicu 2010-06-25 09:44:21 UTC
Created attachment 48309 [details]
Another instance of the bug

I know what was causing it! It's the `KBluetooth' item. If I go to System Tray Settings -> Entries and set `KBluetooth' to `Always visible' then the `Messsage indicator' item also disappears from the popup list. On the other hand, if I only set `Messsage Indicator' to `Always visible', nothing happens, both `KBluetooth' and 'Message Indicator' are still there.
Comment 4 Octavian Voicu 2010-06-25 09:56:05 UTC
Created attachment 48310 [details]
A more extreme instance of the bug

And if I set all entries to `Hidden' in the System Tray Settings dialog, all hell breaks loose!

The device notifier dialog actually gets embedded in the hidden items popup when it is set to `Hidden' (see the mp3 player icon in the lower left corner -- I can actually scroll the lower part with the wheel and I can see the actions for that device).

So it seems that there are two weird things showing up in the hidden items popup: the `Message Indicator' text, pretty random, and the actual Device Notifier dialog.
Comment 5 Octavian Voicu 2010-06-29 01:23:04 UTC
Still happens with KDE 4.5 RC1.

I also deleted the ~/.kde folder and the problem reappeared, so it seems it's not a config issue.

The bug can be summed up as an extra `Message Indicator' item that appears in the hidden items popup. This item doesn't have an associated icon, doesn't react to mouse over, but clicking on it has the same effect as clicking the real `Message Indicator'. If the real `Message Indicator' is also hidden, there are two `Message Indicator' items showing in the popup, with the fake one overlapping another item (if there's only one hidden item it won't overlap anything).
Comment 6 Octavian Voicu 2010-06-29 22:29:31 UTC
Created attachment 48470 [details]
A fix for this bug

I managed to track down the sucker. It seems it *was* a config problem, but the real problem is that the config is generated by default like this.

I'm not up-to-date with recent plasma changes, but I'm guessing that at some point the `Message Indicator' widget changed its plugin name from `notifier' to `message-indicator'.

The system tray applet, when invoked for the first time, tries to make sure essential widgets are included, and adds `notifier' (the old "fake" message indicator), when it should probably add `message-indicator'.

Excerpt from ~/.kde/share/config/plasma-desktop-appletsrc:

[Containments][4][Applets][10][Configuration][Applets][2]
plugin=message-indicator
...

[Containments][4][Applets][10][Configuration][Applets][3]
plugin=notifier
...


I attached a fix for this, which adds `message-indicator' instead of `notifier'. An alternative fix would be to delete the offending lines entirely, but I'm guessing we want the message indicator widget to show up by default.
Comment 7 Octavian Voicu 2010-06-29 22:33:01 UTC
Created attachment 48471 [details]
Same fix for this bug, but with path relative to trunk
Comment 8 Octavian Voicu 2010-07-07 20:04:56 UTC
Any developers around? I would send the patch myself but I don't have a developer account.
Comment 9 Beat Wolf 2010-07-08 12:06:23 UTC
send it to reviewboard.kde.org thank you
Comment 10 Aaron J. Seigo 2010-07-10 10:52:03 UTC
no, the correct item is "notifier", which is about application notifications. message-indicator is an ubuntu add-on which is not provided or supported by upstream KDE.

looking at the sources, it seems that at one point in the code it may have been possible for the label to be created, but not laid out due to the widget failing to load. this doesn't seem to be the case anymore.

i've tested with a non-existent applet and it works properly here. looks like a downstream issue.