]> git.lyx.org Git - lyx.git/blobdiff - src/screen.C
citation patch from Angus
[lyx.git] / src / screen.C
index 621e0b4cfe48b70b2592655ab0d512020e891bcc..38effb1e19b64b285c19f72be1e8c128f4772644 100644 (file)
@@ -47,7 +47,7 @@ GC createGC()
 
 // Constructor
 LyXScreen::LyXScreen(WorkArea & o) //, LyXText * text_ptr)
-       : owner(o) //, text(text_ptr)
+       : owner(o), force_clear(true) //, text(text_ptr)
 {
        // the cursor isnt yet visible
        cursor_visible = false;
@@ -108,7 +108,8 @@ void LyXScreen::DrawFromTo(LyXText * text, int y1, int y2, int y_offset, int x_o
                y += row->height();
                row = row->next();
        }
-   
+       force_clear = false;
+
        // maybe we have to clear the screen at the bottom
        if ((y < y2) && text->bv_owner) {
                owner.getPainter().fillRectangle(0, y,
@@ -135,6 +136,7 @@ void LyXScreen::DrawOneRow(LyXText * text, Row * row, long y_text,
                } while (text->status == LyXText::CHANGED_IN_DRAW);
                text->status = st;
        }
+       force_clear = false;
 }
 
 
@@ -425,7 +427,8 @@ void LyXScreen::Update(LyXText * text, int y_offset, int x_offset)
 }
 
 
-void LyXScreen::ToggleSelection(LyXText * text, bool kill_selection)
+void LyXScreen::ToggleSelection(LyXText * text,  bool kill_selection,
+                               int y_offset, int x_offset)
 {
        // only if there is a selection
        if (!text->selection) return;
@@ -440,7 +443,8 @@ void LyXScreen::ToggleSelection(LyXText * text, bool kill_selection)
 
        if (kill_selection)
                text->selection = 0;
-       DrawFromTo(text, top - text->first, bottom - text->first);
+       DrawFromTo(text, top - text->first, bottom - text->first,
+                  y_offset, x_offset);
        expose(0, top - text->first,
               owner.workWidth(),
               bottom - text->first - (top - text->first));
@@ -463,7 +467,7 @@ void LyXScreen::ToggleToggle(LyXText * text, int y_offset, int x_offset)
        
        bottom = min(max(ulong(bottom), text->first), text->first + owner.height());
        top = min(max(ulong(top), text->first), text->first + owner.height());
-       
+
        DrawFromTo(text, top - text->first, bottom - text->first, y_offset,
                   x_offset);
        expose(0, top - text->first, owner.workWidth(),