]> git.lyx.org Git - lyx.git/blobdiff - src/lyxtext.h
Disable InsetText::update and InsetTabular::update
[lyx.git] / src / lyxtext.h
index eb5f55fcb86033556045f7341a6d3ab2f8dec95c..2e6ddd97c343df0830428b891686ecd3f74ba3c4 100644 (file)
@@ -44,22 +44,12 @@ class ParagraphList;
 // transition...
 class LyXText : public TextCursor {
 public:
-       /// what repainting is needed
-       enum refresh_status {
-               /// no repaint is needed
-               REFRESH_NONE = 0,
-               /// the refresh_row needs repainting
-               REFRESH_ROW = 1,
-               /// everything from refresh_y downwards needs repainting
-               REFRESH_AREA = 2
-       };
-
        /// Constructor
        LyXText(BufferView *);
        /// sets inset as owner
        LyXText(BufferView *, InsetText *);
 
-       void init(BufferView *, bool reinit = false);
+       void init(BufferView *);
        ///
        int height;
        ///
@@ -173,6 +163,8 @@ public:
        void partialRebreak();
        /// a full rebreak of the whole text
        void fullRebreak();
+       /// rebuild RowList cache
+       void rebuild();
 
        ///
        RowList::iterator need_break_row;
@@ -180,15 +172,8 @@ public:
        /// clear any pending paints
        void clearPaint();
 
-       /**
-        * Mark position y as the starting point for a repaint
-        */
-       void postPaint(int start_y);
-
-       /**
-        * Mark the given row at position y as needing a repaint.
-        */
-       void postRowPaint(RowList::iterator rit, int start_y);
+       /// submit repaint request
+       void postPaint();
 
        ///
        Inset::RESULT dispatch(FuncRequest const & cmd);
@@ -203,29 +188,17 @@ public:
         * Return the status. This represents what repaints are
         * pending after some operation (e.g. inserting a char).
         */
-       refresh_status refreshStatus() const;
+       bool needRefresh() const;
 
 private:
-       /**
-        * The pixel y position from which to repaint the screen.
-        * The position is absolute along the height of outermost
-        * lyxtext (I think). REFRESH_AREA and REFRESH_ROW
-        * repaints both use this as a starting point (if it's within
-        * the viewable portion of the lyxtext).
-        */
-       int refresh_y;
-       /**
-        * The row from which to repaint the screen, used by screen.c.
-        * This must be set if the pending update is REFRESH_ROW.
-        * It doesn't make any difference for REFRESH_AREA.
-        */
-       RowList::iterator refresh_row;
-
-       refresh_status refresh_status_;
+       // do we need a refresh?
+       bool need_refresh_;
 
+public:
        /// only the top-level LyXText has this non-zero
        BufferView * bv_owner;
 
+private:
        /// returns a pointer to a specified row.
        RowList::iterator
        getRow(ParagraphList::iterator pit, lyx::pos_type pos) const;
@@ -234,6 +207,13 @@ public:
        RowList::iterator getRow(LyXCursor const & cursor) const;
        /// convenience
        RowList::iterator cursorRow() const;
+       /**
+        * Return the next row, when cursor is at the end of the
+        * previous row, for insets that take a full row.
+        *
+        * FIXME: explain why we need this ? especially for y...
+        */
+       RowList::iterator cursorIRow() const;
 
        /** returns a pointer to the row near the specified y-coordinate
          (relative to the whole text). y is set to the real beginning