From 31ec092be1241fbaaae055a4463cd44a50f86cdf Mon Sep 17 00:00:00 2001 From: Adi Oanca Date: Sat, 29 Oct 2005 11:15:47 +0000 Subject: [PATCH] Introduced Layer::Activated() hook function. Moved some functionality from RootLayer to WinBorder git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14565 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/servers/app/Layer.cpp | 6 ++++++ src/servers/app/Layer.h | 1 + src/servers/app/RootLayer.cpp | 14 ++++---------- src/servers/app/WinBorder.cpp | 8 ++++++++ src/servers/app/WinBorder.h | 1 + 5 files changed, 20 insertions(+), 10 deletions(-) diff --git a/src/servers/app/Layer.cpp b/src/servers/app/Layer.cpp index 7f29a900a8..aad9c426de 100644 --- a/src/servers/app/Layer.cpp +++ b/src/servers/app/Layer.cpp @@ -1194,6 +1194,12 @@ Layer::WorkspacesChanged(uint32 oldWorkspaces, uint32 newWorkspaces) // Empty } +void +Layer::Activated(bool active) +{ + // Empty +} + // BoundsOrigin BPoint Layer::BoundsOrigin() const diff --git a/src/servers/app/Layer.h b/src/servers/app/Layer.h index ade4c97a44..2829e1b424 100644 --- a/src/servers/app/Layer.h +++ b/src/servers/app/Layer.h @@ -171,6 +171,7 @@ class Layer { virtual void WorkspaceActivated(int32 index, bool active); virtual void WorkspacesChanged(uint32 oldWorkspaces, uint32 newWorkspaces); + virtual void Activated(bool active); BPoint BoundsOrigin() const; // BoundsFrameDiff()? float Scale() const; diff --git a/src/servers/app/RootLayer.cpp b/src/servers/app/RootLayer.cpp index 43625087c3..05e71fcfef 100644 --- a/src/servers/app/RootLayer.cpp +++ b/src/servers/app/RootLayer.cpp @@ -828,16 +828,10 @@ RootLayer::RevealNewWMState(Workspace::State &oldWMState) // floating window having focus. // send window activation messages if (oldWMState.Active != fWMState.Active) { - if (oldWMState.Active && oldWMState.Active->Window()) { - BMessage msg(B_WINDOW_ACTIVATED); - msg.AddBool("active", false); - oldWMState.Active->Window()->SendMessageToClient(&msg, B_NULL_TOKEN, false); - } - if (fWMState.Active && fWMState.Active->Window()) { - BMessage msg(B_WINDOW_ACTIVATED); - msg.AddBool("active", true); - fWMState.Active->Window()->SendMessageToClient(&msg, B_NULL_TOKEN, false); - } + if (oldWMState.Active) + oldWMState.Active->Activated(false); + if (fWMState.Active) + fWMState.Active->Activated(true); } // calculate the region that must be invalidated/redrawn diff --git a/src/servers/app/WinBorder.cpp b/src/servers/app/WinBorder.cpp index 58cfb91d8b..9d66cfe135 100644 --- a/src/servers/app/WinBorder.cpp +++ b/src/servers/app/WinBorder.cpp @@ -655,6 +655,14 @@ WinBorder::WorkspacesChanged(uint32 oldWorkspaces, uint32 newWorkspaces) Window()->SendMessageToClient(&changedMsg, B_NULL_TOKEN, false); } +void +WinBorder::Activated(bool active) +{ + BMessage msg(B_WINDOW_ACTIVATED); + msg.AddBool("active", false); + Window()->SendMessageToClient(&msg, B_NULL_TOKEN, false); +} + // SetTabLocation void WinBorder::SetTabLocation(float location) diff --git a/src/servers/app/WinBorder.h b/src/servers/app/WinBorder.h index 76494e9ae3..68cda3d4c6 100644 --- a/src/servers/app/WinBorder.h +++ b/src/servers/app/WinBorder.h @@ -90,6 +90,7 @@ class WinBorder : public Layer { virtual void WorkspaceActivated(int32 index, bool active); virtual void WorkspacesChanged(uint32 oldWorkspaces, uint32 newWorkspaces); + virtual void Activated(bool active); void UpdateColors(); void UpdateDecorator();