X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FBufferView.cpp;h=81ebe79977370d21bf2e54341cd2ab5d400dc955;hb=f16b2cab75752e7b0fbec5520e231b068eb29072;hp=06ea9ea6c964e9a73afda6a8e75cad07e82d44a0;hpb=79bb97b1ba94ca5f4dc24e46bcedf7f18b2bebe3;p=lyx.git diff --git a/src/BufferView.cpp b/src/BufferView.cpp index 06ea9ea6c9..81ebe79977 100644 --- a/src/BufferView.cpp +++ b/src/BufferView.cpp @@ -351,11 +351,12 @@ BufferView::~BufferView() int BufferView::rightMargin() const { + // The value used to be hardcoded to 10, which is 2.5mm at 100dpi + int const default_margin = Length(2.5, Length::MM).inPixels(0); // The additional test for the case the outliner is opened. - if (!full_screen_ || - !lyxrc.full_screen_limit || - width_ < lyxrc.full_screen_width + 20) - return 10; + if (!full_screen_ || !lyxrc.full_screen_limit + || width_ < lyxrc.full_screen_width + 2 * default_margin) + return default_margin; return (width_ - lyxrc.full_screen_width) / 2; } @@ -808,6 +809,8 @@ bool BufferView::moveToPosition(pit_type bottom_pit, pos_type bottom_pos, setCursor(dit); // set the current font. d->cursor_.setCurrentFont(); + // Do not forget to reset the anchor (see #9912) + d->cursor_.resetAnchor(); // To center the screen on this new position we need the // paragraph position which is computed at draw() time. // So we need a redraw! @@ -2202,7 +2205,7 @@ void BufferView::mouseEventDispatch(FuncRequest const & cmd0) // cursor in front of the inset. if (inset->hasSettings() && cur.nextInset() != inset && cur.prevInset() == inset) - cur.backwardPos(); + cur.posBackward(); } // Put anchor at the same position. @@ -2509,8 +2512,12 @@ bool BufferView::mouseSetCursor(Cursor & cur, bool select) // FIXME: (2) if we had a working InsetText::notifyCursorLeaves, // the leftinset bool would not be necessary (badcursor instead). bool update = leftinset; - if (!do_selection && d->cursor_.inTexted()) + if (!do_selection && d->cursor_.inTexted()) { update |= checkDepm(cur, d->cursor_); + if (cur.inTexted() && cur.pos() + && cur.paragraph().isEnvSeparator(cur.pos() - 1)) + cur.posBackward(); + } if (!do_selection) d->cursor_.resetAnchor();