mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 14:27:35 +00:00
WindowServer: Retain window backing stores while blitting them.
This commit is contained in:
parent
8a3af99416
commit
a915dd7b27
1 changed files with 3 additions and 2 deletions
|
@ -336,7 +336,8 @@ void WSWindowManager::compose()
|
||||||
}
|
}
|
||||||
for (auto* window = m_windows_in_order.head(); window; window = window->next()) {
|
for (auto* window = m_windows_in_order.head(); window; window = window->next()) {
|
||||||
WSWindowLocker locker(*window);
|
WSWindowLocker locker(*window);
|
||||||
if (!window->backing())
|
RetainPtr<GraphicsBitmap> backing = window->backing();
|
||||||
|
if (!backing)
|
||||||
continue;
|
continue;
|
||||||
if (!any_dirty_rect_intersects_window(*window))
|
if (!any_dirty_rect_intersects_window(*window))
|
||||||
continue;
|
continue;
|
||||||
|
@ -350,7 +351,7 @@ void WSWindowManager::compose()
|
||||||
dirty_rect_in_window_coordinates.set_y(dirty_rect_in_window_coordinates.y() - window->y());
|
dirty_rect_in_window_coordinates.set_y(dirty_rect_in_window_coordinates.y() - window->y());
|
||||||
auto dst = window->position();
|
auto dst = window->position();
|
||||||
dst.move_by(dirty_rect_in_window_coordinates.location());
|
dst.move_by(dirty_rect_in_window_coordinates.location());
|
||||||
m_back_painter->blit(dst, *window->backing(), dirty_rect_in_window_coordinates);
|
m_back_painter->blit(dst, *backing, dirty_rect_in_window_coordinates);
|
||||||
m_back_painter->clear_clip_rect();
|
m_back_painter->clear_clip_rect();
|
||||||
}
|
}
|
||||||
m_back_painter->clear_clip_rect();
|
m_back_painter->clear_clip_rect();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue