From a69e7a8dd096f5cb14dc19a18a3e7111b9f27c21 Mon Sep 17 00:00:00 2001 From: eidheim Date: Sat, 24 Oct 2015 08:50:53 +0200 Subject: [PATCH] Minor fix to shift-tab indentation. --- src/source.cc | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/src/source.cc b/src/source.cc index 1ce29df..e59944d 100644 --- a/src/source.cc +++ b/src/source.cc @@ -1025,21 +1025,19 @@ bool Source::View::on_key_press_event(GdkEventKey* key) { auto line_it = get_source_buffer()->get_iter_at_line(line_nr); if(!get_buffer()->get_has_selection() || line_it!=selection_end) { auto tabs_end_iter=get_tabs_end_iter(line_nr); - auto line_tabs=get_line_before(tabs_end_iter); - - if(line_tabs.size()>0 || tabs_end_iter.ends_line()) { - if(!tabs_end_iter.ends_line()) { + if(tabs_end_iter.starts_line() && tabs_end_iter.ends_line()) + ignore_line.push_back(true); + else { + auto line_tabs=get_line_before(tabs_end_iter); + + if(line_tabs.size()>0) { indent_left_steps=std::min(indent_left_steps, static_cast(line_tabs.size())); ignore_line.push_back(false); } - else if(static_cast(line_tabs.size())end_user_action(); - return true; + else { + get_source_buffer()->end_user_action(); + return true; + } } } }