|
|
|
@ -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; |
|
|
|
@ -794,12 +798,6 @@ void Source::View::paste() { |
|
|
|
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() { |
|
|
|
auto iter=get_buffer()->get_insert()->get_iter(); |
|
|
|
auto iter=get_buffer()->get_insert()->get_iter(); |
|
|
|
|