]> git.lyx.org Git - features.git/blobdiff - src/BufferView.cpp
Introduce jump-back navigation through bookmark 0
[features.git] / src / BufferView.cpp
index 35edfe9fbf5ca72a1865bd1cb8ed4c710669d387..2a5b39f48915efce7f76b1903585bc5f5466971f 100644 (file)
@@ -218,7 +218,7 @@ struct BufferView::Private
        Private(BufferView & bv): wh_(0), cursor_(bv),
                anchor_pit_(0), anchor_ypos_(0),
                inlineCompletionUniqueChars_(0),
-               last_inset_(0), gui_(0)
+               last_inset_(0), bookmark_edit_position_(0), gui_(0)
        {}
 
        ///
@@ -261,6 +261,9 @@ struct BufferView::Private
          */
        Inset * last_inset_;
 
+       // cache for id of the paragraph which was edited the last time
+       int bookmark_edit_position_;
+
        mutable TextMetricsCache text_metrics_;
 
        /// Whom to notify.
@@ -670,6 +673,16 @@ CursorStatus BufferView::cursorStatus(DocIterator const & dit) const
 }
 
 
+void BufferView::bookmarkEditPosition()
+{
+       // Don't eat cpu time for each keystroke
+       if (d->cursor_.paragraph().id() == d->bookmark_edit_position_)
+               return;
+       saveBookmark(0);
+       d->bookmark_edit_position_ = d->cursor_.paragraph().id();
+}
+
+
 void BufferView::saveBookmark(unsigned int idx)
 {
        // tentatively save bookmark, id and pos will be used to