X-Git-Url: https://eleni.mutantstargoat.com/git/?p=winnie;a=blobdiff_plain;f=src%2Fwindow.cc;h=fb46b381da7e53eee2b2eac5a7a0d1d9d101bb2e;hp=768c2eaeaf8db0f9fb3df685809e4f46c1e411c7;hb=59cd3a77c4517e387f4c2e21e8b62a9017370116;hpb=695cf39b73ecc76cbbc39e54f844ae55f4a9f938 diff --git a/src/window.cc b/src/window.cc index 768c2ea..fb46b38 100644 --- a/src/window.cc +++ b/src/window.cc @@ -96,14 +96,18 @@ void Window::draw(Rect *dirty_region) Rect abs_rect = get_absolute_rect(); Rect intersect = rect_intersection(abs_rect, *dirty_region); if(intersect.width && intersect.height) { + Rect prev_clip = get_clipping_rect(); + set_clipping_rect(abs_rect); + if(callbacks.display) { callbacks.display(this); } dirty = false; draw_children(abs_rect); - + *dirty_region = rect_union(*dirty_region, abs_rect); + set_clipping_rect(prev_clip); } }