/* * setmouse() - switch mouse on/off depending on current mode and 'mouse' */ void setmouse(void) { int checkfor; ui_cursor_shape(); /* be quick when mouse is off */ if (*p_mouse == NUL) return; if (VIsual_active) checkfor = MOUSE_VISUAL; else if (State == HITRETURN || State == ASKMORE || State == SETWSIZE) checkfor = MOUSE_RETURN; else if (State & INSERT) checkfor = MOUSE_INSERT; else if (State & CMDLINE) checkfor = MOUSE_COMMAND; else if (State == CONFIRM || State == EXTERNCMD) checkfor = ' '; /* don't use mouse for ":confirm" or ":!cmd" */ else checkfor = MOUSE_NORMAL; /* assume normal mode */ if (mouse_has(checkfor)) { ui_mouse_on(); } else { ui_mouse_off(); } }
void ui_refresh(void) { if (!ui_active()) { return; } if (updating_screen) { ui_schedule_refresh(); return; } int width = INT_MAX, height = INT_MAX; bool ext_widgets[kUIExtCount]; for (UIExtension i = 0; (int)i < kUIExtCount; i++) { ext_widgets[i] = true; } for (size_t i = 0; i < ui_count; i++) { UI *ui = uis[i]; width = MIN(ui->width, width); height = MIN(ui->height, height); for (UIExtension j = 0; (int)j < kUIExtCount; j++) { ext_widgets[j] &= ui->ui_ext[j]; } } cursor_row = cursor_col = 0; pending_cursor_update = true; for (UIExtension i = 0; (int)i < kUIExtCount; i++) { ui_ext[i] = ext_widgets[i]; if (i < kUIGlobalCount) { ui_call_option_set(cstr_as_string((char *)ui_ext_names[i]), BOOLEAN_OBJ(ext_widgets[i])); } } ui_default_colors_set(); int save_p_lz = p_lz; p_lz = false; // convince redrawing() to return true ... screen_resize(width, height); p_lz = save_p_lz; if (ext_widgets[kUIMessages]) { p_ch = 0; command_height(); } ui_mode_info_set(); pending_mode_update = true; ui_cursor_shape(); }
void ui_refresh(void) { if (!ui_active()) { return; } if (updating_screen) { ui_schedule_refresh(); return; } int width = INT_MAX, height = INT_MAX; bool ext_widgets[kUIExtCount]; for (UIExtension i = 0; (int)i < kUIExtCount; i++) { ext_widgets[i] = true; } for (size_t i = 0; i < ui_count; i++) { UI *ui = uis[i]; width = MIN(ui->width, width); height = MIN(ui->height, height); for (UIExtension i = 0; (int)i < kUIExtCount; i++) { ext_widgets[i] &= ui->ui_ext[i]; } } row = col = 0; int save_p_lz = p_lz; p_lz = false; // convince redrawing() to return true ... screen_resize(width, height); p_lz = save_p_lz; for (UIExtension i = 0; (int)i < kUIExtCount; i++) { ui_ext[i] = ext_widgets[i]; ui_call_option_set(cstr_as_string((char *)ui_ext_names[i]), BOOLEAN_OBJ(ext_widgets[i])); } ui_mode_info_set(); old_mode_idx = -1; ui_cursor_shape(); current_attr_code = -1; }