Changes in window.c [4cc49bc:b31f1c9]
Legend:
- Unmodified
- Added
- Removed
-
window.c
r4cc49bc rb31f1c9 524 524 owl_window_set_position(w, nlines, ncols, w->begin_y, w->begin_x); 525 525 } 526 527 /** Redrawing main loop hooks **/528 529 static bool _owl_window_should_redraw(void) {530 return g.resizepending || owl_window_get_screen()->dirty_subtree;531 }532 533 static gboolean _owl_window_redraw_prepare(GSource *source, int *timeout) {534 *timeout = -1;535 return _owl_window_should_redraw();536 }537 538 static gboolean _owl_window_redraw_check(GSource *source) {539 return _owl_window_should_redraw();540 }541 542 static gboolean _owl_window_redraw_dispatch(GSource *source, GSourceFunc callback, gpointer user_data) {543 owl_colorpair_mgr *cpmgr;544 545 /* if a resize has been scheduled, deal with it */546 owl_global_check_resize(&g);547 /* update the terminal if we need to */548 owl_window_redraw_scheduled();549 /* On colorpair shortage, reset and redraw /everything/. NOTE: if550 * the current screen uses too many colorpairs, this draws551 * everything twice. But this is unlikely; COLOR_PAIRS is 64 with552 * 8+1 colors, and 256^2 with 256+1 colors. (+1 for default.) */553 cpmgr = owl_global_get_colorpair_mgr(&g);554 if (cpmgr->overflow) {555 owl_function_debugmsg("colorpairs: color shortage; reset pairs and redraw. COLOR_PAIRS = %d", COLOR_PAIRS);556 owl_fmtext_reset_colorpairs(cpmgr);557 owl_function_full_redisplay();558 owl_window_redraw_scheduled();559 }560 return TRUE;561 }562 563 static GSourceFuncs redraw_funcs = {564 _owl_window_redraw_prepare,565 _owl_window_redraw_check,566 _owl_window_redraw_dispatch,567 NULL568 };569 570 GSource *owl_window_redraw_source_new(void) {571 GSource *source;572 source = g_source_new(&redraw_funcs, sizeof(GSource));573 /* TODO: priority?? */574 return source;575 }
Note: See TracChangeset
for help on using the changeset viewer.