- If the event window was set the window was moved also if the moveFocusWindow flag was not set. - Use ProcessDirtyRegion to redraw the dirty region. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39707 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -1123,18 +1123,7 @@ DefaultWindowBehaviour::_SetBorderHighlights(int8 horizontal, int8 vertical,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// invalidate the affected regions
|
// invalidate the affected regions
|
||||||
dirtyRegion.IntersectWith(&fWindow->VisibleRegion());
|
fWindow->ProcessDirtyRegion(dirtyRegion);
|
||||||
BRect dirtyRect(dirtyRegion.Frame());
|
|
||||||
|
|
||||||
if (dirtyRect.IsValid()) {
|
|
||||||
DrawingEngine* engine = decorator->GetDrawingEngine();
|
|
||||||
engine->LockParallelAccess();
|
|
||||||
engine->ConstrainClippingRegion(&dirtyRegion);
|
|
||||||
|
|
||||||
decorator->Draw(dirtyRect);
|
|
||||||
|
|
||||||
engine->UnlockParallelAccess();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3357,9 +3357,13 @@ Desktop::_SetWorkspace(int32 index, bool moveFocusWindow)
|
|||||||
int32 previousIndex = fCurrentWorkspace;
|
int32 previousIndex = fCurrentWorkspace;
|
||||||
rgb_color previousColor = fWorkspaces[fCurrentWorkspace].Color();
|
rgb_color previousColor = fWorkspaces[fCurrentWorkspace].Color();
|
||||||
bool movedMouseEventWindow = false;
|
bool movedMouseEventWindow = false;
|
||||||
Window* movedWindow = fMouseEventWindow;
|
Window* movedWindow = NULL;
|
||||||
if (movedWindow == NULL && moveFocusWindow)
|
if (moveFocusWindow) {
|
||||||
|
if (fMouseEventWindow != NULL)
|
||||||
|
movedWindow = fMouseEventWindow;
|
||||||
|
else
|
||||||
movedWindow = FocusWindow();
|
movedWindow = FocusWindow();
|
||||||
|
}
|
||||||
|
|
||||||
if (movedWindow != NULL) {
|
if (movedWindow != NULL) {
|
||||||
if (movedWindow->IsNormal()) {
|
if (movedWindow->IsNormal()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user