]> git.lyx.org Git - lyx.git/blobdiff - src/Text3.cpp
Routines for calculating numerical labels for BibTeX citations.
[lyx.git] / src / Text3.cpp
index 18adc7d4317dd5bb0791d8b6eb789d6796465b3e..af69c654e79311a7cce1254a5862a778ac506cb5 100644 (file)
@@ -267,16 +267,19 @@ static bool doInsertInset(Cursor & cur, Text * text,
        cur.clearSelection(); // bug 393
        cur.finishUndo();
        InsetText * insetText = dynamic_cast<InsetText *>(inset);
-       if (insetText && (!insetText->allowMultiPar() || cur.lastpit() == 0)) {
-               // reset first par to default
-               cur.text()->paragraphs().begin()
-                       ->setPlainOrDefaultLayout(bparams.documentClass());
-               cur.pos() = 0;
-               cur.pit() = 0;
-               // Merge multiple paragraphs -- hack
-               while (cur.lastpit() > 0)
-                       mergeParagraph(bparams, cur.text()->paragraphs(), 0);
-               cur.leaveInset(*inset);
+       if (insetText) {
+               insetText->fixParagraphsFont();
+               if (!insetText->allowMultiPar() || cur.lastpit() == 0) {
+                       // reset first par to default
+                       cur.text()->paragraphs().begin()
+                               ->setPlainOrDefaultLayout(bparams.documentClass());
+                       cur.pos() = 0;
+                       cur.pit() = 0;
+                       // Merge multiple paragraphs -- hack
+                       while (cur.lastpit() > 0)
+                               mergeParagraph(bparams, cur.text()->paragraphs(), 0);
+                       cur.leaveInset(*inset);
+               }
        } else {
                cur.leaveInset(*inset);
                // reset surrounding par to default
@@ -286,7 +289,6 @@ static bool doInsertInset(Cursor & cur, Text * text,
                        : dc.defaultLayoutName();
                text->setLayout(cur, layoutname);
        }
-
        return true;
 }
 
@@ -1057,7 +1059,7 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                if (inset) {
                        // FIXME (Abdel 01/02/2006):
                        // What follows would be a partial fix for bug 2154:
-                       //   http://bugzilla.lyx.org/show_bug.cgi?id=2154
+                       //   http://www.lyx.org/trac/ticket/2154
                        // This automatically put the label inset _after_ a
                        // numbered section. It should be possible to extend the mechanism
                        // to any kind of LateX environement.
@@ -1403,14 +1405,17 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                break;
 
        // Single-click on work area
-       case LFUN_MOUSE_PRESS:
+       case LFUN_MOUSE_PRESS: {
                // We are not marking a selection with the keyboard in any case.
-               cur.bv().cursor().setMark(false);
+               Cursor & bvcur = cur.bv().cursor();
+               bvcur.setMark(false);
                switch (cmd.button()) {
                case mouse_button::button1:
                        // Set the cursor
                        if (!bv->mouseSetCursor(cur, cmd.argument() == "region-select"))
                                cur.updateFlags(Update::SinglePar | Update::FitCursor);
+                       if (bvcur.wordSelection())
+                               selectWord(bvcur, WHOLE_WORD);
                        break;
 
                case mouse_button::button2:
@@ -1423,7 +1428,6 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                        break;
 
                case mouse_button::button3: {
-                       Cursor const & bvcur = cur.bv().cursor();
                        // Don't do anything if we right-click a
                        // selection, a context menu will popup.
                        if (bvcur.selection() && cur >= bvcur.selectionBegin()
@@ -1440,7 +1444,7 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                        break;
                } // switch (cmd.button())
                break;
-
+       }
        case LFUN_MOUSE_MOTION: {
                // Mouse motion with right or middle mouse do nothing for now.
                if (cmd.button() != mouse_button::button1) {