Author: czeidler Date: 2010-05-24 03:57:56 +0200 (Mon, 24 May 2010) New Revision: 36918 Changeset: http://dev.haiku-os.org/changeset/36918/haiku Modified: haiku/branches/features/stack-and-tile/src/servers/app/Desktop.cpp haiku/branches/features/stack-and-tile/src/servers/app/Desktop.h Log: Call InvokeMoveWindow at the right position as it has been done in the original SAT code. Crashed previously for some unkown reasons. Modified: haiku/branches/features/stack-and-tile/src/servers/app/Desktop.cpp =================================================================== --- haiku/branches/features/stack-and-tile/src/servers/app/Desktop.cpp 2010-05-23 20:31:31 UTC (rev 36917) +++ haiku/branches/features/stack-and-tile/src/servers/app/Desktop.cpp 2010-05-24 01:57:56 UTC (rev 36918) @@ -1296,10 +1296,8 @@ window->Anchor(workspace).position += BPoint(x, y); _WindowChanged(window); - } else { + } else window->MoveBy((int32)x, (int32)y); - InvokeMoveWindow(window); - } UnlockAllWindows(); return; @@ -1316,7 +1314,6 @@ } window->MoveBy((int32)x, (int32)y); - InvokeMoveWindow(window); BRegion background; _RebuildClippingForAllWindows(background); @@ -1357,6 +1354,9 @@ } UnlockAllWindows(); + + if (window->IsDragging()) + InvokeMoveWindow(window); } @@ -1371,8 +1371,8 @@ if (!window->IsVisible()) { window->ResizeBy((int32)x, (int32)y, NULL); + UnlockAllWindows(); InvokeResizeWindow(window); - UnlockAllWindows(); return; } @@ -1391,7 +1391,6 @@ } window->ResizeBy((int32)x, (int32)y, &newDirtyRegion); - InvokeResizeWindow(window); BRegion background; _RebuildClippingForAllWindows(background); @@ -1416,6 +1415,8 @@ } UnlockAllWindows(); + + InvokeResizeWindow(window); } Modified: haiku/branches/features/stack-and-tile/src/servers/app/Desktop.h =================================================================== --- haiku/branches/features/stack-and-tile/src/servers/app/Desktop.h 2010-05-23 20:31:31 UTC (rev 36917) +++ haiku/branches/features/stack-and-tile/src/servers/app/Desktop.h 2010-05-24 01:57:56 UTC (rev 36918) @@ -91,6 +91,8 @@ class DesktopObservable { public: + DesktopObservable(); + void RegisterListener(DesktopListener* listener); void UnregisterListener(DesktopListener* listener);