diff --git a/src/servers/app/Desktop.cpp b/src/servers/app/Desktop.cpp index 1ac14a7890..ac1cef4f79 100644 --- a/src/servers/app/Desktop.cpp +++ b/src/servers/app/Desktop.cpp @@ -1279,6 +1279,11 @@ Desktop::MoveWindowBy(WindowLayer* window, float x, float y) window->MoveBy(x, y); + if (!window->IsVisible()) { + UnlockAllWindows(); + return; + } + BRegion background; _RebuildClippingForAllWindows(background); @@ -1314,6 +1319,12 @@ Desktop::ResizeWindowBy(WindowLayer* window, float x, float y) if (!LockAllWindows()) return; + if (!window->IsVisible()) { + window->ResizeBy(x, y, NULL); + UnlockAllWindows(); + return; + } + // the dirty region for the inside of the window is // constructed by the window itself in ResizeBy() BRegion newDirtyRegion;