Small fixes

This commit is contained in:
daa84 2017-09-01 16:49:10 +03:00
parent e8b23f18f5
commit a591bda6ee
4 changed files with 16 additions and 21 deletions

View File

@ -78,22 +78,3 @@ pub fn shape_dirty(ctx: &context::Context, ui_model: &mut ui_model::UiModel) {
}
}
//pub fn render_test(ctx: &cairo::Context, font_desc: pango::FontDescription) {
//let font_map = FontMap::get_default();
//let pango_context = font_map.create_context().unwrap();
//pango_context.set_font_description(&font_desc);
//let text = "TEST String".to_owned();
//let attr_list = pango::AttrList::new();
//ctx.move_to(0.0, 50.0);
//let items = pango_itemize(&pango_context, &text, &attr_list);
//for item in items {
//let mut glyphs = pango::GlyphString::new();
//let analysis = item.analysis();
//pango_shape(&text, &analysis, &mut glyphs);
//let font = analysis.font();
//let (ink, logical) = glyphs.extents(&font);
//ctx.show_glyph_string(&font, &glyphs);
//}
//}

View File

@ -154,6 +154,7 @@ impl State {
self.font_desc = FontDescription::from_string(desc);
self.line_height = None;
self.char_width = None;
self.model.clear_draw_cache();
}
pub fn open_file(&self, path: &str) {
@ -608,7 +609,6 @@ fn gtk_draw(state_arc: &Arc<UiMutex<State>>, ctx: &cairo::Context) -> Inhibit {
let mut state = state_arc.borrow_mut();
if state.nvim.borrow().is_initialized() {
// draw(&*state, ctx);
render(&mut *state, ctx);
request_window_resize(&mut *state);
} else if state.nvim.borrow().is_initializing() {
@ -792,7 +792,7 @@ fn draw_initializing(state: &State, ctx: &cairo::Context) {
ctx.paint();
layout.set_font_description(&desc);
layout.set_text("Loading..");
layout.set_text("Loading->");
let (width, height) = layout.get_pixel_size();
let x = alloc.width as f64 / 2.0 - width as f64 / 2.0;

View File

@ -89,6 +89,14 @@ impl Line {
self.dirty_line = true;
}
pub fn clear_draw_cache(&mut self) {
for i in 0..self.item_line.len() {
self.item_line[i] = None;
self.cell_to_item[i] = -1;
}
self.dirty_line = true;
}
fn set_cell_to_empty(&mut self, cell_idx: usize) -> bool {
if self.item_line[cell_idx].is_some() {
self.item_line[cell_idx] = None;

View File

@ -182,6 +182,12 @@ impl UiModel {
row.clear(left, right);
}
}
pub fn clear_draw_cache(&mut self) {
for row in &mut self.model.iter_mut() {
row.clear_draw_cache();
}
}
}
#[derive(Clone, Debug)]