X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FText3.cpp;h=eafce2854c2efdb308b9550a4a382a8a58439702;hb=d3c63f97c4fce4e091277ced6c1829473c311231;hp=0e8b4127be617e84a1e7331f83631eb8b054c458;hpb=83d8e12cc1467931c566bca988a070ce992089fc;p=lyx.git diff --git a/src/Text3.cpp b/src/Text3.cpp index 0e8b4127be..eafce2854c 100644 --- a/src/Text3.cpp +++ b/src/Text3.cpp @@ -97,6 +97,7 @@ using cap::replaceSelection; using cap::grabAndEraseSelection; using cap::selClearOrDel; using cap::pasteSimpleText; +using frontend::Clipboard; // globals... static Font freefont(ignore_font, ignore_language); @@ -1606,9 +1607,11 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd) bvcur.setMark(false); switch (cmd.button()) { case mouse_button::button1: - // Set the cursor - if (!bv->mouseSetCursor(cur, cmd.argument() == "region-select")) - cur.screenUpdateFlags(Update::FitCursor); + if (!bvcur.selection()) + // Set the cursor + bvcur.resetAnchor(); + if (!bv->mouseSetCursor(cur, cmd.modifier() == ShiftModifier)) + cur.screenUpdateFlags(Update::SinglePar | Update::FitCursor); if (bvcur.wordSelection()) selectWord(bvcur, WHOLE_WORD); break; @@ -3109,7 +3112,7 @@ bool Text::getStatus(Cursor & cur, FuncRequest const & cmd, docstring layout = cmd.argument(); if (layout.empty()) layout = tclass.defaultLayoutName(); - enable = !cur.inset().forcePlainLayout() && tclass.hasLayout(layout); + enable = !owner_->forcePlainLayout() && tclass.hasLayout(layout); flag.setOnOff(layout == cur.paragraph().layout().name()); break; @@ -3145,7 +3148,7 @@ bool Text::getStatus(Cursor & cur, FuncRequest const & cmd, case LFUN_PARAGRAPH_PARAMS: case LFUN_PARAGRAPH_PARAMS_APPLY: case LFUN_PARAGRAPH_UPDATE: - enable = cur.inset().allowParagraphCustomization(); + enable = owner_->allowParagraphCustomization(); break; // FIXME: why are accent lfuns forbidden with pass_thru layouts?