diff --git a/src/libs/icon/Icon.cpp b/src/libs/icon/Icon.cpp index 7b5d82066d..0e841dfa00 100644 --- a/src/libs/icon/Icon.cpp +++ b/src/libs/icon/Icon.cpp @@ -163,8 +163,12 @@ Icon::ObjectChanged(const Observable* object) bool Icon::AddListener(IconListener* listener) { - if (listener && !fListeners.HasItem((void*)listener)) - return fListeners.AddItem((void*)listener); + if (listener && !fListeners.HasItem((void*)listener)) { + if (fListeners.AddItem((void*)listener)) { + listener->AreaInvalidated(BRect(0, 0, 63, 63)); + return true; + } + } return false; } diff --git a/src/libs/icon/Icon.h b/src/libs/icon/Icon.h index f312efdda6..4a7c6cbc60 100644 --- a/src/libs/icon/Icon.h +++ b/src/libs/icon/Icon.h @@ -13,6 +13,7 @@ #include # include "Observer.h" +# include "Referenceable.h" #else # include #endif @@ -34,7 +35,8 @@ class IconListener { #ifdef ICON_O_MATIC class Icon : public ShapeContainerListener, - public Observer { + public Observer, + public Referenceable { #else class Icon { #endif