added 1 changeset to branch 'refs/remotes/looncraz-github/CAP-dirty' old head: f188fcceb2ed7cb3ea98ebb99cf53afa261ec051 new head: 80dab88e3b1d6fc07a19126ec0be72e0f06069e1 overview: https://github.com/looncraz/haiku/compare/f188fcceb2ed...80dab88e3b1d ---------------------------------------------------------------------------- 80dab88e3b1d: Fix Cyclic Call Don't you just hate it when you forget to reference the derive class's version of a function call you overloaded and cause a KDL? I sure do. [ looncraz <looncraz@xxxxxxxxxxxx> ] ---------------------------------------------------------------------------- Commit: 80dab88e3b1d6fc07a19126ec0be72e0f06069e1 Author: looncraz <looncraz@xxxxxxxxxxxx> Date: Mon Mar 23 05:02:40 2015 UTC ---------------------------------------------------------------------------- 4 files changed, 19 insertions(+), 6 deletions(-) src/servers/app/Desktop.cpp | 5 +++++ src/servers/app/ServerWindow.cpp | 9 +++++++-- src/servers/app/drawing/interface/local/CompositeEngine.cpp | 5 +++-- src/servers/app/drawing/interface/local/CompositeWindow.cpp | 6 ++++-- ---------------------------------------------------------------------------- diff --git a/src/servers/app/Desktop.cpp b/src/servers/app/Desktop.cpp index 5d2dfdd..71c1e4e 100644 --- a/src/servers/app/Desktop.cpp +++ b/src/servers/app/Desktop.cpp @@ -58,6 +58,8 @@ #include "Workspace.h" #include "WorkspacesView.h" +#include "RapidDebug.h" + #if TEST_MODE # include "EventStream.h" #endif @@ -2742,6 +2744,9 @@ Desktop::SetCompositingEnabled(bool enable) if (enable == IsCompositingEnabled()) return B_ALREADY_RUNNING; + _LOGF("Desktop(%p) : SetCompositingEnabled(%i) from %i\n", this, enable, + IsCompositingEnabled()); + LockAllWindows(); if (fCompositeEngine == NULL) { fCompositeEngine = new (std::nothrow) ::CompositeEngine(this); diff --git a/src/servers/app/ServerWindow.cpp b/src/servers/app/ServerWindow.cpp index b9c7f83..cbce763 100644 --- a/src/servers/app/ServerWindow.cpp +++ b/src/servers/app/ServerWindow.cpp @@ -3630,8 +3630,13 @@ ServerWindow::MakeWindow(BRect frame, const char* name, { //TODO: make this compile-time configurable - ::HWInterface* windowHWInterface - = new (std::nothrow) CompositeWindowHWInterface(fDesktop); + ::HWInterface* windowHWInterface = NULL; + + if (fDesktop->IsCompositingEnabled()) + windowHWInterface + = new (std::nothrow) CompositeWindowHWInterface(fDesktop); + else + windowHWInterface = fDesktop->HWInterface(); windowHWInterface->Initialize(); diff --git a/src/servers/app/drawing/interface/local/CompositeEngine.cpp b/src/servers/app/drawing/interface/local/CompositeEngine.cpp index 6753a58..04e46b5 100644 --- a/src/servers/app/drawing/interface/local/CompositeEngine.cpp +++ b/src/servers/app/drawing/interface/local/CompositeEngine.cpp @@ -55,7 +55,7 @@ CompositeEngineClient::CompositeEngineClient(CompositeEngine* engine) fCompositeEngine(engine) { # if ENABLE_LOGGING - _LOGF("CompositeEngineClient (%p) created\n", this); + _LOGF("CompositeEngineClient (%p) created on engine (%p)\n", this, engine); # endif if (fCompositeEngine != NULL) @@ -66,7 +66,8 @@ CompositeEngineClient::CompositeEngineClient(CompositeEngine* engine) CompositeEngineClient::~CompositeEngineClient() { # if ENABLE_LOGGING - _LOGF("CompositeEngineClient (%p) destroyed\n", this); + _LOGF("CompositeEngineClient (%p) destroyed on engine (%p)\n", this, + fCompositeEngine); # endif if (fCompositeEngine != NULL) diff --git a/src/servers/app/drawing/interface/local/CompositeWindow.cpp b/src/servers/app/drawing/interface/local/CompositeWindow.cpp index 04c3ed9..b00ad37 100644 --- a/src/servers/app/drawing/interface/local/CompositeWindow.cpp +++ b/src/servers/app/drawing/interface/local/CompositeWindow.cpp @@ -445,8 +445,10 @@ CompositeWindow::ConvertDrawingToScreen(BRect* rect) const void CompositeWindow::ConvertDrawingToScreen(BRegion* region) const { - if (!IsCompositeWindow()) + if (!IsCompositeWindow()){ + Window::ConvertDrawingToScreen(region); return; + } _WindowBuffer()->ConvertFromBuffer(region); region->OffsetBy(Frame().left, Frame().top); @@ -457,7 +459,7 @@ void CompositeWindow::_TriggerContentRedraw(BRegion& dirtyContentRegion) { if (!IsCompositeWindow()) { - _TriggerContentRedraw(dirtyContentRegion); + Window::_TriggerContentRedraw(dirtyContentRegion); return; } /*