fixed iconbar update bug

This commit is contained in:
fluxgen 2002-04-04 22:39:52 +00:00
parent d78a4ac9a9
commit 675f28ad9e
2 changed files with 23 additions and 21 deletions

View file

@ -22,7 +22,9 @@
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE. // DEALINGS IN THE SOFTWARE.
// $Id: Window.cc,v 1.39 2002/04/04 14:23:30 fluxgen Exp $ // $Id: Window.cc,v 1.40 2002/04/04 22:39:52 fluxgen Exp $
#include "Window.hh"
//use GNU extensions //use GNU extensions
#ifndef _GNU_SOURCE #ifndef _GNU_SOURCE
@ -38,7 +40,6 @@
#include "Icon.hh" #include "Icon.hh"
#include "Screen.hh" #include "Screen.hh"
#include "Toolbar.hh" #include "Toolbar.hh"
#include "Window.hh"
#include "Windowmenu.hh" #include "Windowmenu.hh"
#include "StringUtil.hh" #include "StringUtil.hh"
@ -1469,6 +1470,7 @@ void FluxboxWindow::getWMName(void) {
} }
client.title_text_w += (frame.bevel_w * 4); client.title_text_w += (frame.bevel_w * 4);
} }
@ -1498,6 +1500,7 @@ void FluxboxWindow::getWMIconName(void) {
client.icon_title = getTitle(); client.icon_title = getTitle();
} else } else
client.icon_title = getTitle(); client.icon_title = getTitle();
} }
@ -2971,6 +2974,7 @@ void FluxboxWindow::propertyNotifyEvent(Atom atom) {
case XA_WM_ICON_NAME: case XA_WM_ICON_NAME:
getWMIconName(); getWMIconName();
if (iconic) screen->iconUpdate(); if (iconic) screen->iconUpdate();
updateIcon();
break; break;
case XA_WM_NAME: case XA_WM_NAME:
@ -2984,22 +2988,9 @@ void FluxboxWindow::propertyNotifyEvent(Atom atom) {
if (! iconic) if (! iconic)
screen->getWorkspace(workspace_number)->update(); screen->getWorkspace(workspace_number)->update();
else if (Fluxbox::instance()->useIconBar()) {
IconBar *iconbar = 0;
IconBarObj *icon = 0;
if ((iconbar = screen->getToolbar()->getIconBar()) != 0) {
if ((icon = iconbar->findIcon(this)) != 0)
iconbar->draw(icon, icon->getWidth());
#ifdef DEBUG
else else
cerr<<__FILE__<<"("<<__LINE__<<"): can't find icon!"<<endl; updateIcon();
#endif //DEBUG
}
#ifdef DEBUG
else
cerr<<__FILE__<<"("<<__LINE__<<"): can't find iconbar!"<<endl;
#endif //DEBUG
}
break; break;
@ -3607,6 +3598,17 @@ void FluxboxWindow::stopResizing(Window win) {
XUngrabPointer(display, CurrentTime); XUngrabPointer(display, CurrentTime);
} }
//finds and redraw the icon label
void FluxboxWindow::updateIcon() {
if (Fluxbox::instance()->useIconBar()) {
IconBar *iconbar = 0;
IconBarObj *icon = 0;
if ((iconbar = screen->getToolbar()->getIconBar()) != 0) {
if ((icon = iconbar->findIcon(this)) != 0)
iconbar->draw(icon, icon->getWidth());
}
}
}
void FluxboxWindow::restore(void) { void FluxboxWindow::restore(void) {
XChangeSaveSet(display, client.window, SetModeDelete); XChangeSaveSet(display, client.window, SetModeDelete);

View file

@ -22,7 +22,7 @@
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE. // DEALINGS IN THE SOFTWARE.
// $Id: Window.hh,v 1.17 2002/04/04 14:23:30 fluxgen Exp $ // $Id: Window.hh,v 1.18 2002/04/04 22:39:52 fluxgen Exp $
#ifndef WINDOW_HH #ifndef WINDOW_HH
#define WINDOW_HH #define WINDOW_HH
@ -317,7 +317,7 @@ private:
void stopMoving(); void stopMoving();
void startResizing(XMotionEvent *me, bool left); void startResizing(XMotionEvent *me, bool left);
void stopResizing(Window win=0); void stopResizing(Window win=0);
void updateIcon();
#ifdef GNOME #ifdef GNOME