SavingGoogleCode / tint2

tint2 is a lightweight panel/taskbar.
GNU General Public License v2.0
0 stars 0 forks source link

Notification tray icons broken/issues #480

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Launch tint2 with a config which has opacity for the tray icons set to 100 
(no transparency)
2. The icons become messy

I'm on Arch, using Openbox as the window manager, no compositor and an Intel 
GPU. The tint2 version is 0.11-8, but I also tried the latest SVN version. Both 
have the same issue.

This started happening after a recent update and the only tint2 dependency 
which was updated was glib2.

When I add some transparency to the icons (even just reducing opacity to 99), 
it partially works, but eventually fails too. On the latest SVN version even 
changing the opacity in the default config removes all items from the panel 
(totally clears it).

It's similar to this issue:
https://code.google.com/p/tint2/issues/detail?id=391
but apparently that one got resolved.

Original issue reported on code.google.com by just.a.s...@gmail.com on 11 Apr 2015 at 9:13

GoogleCodeExporter commented 9 years ago
Thanks for the report.

The latest SVN supports an option:

disable_transparency = 1

which might help in this case. I would also make sure every opacity in the 
config (in *_color and *_icon_asb) is set to 100.

Original comment by mrovi9...@gmail.com on 12 Apr 2015 at 9:48

GoogleCodeExporter commented 9 years ago
I think I didn't explain it properly.

When transparency is turned off (value of 100) for the tray icons, only then 
does this issue appear. Adding transparency (any value lower than 100) seems to 
work.
Here are a few pictures:

- Tint2 built from the latest SVN snapshot with the default config and no 
transparency (systray_icon_asb = 100 0 0)
http://imgur.com/ImIVaoc

- Tint2 built from the latest SVN snapshot with the default config with 
transparency (systray_icon_asb = 99 0 0)
http://imgur.com/Ad310b6

- Tint2 0.11-8 with the default config and no transparency (systray_icon_asb = 
100 0 0)
http://imgur.com/O2wQgUn

- Tint2 0.11-8 with a custom config and no transparency (systray_icon_asb = 100 
0 0)
http://imgur.com/DpbW6B2

I also tried the disable_transparency option on the latest version, but it 
didn't seem to have any effect (icons were still glitchy).

Original comment by just.a.s...@gmail.com on 12 Apr 2015 at 2:50

GoogleCodeExporter commented 9 years ago
Thanks for the screenshots. You have indeed uncovered a problem.

There are 2 artifacts there:

* tint2's border somehow gets drawn before the icon. I can reproduce this on my 
system (I did not see it until now because my border was too thin).
* Some icons overlap with a smaller version of themselves. This is something I 
do not see.

This sounds like a pixmap does not get cleared properly. I will look into it, 
but cannot give any time estimates as I am not familiar with that code.

You are saying that in the meantime, using systray_icon_asb = 99 0 0 fixes it 
temporarily, but the icons get corrupted eventually? When that happens, do they 
look like the above?

Original comment by mrovi9...@gmail.com on 12 Apr 2015 at 3:38

GoogleCodeExporter commented 9 years ago
>>This sounds like a pixmap does not get cleared properly.

Now that you mention it, that's exactly what appears to be happening. When the 
icon changes, the new one seems to get drawn on top of it without ever removing 
the old ones.

New notification icons also cause additional glitches when they get added to 
the notification area. While I was recording this clip to demonstrate it, the 
recorder software's notification icon messed up some of the other icons. 
http://webmshare.com/54qXa

>>using systray_icon_asb = 99 0 0 fixes it temporarily, but the icons get 
corrupted eventually? When that happens, do they look like the above?

Here's a picture of the tray with the "99 0 0" settings after it gets corrupted.
http://imgur.com/kkzMGTQ
The nm-applet is pushed out of the tray and the clock's value somehow got 
"burned" in its place.

Original comment by just.a.s...@gmail.com on 12 Apr 2015 at 5:10

GoogleCodeExporter commented 9 years ago
Can't edit the post above:

Here's a proper video, the video in the link above somehow got corrupted.

http://webmup.com/dad23/ 

Original comment by just.a.s...@gmail.com on 12 Apr 2015 at 5:17

GoogleCodeExporter commented 9 years ago
In r751 I changed the way the icons are repositioned. This fixes the first 
issue for me. I don't know about the delayed corruption as I could not 
reproduce it.

It only works with systray_icon_asb = 100 0 0

Please let me know if this changes things in any way.

Original comment by mrovi9...@gmail.com on 12 Apr 2015 at 5:51

GoogleCodeExporter commented 9 years ago
I just tested the latest one.
The border around the icons is gone, but the icons drawing on top of each other 
issue is still there (with systray_icon_asb = 100 0 0).

Original comment by just.a.s...@gmail.com on 12 Apr 2015 at 8:55

GoogleCodeExporter commented 9 years ago
I think this just fixed itself.

After another system upgrade, imlib2 was updated (version 1.4.7) and the 
notification tray icons look and behave normally now. No transparency (100 0 0) 
doesn't appear to be causing any graphical glitches anymore.

Was imlib2 really the culprit for this or was this just coincidence?

Original comment by just.a.s...@gmail.com on 13 Apr 2015 at 4:25

GoogleCodeExporter commented 9 years ago
The border drawing problem was a tint2 bug, the rest was probably a bug in 
imlib2 (tint2 uses it for rendering).

However, the fix for the border drawing problem breaks the icon rendering with 
compositing (the icons then use the desktop background instead of the panel 
background). I will try to fix that soon, maybe over the weekend.

Original comment by mrovi9...@gmail.com on 13 Apr 2015 at 6:25

GoogleCodeExporter commented 9 years ago
Actually I committed a fix now. I simply used the rendering path designed for 
asb != 100 0 0 also for 100 0 0. Let's hope this solves the issue once and for 
all.

Fix in r755.

Original comment by mrovi9...@gmail.com on 13 Apr 2015 at 8:23

GoogleCodeExporter commented 9 years ago
It's looking good so far, everything seems to be back to normal (with and 
without transparency). Thanks!

Unrelated question: is the theme editor in tint2conf considered usable? I read 
in one of the issue posts that it was missing some things, but that was an 
older post.
That's the only thing keeping me from switching fully to the latest SVN builds.

Original comment by just.a.s...@gmail.com on 14 Apr 2015 at 6:22

GoogleCodeExporter commented 9 years ago
I would not use it yet.

Most of the options are working, but some are buggy. It also overwrites 
tint2rc, so you have to make a backup manually first.

Original comment by mrovi9...@gmail.com on 14 Apr 2015 at 6:44

GoogleCodeExporter commented 9 years ago
Okay, I was celebrating too soon. I should have spent more time testing it.

The whole panel locked up. All the tasks are unresponsive (also slightly 
corrupted visually) and new tasks don't appear. The clock is also unresponsive, 
the left click command doesn't get executed. The tray icons can still be 
clicked to bring up their menus, but they are also locked up visually (one of 
them even disappeared). I was using the default theme while this happened.

Screenshot:
http://imgur.com/Q0NhqqY

Is this an issue on my end? Can anyone else reproduce this?

My initial issue didn't affect just me. Another person from the thread linked 
below had it too and the imlib2 update apparently fixed his too.

https://bbs.archlinux.org/viewtopic.php?id=195984

Original comment by just.a.s...@gmail.com on 14 Apr 2015 at 1:52

GoogleCodeExporter commented 9 years ago
I'm sorry about your problems.

I use tint2 every day on multiple computers and it works fine, but I only use 
LTS distros which have older, more stable libraries; they are also heavily 
patched which might correct/hide bugs from upstream.

To fix a lockup I would really need a stack trace. Even if it is only a bug in 
a dependency of tint2, a stack trace would still be useful to find out in which 
library the hang happens, so that you can pass the info to them.

If you have a lot of time on your hands, you can try to get a trace yourself, 
following roughly the instructions from here: 
https://code.google.com/p/tint2/wiki/Debug

Otherwise I can try to get one myself, but I cannot give you a time estimate. I 
installed Arch this weekend but things went pretty slowly and I don't even have 
X yet...

Original comment by mrovi9...@gmail.com on 14 Apr 2015 at 4:49

GoogleCodeExporter commented 9 years ago
Got Arch running. No problems yet (except the system tray icons blink 
occasionally if I click on the empty space of the panel quickly for 5-10 
seconds).

I left the system running with a script that opens and closes a window every 
few seconds and another that blinks a systray icon every second. Hopefully if 
there is a hang I will catch it.

Original comment by mrovi9...@gmail.com on 14 Apr 2015 at 6:44

GoogleCodeExporter commented 9 years ago
No worries, I think that lock-up was a fluke or something. I had the latest 
version running for a couple of hours today with no issues.
I've been using tint2 for a year now and had no issues whatsoever. That last 
system update really messed something up. 

Anyway, I'll try to get that debug mode running and continue using the latest 
version over a longer period of time.

Original comment by just.a.s...@gmail.com on 14 Apr 2015 at 7:17

GoogleCodeExporter commented 9 years ago
OK.

In debug mode I enabled AddressSanitizer to catch invalid memory accesses that 
might otherwise go unnoticed. It is very accurate. But a side effect is that in 
top tint2 will appear as using 16TB of ram; don't worry, it is not actually 
reserved. But it does use more memory over time; I restart tint2 about once a 
week ( killall -SIGINT tint2; (tint2&) ) if compiled in debug mode.

Original comment by mrovi9...@gmail.com on 14 Apr 2015 at 7:32

GoogleCodeExporter commented 9 years ago
After 2 days no hang happened. However, gdb detached from tint2, I don't know 
why (probably a bug in gdb).

If you see a hang again, please let me know. Otherwise I will close this issue 
in a few weeks. Thanks!

Original comment by mrovi9...@gmail.com on 16 Apr 2015 at 8:03

GoogleCodeExporter commented 9 years ago
You can mark it as solved/closed. The system tray works without issues now.
As for the problems in post #13, that was probably something on my end and 
unrelated to the system tray and it hasn't happened since.

Thanks again!

Original comment by just.a.s...@gmail.com on 17 Apr 2015 at 9:59

GoogleCodeExporter commented 9 years ago

Original comment by mrovi9...@gmail.com on 17 Apr 2015 at 1:53