Browse Source

Smart paste now also works on selected text

merge-requests/365/head
eidheim 9 years ago
parent
commit
ba934083aa
  1. 14
      src/source.cc

14
src/source.cc

@ -700,10 +700,15 @@ void Source::View::paste() {
} }
} }
get_buffer()->begin_user_action();
if(get_buffer()->get_has_selection()) {
Gtk::TextIter start, end;
get_buffer()->get_selection_bounds(start, end);
get_buffer()->erase(start, end);
}
auto line=get_line_before(); auto line=get_line_before();
std::string prefix_tabs; std::string prefix_tabs;
auto tabs_end_iter=get_tabs_end_iter(); auto tabs_end_iter=get_tabs_end_iter();
if(!get_buffer()->get_has_selection() && tabs_end_iter.ends_line()) {
prefix_tabs=get_line_before(tabs_end_iter); prefix_tabs=get_line_before(tabs_end_iter);
size_t start_line=0; size_t start_line=0;
@ -753,7 +758,6 @@ void Source::View::paste() {
end_line=0; end_line=0;
paste_line=false; paste_line=false;
first_paste_line=true; first_paste_line=true;
get_buffer()->begin_user_action();
for(size_t c=0;c<text.size();c++) { for(size_t c=0;c<text.size();c++) {
if(text[c]=='\n') { if(text[c]=='\n') {
end_line=c; end_line=c;
@ -793,12 +797,6 @@ void Source::View::paste() {
get_buffer()->place_cursor(get_buffer()->get_insert()->get_iter()); get_buffer()->place_cursor(get_buffer()->get_insert()->get_iter());
get_buffer()->end_user_action(); get_buffer()->end_user_action();
scroll_to_cursor_delayed(this, false, false); scroll_to_cursor_delayed(this, false, false);
}
else {
Gtk::Clipboard::get()->set_text(text);
get_buffer()->paste_clipboard(Gtk::Clipboard::get());
scroll_to_cursor_delayed(this, false, false);
}
} }
Gtk::TextIter Source::View::get_iter_for_dialog() { Gtk::TextIter Source::View::get_iter_for_dialog() {

Loading…
Cancel
Save