tags 432493 patch fixed-upstream thanks C> Yes, it is fixed in this one. I will build and try the other one you C> just sent me first thing tomorrow.
version with patch temporary uploaded to: http://uvw.ru/debian/fluxbox/fluxbox-1.0/ src package: http://uvw.ru/debian/fluxbox/fluxbox-1.0/fluxbox_1.0~rc3-3.dsc http://uvw.ru/debian/fluxbox/fluxbox-1.0/fluxbox_1.0~rc3-3.diff.gz http://uvw.ru/debian/fluxbox/fluxbox-1.0/fluxbox_1.0~rc3.orig.tar.gz build instructions are the same Please check if this bug is also contained in the 1.0~rc3-3 version ?
#! /bin/sh /usr/share/dpatch/dpatch-run ## 60_fix_fluxbox_locks_up_when_using_skype.dpatch by <[EMAIL PROTECTED]> ## ## All lines beginning with `## DP:' are a description of the patch. ## DP: Fix: fluxbox locks up when using skype @DPATCH@ --- fluxbox-1.0~rc3/src/FbTk/FbPixmap.cc +++ fluxbox-1.0~rc3/src/FbTk/FbPixmap.cc @@ -109,13 +114,14 @@ Window root; int x, y; unsigned int border_width, bpp; - XGetGeometry(display(), - pm, - &root, - &x, &y, - &m_width, &m_height, - &border_width, - &bpp); + if (!XGetGeometry(display(), + pm, + &root, + &x, &y, + &m_width, &m_height, + &border_width, + &bpp)) + return *this; m_depth = bpp; @@ -161,13 +167,14 @@ unsigned int border_width, bpp; unsigned int new_width, new_height; - XGetGeometry(display(), - pm, - &root, - &x, &y, - &new_width, &new_height, - &border_width, - &bpp); + if (!XGetGeometry(display(), + pm, + &root, + &x, &y, + &new_width, &new_height, + &border_width, + &bpp)) + return; if (depth == 0) depth = bpp; @@ -347,9 +354,10 @@ return ret; } -void FbPixmap::rootwinPropertyNotify(int screen_num, Atom atom) { +// returns whether or not the background was changed +bool FbPixmap::rootwinPropertyNotify(int screen_num, Atom atom) { if (!FbTk::Transparent::haveRender()) - return; + return false; checkAtoms(); for (int i=0; root_prop_ids[i] != 0; ++i) { @@ -373,14 +381,16 @@ } XFree(data); if (root_pm != None) - setRootPixmap(screen_num, root_pm); + return setRootPixmap(screen_num, root_pm); } - break; + return false; } } + return false; } -void FbPixmap::setRootPixmap(int screen_num, Pixmap pm) { +// returns whether or not the background was changed +bool FbPixmap::setRootPixmap(int screen_num, Pixmap pm) { if (!m_root_pixmaps) { m_root_pixmaps = new Pixmap[ScreenCount(display())]; for (int i=0; i < ScreenCount(display()); ++i) @@ -390,7 +400,9 @@ if (m_root_pixmaps[screen_num] != pm) { m_root_pixmaps[screen_num] = pm; FbWindow::updatedAlphaBackground(screen_num); + return true; } + return false; } Pixmap FbPixmap::getRootPixmap(int screen_num, bool force_update) { --- fluxbox-1.0~rc3/src/FbTk/FbPixmap.hh +++ fluxbox-1.0~rc3/src/FbTk/FbPixmap.hh @@ -70,8 +70,8 @@ inline unsigned int depth() const { return m_depth; } static Pixmap getRootPixmap(int screen_num, bool force_update=false); - static void setRootPixmap(int screen_num, Pixmap pm); - static void rootwinPropertyNotify(int screen_num, Atom atom); + static bool setRootPixmap(int screen_num, Pixmap pm); + static bool rootwinPropertyNotify(int screen_num, Atom atom); void create(Drawable src, unsigned int width, unsigned int height,
signature.asc
Description: Digital signature