mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-09-19 22:40:26 +00:00
fix bug 1332
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@9461 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
9a5b09b5e4
commit
f2a07f0ac9
@ -1,3 +1,8 @@
|
||||
2005-01-09 Georg Baum <Georg.Baum@post.rwth-aachen.de>
|
||||
|
||||
* CutAndPaste.C (pasteSelectionHelper): fix bug 1332 (preserve the
|
||||
layout if pasting into an empty paragraph)
|
||||
|
||||
2005-01-07 Lars Gullik Bjonnes <larsbj@gullik.net>
|
||||
|
||||
* tex-accent.C: add <string>
|
||||
|
@ -151,8 +151,12 @@ pasteSelectionHelper(Buffer const & buffer, ParagraphList & pars,
|
||||
}
|
||||
}
|
||||
|
||||
// Make the buf exactly the same layout as the cursor paragraph.
|
||||
insertion.begin()->makeSameLayout(pars[pit]);
|
||||
bool const empty = pars[pit].empty();
|
||||
if (!empty) {
|
||||
// Make the buf exactly the same layout as the cursor
|
||||
// paragraph.
|
||||
insertion.begin()->makeSameLayout(pars[pit]);
|
||||
}
|
||||
|
||||
// Prepare the paragraphs and insets for insertion.
|
||||
// A couple of insets store buffer references so need updating.
|
||||
@ -182,15 +186,24 @@ pasteSelectionHelper(Buffer const & buffer, ParagraphList & pars,
|
||||
std::swap(in.paragraphs(), insertion);
|
||||
|
||||
// Split the paragraph for inserting the buf if necessary.
|
||||
bool did_split = false;
|
||||
if (pars[pit].size() || pit + 1 == pit_type(pars.size())) {
|
||||
if (!empty)
|
||||
breakParagraphConservative(buffer.params(), pars, pit, pos);
|
||||
did_split = true;
|
||||
}
|
||||
|
||||
// Paste it!
|
||||
pars.insert(pars.begin() + pit + 1, insertion.begin(), insertion.end());
|
||||
mergeParagraph(buffer.params(), pars, pit);
|
||||
if (empty) {
|
||||
pars.insert(pars.begin() + pit, insertion.begin(),
|
||||
insertion.end());
|
||||
|
||||
// merge the empty par with the last par of the insertion
|
||||
mergeParagraph(buffer.params(), pars,
|
||||
pit + insertion.size() - 1);
|
||||
} else {
|
||||
pars.insert(pars.begin() + pit + 1, insertion.begin(),
|
||||
insertion.end());
|
||||
|
||||
// merge the first par of the insertion with the current par
|
||||
mergeParagraph(buffer.params(), pars, pit);
|
||||
}
|
||||
|
||||
pit_type last_paste = pit + insertion.size() - 1;
|
||||
|
||||
@ -199,7 +212,7 @@ pasteSelectionHelper(Buffer const & buffer, ParagraphList & pars,
|
||||
pos = pars[last_paste].size();
|
||||
|
||||
// Maybe some pasting.
|
||||
if (did_split && last_paste + 1 != pit_type(pars.size())) {
|
||||
if (!empty && last_paste + 1 != pit_type(pars.size())) {
|
||||
if (pars[last_paste + 1].hasSameLayout(pars[last_paste])) {
|
||||
mergeParagraph(buffer.params(), pars, last_paste);
|
||||
} else if (pars[last_paste + 1].empty()) {
|
||||
|
Loading…
Reference in New Issue
Block a user