mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-23 21:40:19 +00:00
augment global cursor by a slice a the bottom for the main text
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@8335 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
97901b5d51
commit
4b8c9ebca8
30
src/cursor.C
30
src/cursor.C
@ -42,7 +42,7 @@ std::ostream & operator<<(std::ostream & os, LCursor const & cursor)
|
|||||||
|
|
||||||
|
|
||||||
LCursor::LCursor(BufferView * bv)
|
LCursor::LCursor(BufferView * bv)
|
||||||
: bv_(bv)
|
: data_(1), bv_(bv)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -51,7 +51,7 @@ DispatchResult LCursor::dispatch(FuncRequest const & cmd0)
|
|||||||
lyxerr << "\nLCursor::dispatch: " << *this << endl;
|
lyxerr << "\nLCursor::dispatch: " << *this << endl;
|
||||||
FuncRequest cmd = cmd0;
|
FuncRequest cmd = cmd0;
|
||||||
|
|
||||||
for (int i = data_.size() - 1; i >= 0; --i) {
|
for (int i = data_.size() - 1; i >= 1; --i) {
|
||||||
CursorSlice const & citem = data_[i];
|
CursorSlice const & citem = data_[i];
|
||||||
lyxerr << "trying to dispatch to inset " << citem.inset_ << endl;
|
lyxerr << "trying to dispatch to inset " << citem.inset_ << endl;
|
||||||
DispatchResult res = citem.inset_->dispatch(cmd);
|
DispatchResult res = citem.inset_->dispatch(cmd);
|
||||||
@ -105,10 +105,11 @@ void LCursor::push(UpdatableInset * inset)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void LCursor::pop(int depth)
|
void LCursor::pop(int depth)
|
||||||
{
|
{
|
||||||
lyxerr << "LCursor::pop() to " << depth << endl;
|
lyxerr << "LCursor::pop() to " << depth << endl;
|
||||||
while (depth < data_.size()) {
|
while (data.size() > 1 && depth < data_.size()) {
|
||||||
lyxerr << "LCursor::pop a level " << endl;
|
lyxerr << "LCursor::pop a level " << endl;
|
||||||
data_.pop_back();
|
data_.pop_back();
|
||||||
}
|
}
|
||||||
@ -119,7 +120,7 @@ void LCursor::pop()
|
|||||||
{
|
{
|
||||||
lyxerr << "LCursor::pop() " << endl;
|
lyxerr << "LCursor::pop() " << endl;
|
||||||
//BOOST_ASSERT(!data_.empty());
|
//BOOST_ASSERT(!data_.empty());
|
||||||
if (data_.empty())
|
if (data_.size() <= 1)
|
||||||
lyxerr << "### TRYING TO POP FROM EMPTY CURSOR" << endl;
|
lyxerr << "### TRYING TO POP FROM EMPTY CURSOR" << endl;
|
||||||
else
|
else
|
||||||
data_.pop_back();
|
data_.pop_back();
|
||||||
@ -128,16 +129,16 @@ void LCursor::pop()
|
|||||||
|
|
||||||
UpdatableInset * LCursor::innerInset() const
|
UpdatableInset * LCursor::innerInset() const
|
||||||
{
|
{
|
||||||
return data_.empty() ? 0 : data_.back().asUpdatableInset();
|
return data_.size() <= 1 ? 0 : data_.back().asUpdatableInset();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
LyXText * LCursor::innerText() const
|
LyXText * LCursor::innerText() const
|
||||||
{
|
{
|
||||||
if (!data_.empty()) {
|
if (data_.size() > 1) {
|
||||||
// go up until first non-0 text is hit
|
// go up until first non-0 text is hit
|
||||||
// (innermost text is 0 e.g. for mathed and the outer tabular level)
|
// (innermost text is 0 e.g. for mathed and the outer tabular level)
|
||||||
for (int i = data_.size() - 1; i >= 0; --i)
|
for (int i = data_.size() - 1; i >= 1; --i)
|
||||||
if (data_[i].text())
|
if (data_[i].text())
|
||||||
return data_[i].text();
|
return data_[i].text();
|
||||||
}
|
}
|
||||||
@ -147,7 +148,7 @@ LyXText * LCursor::innerText() const
|
|||||||
|
|
||||||
void LCursor::updatePos()
|
void LCursor::updatePos()
|
||||||
{
|
{
|
||||||
if (!data_.empty())
|
if (data_.size() > 1)
|
||||||
cached_y_ = bv_->top_y() + innerInset()->y();
|
cached_y_ = bv_->top_y() + innerInset()->y();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -167,7 +168,7 @@ void LCursor::getDim(int & asc, int & desc) const
|
|||||||
|
|
||||||
void LCursor::getPos(int & x, int & y) const
|
void LCursor::getPos(int & x, int & y) const
|
||||||
{
|
{
|
||||||
if (data_.empty()) {
|
if (data_.size() <= 1) {
|
||||||
x = bv_->text()->cursorX();
|
x = bv_->text()->cursorX();
|
||||||
y = bv_->text()->cursorY();
|
y = bv_->text()->cursorY();
|
||||||
// y -= bv_->top_y();
|
// y -= bv_->top_y();
|
||||||
@ -190,7 +191,7 @@ void LCursor::getPos(int & x, int & y) const
|
|||||||
|
|
||||||
UpdatableInset * LCursor::innerInsetOfType(int code) const
|
UpdatableInset * LCursor::innerInsetOfType(int code) const
|
||||||
{
|
{
|
||||||
for (int i = data_.size() - 1; i >= 0; --i)
|
for (int i = data_.size() - 1; i >= 1; --i)
|
||||||
if (data_[i].asUpdatableInset()->lyxCode() == code)
|
if (data_[i].asUpdatableInset()->lyxCode() == code)
|
||||||
return data_[i].asUpdatableInset();
|
return data_[i].asUpdatableInset();
|
||||||
return 0;
|
return 0;
|
||||||
@ -206,22 +207,13 @@ InsetTabular * LCursor::innerInsetTabular() const
|
|||||||
|
|
||||||
void LCursor::cell(int idx)
|
void LCursor::cell(int idx)
|
||||||
{
|
{
|
||||||
#if 0
|
|
||||||
BOOST_ASSERT(!data_.empty());
|
BOOST_ASSERT(!data_.empty());
|
||||||
data_.back().idx_ = idx;
|
data_.back().idx_ = idx;
|
||||||
#else
|
|
||||||
if (!data_.empty())
|
|
||||||
data_.back().idx_ = idx;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int LCursor::cell() const
|
int LCursor::cell() const
|
||||||
{
|
{
|
||||||
#if 0
|
|
||||||
BOOST_ASSERT(!data_.empty());
|
BOOST_ASSERT(!data_.empty());
|
||||||
return data_.back().idx_;
|
return data_.back().idx_;
|
||||||
#else
|
|
||||||
return data_.empty() ? 0 : data_.back().idx_;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user