/* quick test to prevent changing window drawable */ static int wm_draw_update_test_window(wmWindow *win) { ScrArea *sa; ARegion *ar; for(ar= win->screen->regionbase.first; ar; ar= ar->next) { if(ar->do_draw_overlay) { wm_tag_redraw_overlay(win, ar); ar->do_draw_overlay= 0; } } if(win->screen->do_refresh) return 1; if(win->screen->do_draw) return 1; if(win->screen->do_draw_gesture) return 1; if(win->screen->do_draw_paintcursor) return 1; if(win->screen->do_draw_drag) return 1; for(ar= win->screen->regionbase.first; ar; ar= ar->next) if(ar->swinid && ar->do_draw) return 1; for(sa= win->screen->areabase.first; sa; sa= sa->next) for(ar=sa->regionbase.first; ar; ar= ar->next) if(ar->swinid && ar->do_draw) return 1; return 0; }
void wm_gesture_tag_redraw(bContext *C) { wmWindow *win = CTX_wm_window(C); bScreen *screen = CTX_wm_screen(C); ARegion *ar = CTX_wm_region(C); if (screen) screen->do_draw_gesture = TRUE; wm_tag_redraw_overlay(win, ar); }
/* quick test to prevent changing window drawable */ static bool wm_draw_update_test_window(wmWindow *win) { ScrArea *sa; ARegion *ar; bool do_draw = false; for (ar = win->screen->regionbase.first; ar; ar = ar->next) { if (ar->do_draw_overlay) { wm_tag_redraw_overlay(win, ar); ar->do_draw_overlay = false; } if (ar->swinid && ar->do_draw) do_draw = true; } for (sa = win->screen->areabase.first; sa; sa = sa->next) { for (ar = sa->regionbase.first; ar; ar = ar->next) { wm_region_test_render_do_draw(win->screen, sa, ar); if (ar->swinid && ar->do_draw) do_draw = true; } } if (do_draw) return 1; if (win->screen->do_refresh) return 1; if (win->screen->do_draw) return 1; if (win->screen->do_draw_gesture) return 1; if (win->screen->do_draw_paintcursor) return 1; if (win->screen->do_draw_drag) return 1; return 0; }
void WM_paint_cursor_tag_redraw(wmWindow *win, ARegion *ar) { win->screen->do_draw_paintcursor = true; wm_tag_redraw_overlay(win, ar); }