private void sync_to_views() {
int sel = notesCtrl.SelectedIndex;
if (sel < 0)
return;
var i = notesCtrl.GetItem(sel).RowObject as note_item;
if (i.is_cur_line)
// always ignore "current line"
return;
int line_idx = lines_[i.line_id].idx;
string view_name = lines_[i.line_id].view_name;
++ignore_change_;
on_note_selected(line_idx, view_name);
// ... just in case we lost focus
notesCtrl.Focus();
--ignore_change_;
}