From 8ae0d03ade2d96d75a01d1bd3fdcaee8aaf3ef90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20A=C3=9Fmus?= Date: Tue, 22 Aug 2006 13:33:27 +0000 Subject: [PATCH] * Icon inherits from Referenceable in Icon-O-Matic mode * new listeners receive an AreaInvalidated notification git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18564 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/libs/icon/Icon.cpp | 8 ++++++-- src/libs/icon/Icon.h | 4 +++- 2 files changed, 9 insertions(+), 3 deletions(-) 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