/** reallocate buffers to match grid dimensions */ void Canvas::resize_grid ( void ) { // _update_row_mapping(); resize(); if ( m.vp ) { if ( m.vp->w != m.w || m.vp->h != m.h || m.div_w != m.old_div_w || m.div_h != m.old_div_h ) { if ( m.grid_drawn ) signal_resize(); m.old_div_w = m.div_w; m.old_div_h = m.div_h; } else return; } DMESSAGE( "resizing grid %dx%d", m.vp->w, m.vp->h ); if ( m.previous ) { free( m.previous ); free( m.current ); } m.current = _alloc_array(); m.previous = _alloc_array(); m.grid_drawn = false; }
/** update everything about mapping, leaving the viewport alone */ void Canvas::update_mapping ( void ) { _update_row_mapping(); m.mapping_drawn = false; resize(); int old_margin = m.margin_left; m.margin_left = 0; m.draw = false; m.grid->draw_row_names( this ); if ( m.margin_left != old_margin ) { signal_resize(); signal_draw(); } else signal_draw(); }
void CoreManager::Resize() { struct winsize size; resize_pending = false; if (ioctl(fileno(stdout), TIOCGWINSZ, &size) >= 0) { Curses::resizeterm(size.ws_row, size.ws_col); // make sure everything is redrawn from the scratch Curses::clear(); } signal_resize(); Redraw(); }