void Ctrl::WndInvalidateRect(const Rect& r) { GuiLock __; LLOG("WndInvalidateRect " << r); gdk_window_invalidate_rect(gdk(), GdkRect(r), TRUE); // gtk_widget_queue_draw_area(top->window, r.left, r.top, r.GetWidth(), r.GetHeight()); }
bool SystemDraw::IsPaintingOp(const Rect& r) const { Rect cr = r.Offseted(GetOffset()); cr.Intersect(GetClip()); if(cr.IsEmpty()) return false; return !invalid || gdk_region_rect_in(invalid, GdkRect(cr)) != GDK_OVERLAP_RECTANGLE_OUT; }