Version: unknown (using KDE 3.1.94 (CVS >= 20031206), compiled sources) Compiler: gcc version 3.3.1 (SuSE Linux) OS: Linux (i686) release 2.4.21-99-athlon please see the attached screenshot. The transparency in the application window region is wrong. Bug is in current KDE CVS HEAD (beta2).
Created attachment 3626 [details] bug is visible in the middle of the image - transparency offsets are wrong.
Hm. This should already be fixed in the version you reported. Please try again against CVS HEAD >= 20031210 and if the problem persists please report details about your kicker and background setting.
Hi Oliver, it's not. I'm right now running this version (just did a cvs up and verified that nothing has changed in between in CVS regarding the kicker sources). Here is the relevant part of my ~/.kde/share/config/kickerrc: [General] Applets=KMenuButton_1,DesktopButton_1,ExtensionButton_1,ServiceButton_2,ServiceButton_3,ServiceButton_1,Applet_2,Applet_3,Applet_4 BackgroundTheme=/mnt/hdc6/opt/kde32/share/apps/kicker/wallpapers/default.png ColorizeBackground=false FadeOutAppletHandles=true HideAppletHandles=false HideButtonSize=14 ResizeableHandle=false ShowToolTips=true TintColor=163,164,165 TintValue=0 Transparent=true UseBackgroundTheme=true To try, enable those settings, then enable in the kdesktop settings Background->Slideshow (the default one is OK) with a 1 minute delay and it should be visible after some time.
btw, you oft can see it directly after (re-)starting KDE too.
OK, I can reproduce it with styles that mess with the background (Helge uses marble, I got the same problem with Baghira), Keramik seems unaffected. And it looks it's related to the stretching.
OK, I have verified that the code which produces the background pixmap for the applet is correct. InternalAppletContainer::setBackground does the right thing. Interestingly, everything works for ExternalAppletContainer's. So a workaround is to put "SecurityLevel=0" in your kickerrc/[General] and it will load the applets through the proxy. This works for me with marble style. And it's not related to stretching, the "Run ..." applet stretches and does not have the problem. I'm quite clueless about this, maybe some style guru can help out?
Subject: solution I found the solution. The style (kthemestyle) breaks the BackgoundOrigin of non-toplevel windows. Therefore it works with ExternalAppletContainer, but not with InternalAppletContainer because the correct "AncestorOrigin" in the TaskbarApplet gets replaced. I attached a patch to kthemestyle.cpp which fixes it for the taskbar, but some style guy should look whether there is a more generic fix possible. Created an attachment (id=3669) dont_break_taskbars_background_origin.diff
Hi Oliver, I tested your patch and it worked without any problems and correct. IMHO I think you should submit it. Thanks, Helge (deller@kde.org)
I think your patch still has some bugs when the left handle is visible....
Created attachment 3784 [details] sample screenshot w/ new bug visible
Subject: Next patch Attached patch excludes even more widgets from the setBackgroundOrigin madness of kthemestyle. This should fix Helges latest problems. Created an attachment (id=3794) kthemestyle.diff
YES ! THAT'S IT!!! Tested and it works perfect. I moved around the taskbar, created childs and tested a few other things and everthing looks fine. Please commit...
Subject: Re: kicker's transparency for application windows buggy > ------- Additional Comments From deller@kde.org 2003-12-20 13:30 ------- > YES ! THAT'S IT!!! > Tested and it works perfect. Nothing is perfect :-) OK, I asked already Maks about this, but didn't get an answer yet. Please bug some style guru about this, it might well be that the whole setBackgroundOrigin call in kthemestyle can be omitted. But as I'm not really fine with this patch (It will break apps which have widgets called TaskBar or ContainerArea), some style guru has to decide what the right solution is. And I won't commit any code into kstyle since I'm not familiar with it. Greetings Bausi
I'll try to review it in a few days. I am afraid I can't at the moment.
Subject: Re: kicker's transparency for application windows buggy > ------- Additional Comments From maksim@kde.org 2003-12-20 15:52 ------- > I'll try to review it in a few days. I am afraid I can't at the moment. Hi Maksim, FYI, I'm running this patch now since more than a week without any regressions or problems.
Subject: kdelibs/kstyles/kthemestyle CVS commit by orlovich: Apply a modified version of a patch from Oliver Bausinger (bausi at the host bausi tld org), to fix kicker w/transparent background and KThemeStyle. This is not the clean way of doing it, but it's a safe way of doing it, which is preferrable at this point. CCMAIL: 69897-done@bugs.kde.org M +11 -11 kthemestyle.cpp 1.43 M +2 -1 kthemestyle.h 1.16 --- kdelibs/kstyles/kthemestyle/kthemestyle.cpp #1.42:1.43 @@ -395,5 +395,5 @@ int KThemeStyle::pixelMetric ( PixelMetr KThemeStyle::KThemeStyle( const QString& configDir, const QString &configFile ) : KThemeBase( configDir, configFile ), paletteSaved( false ), polishLock( false ), menuCache( 0 ), vsliderCache( 0 ), - brushHandle( 0 ), brushHandleSet( false ) + brushHandle( 0 ), brushHandleSet( false ), kickerMode( false ) { mtfstyle = QStyleFactory::create( "Motif" ); @@ -410,6 +410,9 @@ KThemeStyle::~KThemeStyle() -void KThemeStyle::polish( QApplication * /*app*/ ) -{} +void KThemeStyle::polish( QApplication * app ) +{ + if (!qstrcmp(app->argv()[0], "kicker")) + kickerMode = true; +} @@ -502,5 +505,7 @@ void KThemeStyle::polish( QWidget *w ) - if (w->backgroundPixmap() && !w->isTopLevel()) + if (w->backgroundPixmap() && !w->isTopLevel() && + (!kickerMode || + (!w->inherits("TaskBar") && !w->inherits("TaskBarContainer") && !w->inherits("TaskbarApplet") && !w->inherits("ContainerArea") && !w->inherits("AppletHandle")))) { //The brushHandle check verifies that the bg pixmap is actually the brush.. @@ -2364,9 +2369,4 @@ int KThemeStyle::popupMenuItemHeight( bo } - - - #include "kthemestyle.moc" - - - +// kate: indent-width 4; replace-tabs off; tab-width 4; space-indent on; --- kdelibs/kstyles/kthemestyle/kthemestyle.h #1.15:1.16 @@ -205,4 +205,5 @@ protected: Qt::HANDLE brushHandle; bool brushHandleSet; + bool kickerMode; protected slots: