Browse Source

Fix improper desktop wallpaper export causing fake transparency dependent application failure

pull/2/head
Timothy Pearson 7 years ago
parent
commit
a4f1031a6d
  1. 4
      kcontrol/background/crossfade.h
  2. 20
      kdesktop/bgmanager.cc

4
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;

20
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; i<m_Renderer.size(); i++)
{
if (((m_Renderer[i]->hash() == 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();
}

Loading…
Cancel
Save