+2000-11-03 Juergen Vigna <jug@sad.it>
+
+ * src/insets/insettabular.h: added fixed number to update codes so
+ that update is only in one direction.
+
+ * src/insets/insettabular.C (UpdateLocal): modified a bit don't think
+ it matters.
+
+ * src/insets/insettext.C (InsetButtonPress): set the_locking_inset
+ before call to edit because of redraw.
+
+ * src/insets/insetcollapsable.C (draw): fixed clearing too much.
+
2000-11-03 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
* lib/ui/default.ui: Populate "edit_float" menu
h = pain.paperHeight();
if ((top_x + w) > pain.paperWidth())
w = pain.paperWidth();
+ if (baseline < 0)
+ h += (baseline - ascent(bv, f));
pain.fillRectangle(tx, ty - 1, w, h + 2);
cleared = true;
}
if (InsetHit(bv, x, y)) {
ActivateCellInset(bv, x, y, button);
}
- UpdateLocal(bv, NONE, false);
+// UpdateLocal(bv, NONE, false);
// bv->getOwner()->getPopups().updateFormTabular();
}
void InsetTabular::UpdateLocal(BufferView * bv, UpdateCodes what,
bool mark_dirty) const
{
- need_update = what;
+ if (need_update < what) // only set this if it has greater update
+ need_update = what;
// Dirty Cast! (Lgb)
- bv->updateInset(const_cast<InsetTabular *>(this), mark_dirty);
- if (locked && (what != NONE))
- resetPos(bv);
+ if (need_update != NONE) {
+ bv->updateInset(const_cast<InsetTabular *>(this), mark_dirty);
+ if (locked) // && (what != NONE))
+ resetPos(bv);
+ }
}
///
enum UpdateCodes {
NONE = 0,
- INIT,
- FULL,
- CELL,
- CURSOR,
- SELECTION
+ CURSOR = 1,
+ CELL = 2,
+ SELECTION = 3,
+ FULL = 4,
+ INIT = 5
};
///
InsetTabular(Buffer const &, int rows = 1, int columns = 1);
the_locking_inset->InsetUnlock(bv);
inset_x = cx(bv) - top_x + drawTextXOffset;
inset_y = cy(bv) + drawTextYOffset;
+ the_locking_inset = static_cast<UpdatableInset*>(inset);
inset->InsetButtonPress(bv, x - inset_x, y - inset_y, button);
inset->Edit(bv, x - inset_x, y - inset_y, button);
if (the_locking_inset) {
inset_y = cy(bv) + drawTextYOffset;
inset_pos = cpos(bv);
inset_par = cpar(bv);
+ the_locking_inset = uinset;
uinset->InsetButtonPress(bv, x - inset_x, y - inset_y, button);
uinset->Edit(bv, x - inset_x, y - inset_y, 0);
// TEXT(bv)->ClearSelection();