From a4f1031a6d9555e614f1c3a24d2db18b0acd734f Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Mon, 17 Nov 2014 14:31:46 -0600 Subject: [PATCH] Fix improper desktop wallpaper export causing fake transparency dependent application failure --- kcontrol/background/crossfade.h | 4 ++-- kdesktop/bgmanager.cc | 20 +++++++++++--------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/kcontrol/background/crossfade.h b/kcontrol/background/crossfade.h index dba34a3b4..da589aac4 100644 --- a/kcontrol/background/crossfade.h +++ b/kcontrol/background/crossfade.h @@ -31,8 +31,8 @@ inline TQPixmap crossFade(const TQPixmap &pix1, const TQPixmap &pix2, double r_a mw = pix1.width(); mh = pix1.height(); - int alpha = 0xffff * (1-r_alpha); - + short unsigned int alpha = 0xffff * (1-r_alpha); + XRenderColor clr = { 0, 0, 0, alpha }; XRenderPictureAttributes pa; pa.repeat = True; diff --git a/kdesktop/bgmanager.cc b/kdesktop/bgmanager.cc index adb25d216..7c641dd9d 100644 --- a/kdesktop/bgmanager.cc +++ b/kdesktop/bgmanager.cc @@ -399,8 +399,9 @@ void KBackgroundManager::slotChangeDesktop(int desk) // Do we have this or an identical config already running? for (unsigned i=0; ihash() == m_Renderer[edesk]->hash()) && (m_Renderer[i]->isActive())) && (desk != 0)) + if (((m_Renderer[i]->hash() == m_Renderer[edesk]->hash()) && (m_Renderer[i]->isActive())) && (desk != 0)) { return; + } } renderBackground(edesk); @@ -665,7 +666,7 @@ void KBackgroundManager::slotImageDone(int desk) TQApplication::desktop()->screen()->backgroundPixmap() ); } - //TODO Find a way to discover if CrossFade effect needs to run + //TODO Find a way to discover if CrossFade effect needs to run if (mOldScreen){ crossInit = true; m_crossTimer->start(70); @@ -685,17 +686,18 @@ void KBackgroundManager::slotImageDone(int desk) do_cleanup = false; } } - if (m_bExport || !m_bCommon) + if (m_bExport || !m_bCommon) { addCache(pm, r->hash(), desk); - else + } + else { delete pm; + } - if (current) - //exportBackground(desk, realDesktop()); - exportBackground(desk, desk); + if (current) { + exportBackground(desk, realDesktop()); + } - if( do_cleanup ) - { + if( do_cleanup ) { r->saveCacheFile(); r->cleanup(); }