+2000-08-25 Juergen Vigna <jug@sad.it>
+
+ * src/lyxscreen.h: add force_clear variable and fuction to force
+ a clear area when redrawing in LyXText.
+
+ * src/text.C (GetVisibleRow): look if the screen forces a redraw.
+
2000-08-25 Lars Gullik Bjønnes <larsbj@lyx.org>
* some whitespace and comment changes.
Painter painter_;
///
FL_OBJECT * figinset_canvas;
+ /// if we call redraw with true needed for locking-insets
+ bool screen_cleared;
};
#endif
show_treeview=true
header_file=Untitled.h
cpp_file=Untitled.cpp
-browser_file=file:/usr/doc/qt1x-devel-1.45/qimageio.html
+browser_file=file:/usr/doc/qt1x-devel-1.45/qlistbox.html
[formcopyright.C]
install_location=
dist=true
If text->status is LyXText::NEED_VERY_LITTLE_REFRESH,
we only update the current row. */
void Update(LyXText *, int y_offset=0, int x_offset=0);
+ ///
+ bool forceClear() const { return force_clear; }
///
bool cursor_visible;
int cursor_pixmap_h;
///
GC gc_copy;
+ ///
+ bool force_clear;
};
#endif
// 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;
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,
} while (text->status == LyXText::CHANGED_IN_DRAW);
text->status = st;
}
+ force_clear = false;
}
#include "tracer.h"
#include "font.h"
#include "encoding.h"
+#include "lyxscreen.h"
using std::max;
using std::min;
bool clear_area = true;
Inset * inset = 0;
- if ((last == row_ptr->pos()) &&
+ if (!bview->screen()->forceClear() && (last == row_ptr->pos()) &&
(row_ptr->par()->GetChar(row_ptr->pos()) == LyXParagraph::META_INSET) &&
(inset = row_ptr->par()->GetInset(row_ptr->pos()))) {
clear_area = inset->doClearArea();
}
- if (cleared) { // we don't need to clear it's already done!!!
+ // we don't need to clear it's already done!!!
+ if (cleared) {
clear_area = true;
} else if (clear_area) {
int w = (inset_owner ? inset_owner->width(bview, font) : ww);