Version: (using KDE Devel) Installed from: Compiled sources OS: Linux When the "Announce tracks in a popup window" options is checked, the passive popup that young hickry shows is sometimes cut off. My systray is located on kicker's child panel, that has size set to tiny, auto-hide to true and is located on the top right area of the desktop. So it usually isn't shown. If I move the mouse to the top right area it slides down and I can see/act on the systray itens (and click the buttons that also are on this child panel). However, if there is a new song the passive popup that young hickorys display is cut off by about a half when the child panel is hidden (ie, regular case). If I have a new song when the mouse is on the panel, then it works nice. I've attached two screenshots showing the two cases, so that you can have a better idea of my setup. It is probably a KPassivePopup bug, not a Noatun one. But I thought it would be better to notify it here first.
Created attachment 577 [details] Case where the panel is hidden
Created attachment 578 [details] Case where the panel is not hidden
I was able to track it down to a bug in KPassivePopup... in that special case, the y coordinate becomes negative (ie, it is over the top of the screen). The following fixes it: void KPassivePopup::moveNear( QRect target ) { [...] (line 224) // It wants to be more at the top then the top if ( y < 0 ) y = 0; [...] } There should be a check for x < 0 as well, I guess.
Subject: kdelibs/kdeui CVS commit by pfeiffer: Thanks to ismore@ieg.com.br + if ( y < 0 ) + y = 0; CCMAIL: 51552-close@bugs.kde.org M +4 -1 kpassivepopup.cpp 1.15 --- kdelibs/kdeui/kpassivepopup.cpp:1.14 Fri Nov 15 02:54:19 2002 @@ -177,7 +177,7 @@ QRect target; if ( window == 0L ) { - target = defaultArea(); + target = defaultArea(); } else { @@ -220,6 +220,9 @@ // It's apparently trying to go off screen, so display it ALL at the bottom. if ( (y + h) > qApp->desktop()->height() ) y = qApp->desktop()->height() - h; + + if ( y < 0 ) + y = 0; #ifdef OLD_BITS if ( (x - w) >= 0 )