X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FCursor.h;h=cf2344f2c6d53de788f809131d7441bdac754efa;hb=66561205e371dcd755f2187d562872c08ea582da;hp=c33478d523356f1ce029e343097223f192a9ec31;hpb=880b6c4d6ebd6f8e36b340a3efa3cb13108cc478;p=lyx.git diff --git a/src/Cursor.h b/src/Cursor.h index c33478d523..cf2344f2c6 100644 --- a/src/Cursor.h +++ b/src/Cursor.h @@ -86,9 +86,9 @@ public: DocIterator selectionBegin() const; /// access start of selection DocIterator selectionEnd() const; - /// + /// FIXME: document this bool selHandle(bool selecting); - // + /// docstring selectionAsString(bool label) const; /// docstring currentState(); @@ -194,6 +194,8 @@ public: /// DispatchResult disp_; + /// + DocIterator const & beforeDispatchCursor() { return beforeDispatchCursor_; } private: /** @@ -225,8 +227,8 @@ private: /// y position before dispatch started int beforeDispY_; /// position before dispatch started - size_t beforeDispDepth_; - + DocIterator beforeDispatchCursor_; + private: // @@ -256,12 +258,17 @@ public: /// return false for empty math insets bool backspace(); /// move the cursor up by sending an internal LFUN_UP + /// return true if fullscreen update is needed bool up(); - /// move the cursor up by sending an internal LFUN_DOWN + /// move the cursor up by sending an internal LFUN_DOWN, + /// return true if fullscreen update is needed bool down(); - /// move up/down in a text inset, called for LFUN_UP/DOWN - bool upDownInText(bool up); + /// move up/down in a text inset, called for LFUN_UP/DOWN, + /// return true if successful, updateNeeded set to true if fullscreen + /// update is needed, otherwise it's not touched + bool upDownInText(bool up, bool & updateNeeded); /// move up/down in math or any non text inset, call for LFUN_UP/DOWN + /// return true if successful bool upDownInMath(bool up); /// void plainErase(); @@ -291,6 +298,7 @@ public: bool isInside(Inset const *); /// make sure cursor position is valid + /// FIXME: It does a subset of fixIfBroken. Maybe merge them? void normalize(); /// mark current cursor trace for redraw void touch(); @@ -323,6 +331,13 @@ public: }; +/** + * Notifies all insets which appear in old, but not in cur. Make + * Sure that the cursor old is valid, i.e. als inset pointer + * point to valid insets! Use Cursor::fixIfBroken if necessary. + */ +bool notifyCursorLeaves(DocIterator const & old, Cursor & cur); + } // namespace lyx