Bug 96465

Summary: Auto-Resize of Systray breaks pseudo-transparency of applets
Product: [Unmaintained] kicker Reporter: Frank Osterfeld <osterfeld>
Component: transparencyAssignee: Aaron J. Seigo <aseigo>
Status: RESOLVED WORKSFORME    
Severity: normal CC: dpsantos, finex, g4mba5, herbert, ilya.muromec, Jochen.Baier, lucke, mefoster, rafa.ramirez.r
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Unlisted Binaries   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: snap1 - applets clips was turned off
snap2 - applets clips was set to rising on mouse cursor move over an applet
snap3 - it same
snap4 - another defect
Attachment 1: how my systray always looks on login
Attachment 2: Switching to another desktop forces a repaint
Attachment 3: Systray after quitting amaroK
kicker backround is moved and a small space is next to tray
My kickerrc
kickerrc
screenshot
screenshot, how it should be

Description Frank Osterfeld 2005-01-06 21:02:41 UTC
KDE-Base from CVS HEAD 05/01/05:  
  
I use a pseudo-transparent kicker.  
When the systray is resized due to addition/removal of tray icons, applets like  
taskbar and pager are moved, but their background (displaying the background  
image) is not updated like it's done when moving/resizing the applets manually.  
Thus the background is "displaced" i.e. moved down:  
  
http://www-user.rhrk.uni-kl.de/~f_osterf/temp/kicker-transparency-bug.png  
  
The red arrow shows the displacement. Here you can see the background image  
without kicker:  
  
http://www-user.rhrk.uni-kl.de/~f_osterf/temp/kicker-transparency-background.png  
  
Note that also the systray background is distorted (The leaves belong in the  
upper part of the systray, the lower part should be clear).  
When changing desktops, the background gets "fixed".
Comment 1 Aaron J. Seigo 2005-02-12 10:39:37 UTC
*** Bug has been marked as fixed ***.
Comment 2 Frank Osterfeld 2005-02-13 16:54:10 UTC
The bug is not fixed yet (kdelibs and kdebase from Feb 12th). 
When I open an app which adds a tray icon, it still breaks the taskbar background.
Comment 3 Aaron J. Seigo 2005-02-14 04:50:35 UTC
i actually committed the fix for this on the 12th. i tested it here (both after the commit and again just now), and it works: an icon added to the systray pushes the other applets over and their backgrounds are now updated. this is why closed the bug report. can you please update kdebase/kicker and try again?
Comment 4 Frank Osterfeld 2005-02-14 10:16:08 UTC
Ok, I tried again.
KDE start went just fine, after restoring the session and adding tray icons, the background was ok. I started Psi then (qt-only), and that broke the background. I switched desktops to fix it and tried akregator. Now it worked. Ok, I thought, it works for KDE apps using KSystemtray but not for non-KDE apps. But just now, every app, regardless whether KDE or non-KDE app, breaks it again.
Comment 5 Aaron J. Seigo 2005-02-17 17:43:46 UTC
*** Bug 98941 has been marked as a duplicate of this bug. ***
Comment 6 Jes Hall 2005-02-22 20:51:24 UTC
I'm still having issues with the repainting around the system tray in particular on a transparent kicker as well, on current cvs head.
Comment 7 Aaron J. Seigo 2005-02-22 22:34:12 UTC
i'll need screenshots, app names and what leads up to the transparency breaking to be able to attempt to fix these things.
Comment 8 Frank Osterfeld 2005-02-23 14:10:12 UTC
Right after startup (klaptop, kmix, klipper, korganizer alarm daemon in the systray), the background is broken:  

http://www-user.rhrk.uni-kl.de/~f_osterf/temp/kicker-1-after_startup.png

When starting akregator, the background gets fixed:

http://www-user.rhrk.uni-kl.de/~f_osterf/temp/kicker-2-akregator_started.png

Starting Kopete breaks it again:

http://www-user.rhrk.uni-kl.de/~f_osterf/temp/kicker-3-kopete.png

Closing Kopete: background moves too much upwards:

http://www-user.rhrk.uni-kl.de/~f_osterf/temp/kicker-4-kopete_closed.png
Comment 9 Frank Osterfeld 2005-02-23 14:41:54 UTC
I tried to reduce the number of applications to find the culprit, without success. All combinations I tried with <= 4 icons worked fine, the background was fixed. Sometimes it even worked with the icons from the first screenshot, sometimes not. Position and adding order also has an influence, but I don't see a pattern.
Comment 10 Aaron J. Seigo 2005-02-28 15:30:16 UTC
*** Bug 100430 has been marked as a duplicate of this bug. ***
Comment 11 Aaron J. Seigo 2005-03-09 03:33:08 UTC
*** Bug 101141 has been marked as a duplicate of this bug. ***
Comment 12 Georg Wittenburg 2005-03-18 20:50:34 UTC
With some systray icons set to hidden, I can reproduce the same bug by clicking on the arrow to expand the systray to show all icons and then clicking again to only show the non-hidden icons. Hope this helps, and thanks for fixing.
Comment 13 ottmarm 2005-03-20 01:48:49 UTC
Created attachment 10202 [details]
snap1 - applets clips was turned off
Comment 14 ottmarm 2005-03-20 01:50:40 UTC
Created attachment 10203 [details]
snap2 - applets clips was set to rising on mouse cursor move over an applet
Comment 15 ottmarm 2005-03-20 01:51:25 UTC
Created attachment 10204 [details]
snap3 - it same
Comment 16 ottmarm 2005-03-20 01:55:00 UTC
Created attachment 10205 [details]
snap4 - another defect
Comment 17 ottmarm 2005-03-20 01:57:55 UTC
As you can see from my attachement (snap1 - applets clips was turned off), after removing an icon from system tray, was the resized part of previous taskbar applet repainted with background on its origin not with background freed behind the system tray applet. And also (snap2, snap3 - applets clips was set to rising on mouse cursor move over an applet), you can see next irremovable defect (snap4 - You can see this defect after a clip rising, even if clips are hard turned on). Sometimes it moves with a whole applet background (a few pixels - lesser to a clip width) right/left, when an clip is rised/hided (on moving mouse cursor over/outside applet). Please, give me a chance to choose between a rising over an applet (after 3.3.2) and over the clip (to 3.3.2).  This bugs comes with versions after 3.3.2. (sorry for my bad english)
Comment 18 Mary Ellen Foster 2005-09-14 10:44:15 UTC
I'm still finding this (or something very similar) on 3.5-alpha1. Every time I log in, the systray starts out with a messed-up, I suspect because amaroK auto-starts after it's been painted. (attachment 1 [details])

If I switch to another desktop, it paints itself fine. (attachment 2 [details])

If I then quit amaroK, I get a different symptom on the background. (attachment 3 [details]) Again, switching to a different desktop to force the repaint makes it be fine again.

If I re-start amaroK at that point, the systray icon gets added and the background updates properly. But any time I quit any application that ends up removing a systray icon, I get the "attachment 3 [details]" problem again.
Comment 19 Mary Ellen Foster 2005-09-14 10:45:13 UTC
Created attachment 12562 [details]
Attachment 1 [details]: how my systray always looks on login
Comment 20 Mary Ellen Foster 2005-09-14 10:45:53 UTC
Created attachment 12563 [details]
Attachment 2 [details]: Switching to another desktop forces a repaint
Comment 21 Mary Ellen Foster 2005-09-14 10:46:36 UTC
Created attachment 12564 [details]
Attachment 3 [details]: Systray after quitting amaroK
Comment 22 clcevboxvjeo 2005-10-15 20:41:36 UTC
I see this problem very often. This happened when i just logged in. First the keyboard applet loaded, everything was fine. But then as the other programs started (superkaramba, kmail and akregator) the kicker background was moved.
Tested in KDE 3.5beta2
Comment 23 clcevboxvjeo 2005-10-15 20:43:17 UTC
Created attachment 12994 [details]
kicker backround is moved and a small space is next to tray
Comment 24 Bob Winckelmans 2005-10-26 14:40:00 UTC
All Say: Thank You Aaron Seigo ! :)
Comment 25 Jes Hall 2005-11-03 06:28:18 UTC

*** This bug has been marked as a duplicate of 113235 ***
Comment 26 Aaron J. Seigo 2005-11-04 09:32:15 UTC
this is actually not the same problem as in 113235
Comment 27 Frank Osterfeld 2005-11-10 14:09:32 UTC
Created attachment 13378 [details]
My kickerrc

Here's my kickerrc.
Comment 28 Jochen Baier 2005-11-13 19:51:52 UTC
system tray background problem:

i can force to "redraw" the systray applet background by clicking on the resize applet handle. so i think some event is called to redraw the background.

i guess it works like that: big panel pixmap -> cut down to small applet pixmap ->cut down to small tray size background pixmap -> set this pixmap to the parent window of the tray icon; now the tray icon can use this background as "ParentRelative". (at least non kde (gtk) programs works like that)

this event to redraw (make new pixmap background) should now happen after each removing/adding of tray icons. this is probably already done. maybe to early ?


to reproduce:

*add one tray icon
*add/remove klipper tray icon until the background image is wrong
*click on the tray applet handle to fix the background
Comment 29 clcevboxvjeo 2005-11-13 22:29:40 UTC
Created attachment 13421 [details]
kickerrc

Still here in 3.5rc1. I created a brand new user, the result is the same. Just
open e.g. akregator and let it be in tray. Logout and login, session is
restored, akregator gets into tray and **cks the tray transparency. Do you
still need any more info? Would be nice if the problem was gone in final
release.
Comment 30 clcevboxvjeo 2005-11-13 22:32:13 UTC
Created attachment 13422 [details]
screenshot

watch the tray background
Comment 31 clcevboxvjeo 2005-11-13 22:33:48 UTC
Created attachment 13423 [details]
screenshot, how it should be

after i clicked on a handle. systray is repainted now and looks like it should
Comment 32 Jochen Baier 2005-11-14 00:57:46 UTC
i looked a little deeper into the code:

after each change inside the tray applet AppletContainer::setBackground()
should be called. which does not happen. i call this function in 
"void AppletContainer::slotUpdateLayout()" (probably not the right place).

now the functions is called. but the "srcx, srcy" variables have the old position of all applets (this is the reason why all applets are affected)-> the wrong pixmap is cut of the panel pixmap.

so this should happen after each change:

1. update all applets widget positions variables.
2. call SetBackground

i'm not a C++/kde developer, so i'am out of the game ;)




Comment 33 Jes Hall 2005-11-19 07:25:05 UTC
*** Bug 116492 has been marked as a duplicate of this bug. ***
Comment 34 clcevboxvjeo 2005-12-06 11:45:05 UTC
Is it really fixed in 3.5 or am I dreaming? :) When tasks in tray are loading, the background is redrawn correctly.
Comment 35 Aaron J. Seigo 2005-12-06 11:57:47 UTC
pholie: it's better in 3.5 compared to 3.4, but still not 100% perfect. it works well here, but i've seen it possible to make it break still ...
Comment 36 Frank Osterfeld 2006-09-03 23:07:20 UTC
*** Bug 125562 has been marked as a duplicate of this bug. ***
Comment 37 gambas 2008-08-18 20:05:25 UTC
Fixed in KDE 3.5.10