^ now copies selection into new scriptinset

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@2324 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
André Pönitz 2001-07-24 16:10:17 +00:00
parent fd054e60b1
commit c1bd906202
4 changed files with 20 additions and 29 deletions

View File

@ -8,6 +8,8 @@
* formulabase.C: fix memory leak * formulabase.C: fix memory leak
* math_cursor.C: ^ now copies selection into new srriptinset
2001-07-22 Jean-Marc Lasgouttes <lasgouttes@lyx.org> 2001-07-22 Jean-Marc Lasgouttes <lasgouttes@lyx.org>
* formula.C (insetAllowed): allow insertion of label * formula.C (insetAllowed): allow insertion of label

View File

@ -151,15 +151,15 @@ void MathArray::setCode(int pos, MathTextCodes t)
} }
void MathArray::insert(int pos, MathInset * p) void MathArray::replace(int pos, MathInset * p)
{ {
bf_.insert(bf_.begin() + pos, 2 + sizeof(p), LM_TC_INSET);
memcpy(&bf_[pos + 1], &p, sizeof(p)); memcpy(&bf_[pos + 1], &p, sizeof(p));
} }
void MathArray::replace(int pos, MathInset * p) void MathArray::insert(int pos, MathInset * p)
{ {
bf_.insert(bf_.begin() + pos, 2 + sizeof(p), LM_TC_INSET);
memcpy(&bf_[pos + 1], &p, sizeof(p)); memcpy(&bf_[pos + 1], &p, sizeof(p));
} }

View File

@ -628,29 +628,23 @@ void MathCursor::Interpret(string const & s)
lyxerr << "Interpret: '" << s << "' ('" << s.substr(0, 7) << "' " << lyxerr << "Interpret: '" << s << "' ('" << s.substr(0, 7) << "' " <<
in_word_set(s) << " \n"; in_word_set(s) << " \n";
if (s[0] == '^') { if (s[0] == '^' || s[0] == '_') {
MathUpDownInset * p = nearbyUpDownInset(); bool const up = (s[0] == '^');
SelCut();
MathUpDownInset * p = prevUpDownInset();
if (!p) { if (!p) {
p = new MathScriptInset(true, false); p = new MathScriptInset(up, !up);
insert(p); insert(p);
plainLeft(); plainLeft();
} }
push(p, true); push(p, true);
p->up(true); if (up)
cursor().idx_ = 0; p->up(true);
return; else
} p->down(true);
cursor().idx_ = up ? 0 : 1;
if (s[0] == '_') { cursor().pos_ = 0;
MathUpDownInset * p = nearbyUpDownInset(); SelPaste();
if (!p) {
p = new MathScriptInset(false, true);
insert(p);
plainLeft();
}
push(p, true);
p->down(true);
cursor().idx_ = 1;
return; return;
} }
@ -1103,16 +1097,11 @@ MathInset * MathCursor::nextInset() const
} }
MathUpDownInset * MathCursor::nearbyUpDownInset() const MathUpDownInset * MathCursor::prevUpDownInset() const
{ {
normalize(); normalize();
MathInset * p = array().prevInset(cursor().pos_); MathInset * p = array().prevInset(cursor().pos_);
if (p && p->isUpDownInset()) return (p && p->isUpDownInset()) ? static_cast<MathUpDownInset *>(p) : 0;
return static_cast<MathUpDownInset *>(p);
//p = array().nextInset(cursor().pos_);
//if (p && p->isUpDownInset())
// return static_cast<MathUpDownInset *>(p);
return 0;
} }

View File

@ -258,7 +258,7 @@ public:
/// ///
MathInset * prevInset() const; MathInset * prevInset() const;
/// ///
MathUpDownInset * nearbyUpDownInset() const; MathUpDownInset * prevUpDownInset() const;
/// ///
MathFuncInset * imacro; MathFuncInset * imacro;