X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fcursor.h;h=1ec6255b0b8ee38b220ec36607e04eead5e542d3;hb=9ee46b846e5e84ad40ceda4f4af94aeb86cd90a2;hp=5cd4b39ad52c20a8de90b9b2fe34862570c3e376;hpb=3a3c1080ee89c24dc7a3ef078fdd62ffe38d9ab2;p=lyx.git diff --git a/src/cursor.h b/src/cursor.h index 5cd4b39ad5..1ec6255b0b 100644 --- a/src/cursor.h +++ b/src/cursor.h @@ -146,13 +146,30 @@ public: void reset(InsetBase &); /// for spellchecking void replaceWord(std::string const & replacestring); - /// the event was not (yet) dispatched + /** + * the event was not (yet) dispatched. + * + * Should only be called by an inset's doDispatch() method. It means: + * I, the doDispatch() method of InsetFoo, hereby declare that I am + * not able to handle that request and trust my parent will do the + * Right Thing (even if my getStatus partner said that I can do it). + * It is sort of a kludge that should be used only rarely... + */ void undispatched(); /// the event was already dispatched void dispatched(); /// call update() when done void needsUpdate(); - /// don't call update() when done + /** + * don't call update() when done + * + * Should only be called by an inset's doDispatch() method. It means: + * I handled that request and I can reassure you that the screen does + * not need to be re-drawn and all entries in the coord cache stay + * valid (and there are no other things to put in the coord cache). + * This is a fairly rare event as well and only some optimization. + * Not using noUpdate() should never be wrong. + */ void noUpdate(); /// fix cursor in circumstances that should never happen void fixIfBroken(); @@ -189,6 +206,11 @@ private: bool selection_; /// are we on the way to get one? bool mark_; + /// If true, we are behind the previous char, otherwise we are in front + // of the next char. This only make a difference when we are in front + // of a big inset spanning a whole row and computing coordinates for + // displaying the cursor. + bool logicalpos_; private: @@ -234,8 +256,10 @@ public: /// in pixels from top of screen void setScreenPos(int x, int y); /// current offset in the top cell - /// interpret name a name of a macro - void macroModeClose(); + + /// interpret name a name of a macro. Returns true if + /// something got inserted. + bool macroModeClose(); /// are we currently typing the name of a macro? bool inMacroMode() const; /// get access to the macro we are currently typing