mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-09 18:31:04 +00:00
LyXCursor::x_fix -> BufferView::x_target
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@8026 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
5adaa51785
commit
49e5945ce4
@ -56,7 +56,8 @@ extern BufferList bufferlist;
|
|||||||
|
|
||||||
BufferView::BufferView(LyXView * owner, int xpos, int ypos,
|
BufferView::BufferView(LyXView * owner, int xpos, int ypos,
|
||||||
int width, int height)
|
int width, int height)
|
||||||
: pimpl_(new Pimpl(this, owner, xpos, ypos, width, height))
|
: pimpl_(new Pimpl(this, owner, xpos, ypos, width, height)),
|
||||||
|
x_target_(0)
|
||||||
{
|
{
|
||||||
text = 0;
|
text = 0;
|
||||||
}
|
}
|
||||||
@ -580,3 +581,15 @@ int BufferView::workHeight() const
|
|||||||
{
|
{
|
||||||
return pimpl_->workarea().workHeight();
|
return pimpl_->workarea().workHeight();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void BufferView::x_target(int x)
|
||||||
|
{
|
||||||
|
x_target_ = x;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int BufferView::x_target() const
|
||||||
|
{
|
||||||
|
return x_target_;
|
||||||
|
}
|
||||||
|
@ -202,6 +202,11 @@ public:
|
|||||||
/// execute the given function
|
/// execute the given function
|
||||||
bool dispatch(FuncRequest const & argument);
|
bool dispatch(FuncRequest const & argument);
|
||||||
|
|
||||||
|
/// set target x position of cursor
|
||||||
|
void BufferView::x_target(int x);
|
||||||
|
/// return target x position of cursor
|
||||||
|
int BufferView::x_target() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/// Set the current locking inset
|
/// Set the current locking inset
|
||||||
void theLockingInset(UpdatableInset * inset);
|
void theLockingInset(UpdatableInset * inset);
|
||||||
@ -210,6 +215,21 @@ private:
|
|||||||
friend struct BufferView::Pimpl;
|
friend struct BufferView::Pimpl;
|
||||||
|
|
||||||
Pimpl * pimpl_;
|
Pimpl * pimpl_;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The target x position of the cursor. This is used for when
|
||||||
|
* we have text like :
|
||||||
|
*
|
||||||
|
* blah blah blah blah| blah blah blah
|
||||||
|
* blah blah blah
|
||||||
|
* blah blah blah blah blah blah
|
||||||
|
*
|
||||||
|
* When we move onto row 3, we would like to be vertically aligned
|
||||||
|
* with where we were in row 1, despite the fact that row 2 is
|
||||||
|
* shorter than x()
|
||||||
|
*/
|
||||||
|
int x_target_;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // BUFFERVIEW_H
|
#endif // BUFFERVIEW_H
|
||||||
|
@ -50,6 +50,13 @@
|
|||||||
* buffer.h:
|
* buffer.h:
|
||||||
* bufferview_funcs.C: remove getInsetFromId()
|
* bufferview_funcs.C: remove getInsetFromId()
|
||||||
|
|
||||||
|
* lyxcursor.[Ch]:
|
||||||
|
* BufferView.[Ch]: move x_fix from LyXCursor to BufferView
|
||||||
|
|
||||||
|
* lyxfunc.C:
|
||||||
|
* text2.C:
|
||||||
|
* text3.C: adjust
|
||||||
|
|
||||||
2003-11-03 Alfredo Braunstein <abraunst@libero.it>
|
2003-11-03 Alfredo Braunstein <abraunst@libero.it>
|
||||||
|
|
||||||
* PosIterator.C (distance, advance): new
|
* PosIterator.C (distance, advance): new
|
||||||
|
@ -512,7 +512,7 @@ void InsetText::lfunMousePress(FuncRequest const & cmd)
|
|||||||
text_.setCursorFromCoordinates(cmd.x, cmd.y + dim_.asc);
|
text_.setCursorFromCoordinates(cmd.x, cmd.y + dim_.asc);
|
||||||
// set the selection cursor!
|
// set the selection cursor!
|
||||||
text_.selection.cursor = text_.cursor;
|
text_.selection.cursor = text_.cursor;
|
||||||
text_.cursor.x_fix(text_.cursor.x());
|
bv->x_target(text_.cursor.x());
|
||||||
|
|
||||||
text_.clearSelection();
|
text_.clearSelection();
|
||||||
updateLocal(bv, false);
|
updateLocal(bv, false);
|
||||||
@ -584,7 +584,7 @@ void InsetText::lfunMouseMotion(FuncRequest const & cmd)
|
|||||||
BufferView * bv = cmd.view();
|
BufferView * bv = cmd.view();
|
||||||
LyXCursor cur = text_.cursor;
|
LyXCursor cur = text_.cursor;
|
||||||
text_.setCursorFromCoordinates (cmd.x, cmd.y + dim_.asc);
|
text_.setCursorFromCoordinates (cmd.x, cmd.y + dim_.asc);
|
||||||
text_.cursor.x_fix(text_.cursor.x());
|
bv->x_target(text_.cursor.x());
|
||||||
if (cur == text_.cursor)
|
if (cur == text_.cursor)
|
||||||
return;
|
return;
|
||||||
text_.setSelection();
|
text_.setSelection();
|
||||||
@ -632,7 +632,7 @@ InsetText::priv_dispatch(FuncRequest const & cmd,
|
|||||||
if (!checkAndActivateInset(bv, cmd.x, tmp_y, mouse_button::none)) {
|
if (!checkAndActivateInset(bv, cmd.x, tmp_y, mouse_button::none)) {
|
||||||
text_.setCursorFromCoordinates(cmd.x, cmd.y + dim_.asc);
|
text_.setCursorFromCoordinates(cmd.x, cmd.y + dim_.asc);
|
||||||
text_.cursor.x(text_.cursor.x());
|
text_.cursor.x(text_.cursor.x());
|
||||||
text_.cursor.x_fix(text_.cursor.x());
|
bv->x_target(text_.cursor.x());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
|
|
||||||
LyXCursor::LyXCursor()
|
LyXCursor::LyXCursor()
|
||||||
: par_(-1), pos_(0), boundary_(false), x_(0), x_fix_(0), y_(0)
|
: par_(-1), pos_(0), boundary_(false), x_(0), y_(0)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -62,24 +62,13 @@ void LyXCursor::x(int n)
|
|||||||
x_ = n;
|
x_ = n;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int LyXCursor::x() const
|
int LyXCursor::x() const
|
||||||
{
|
{
|
||||||
return x_;
|
return x_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void LyXCursor::x_fix(int i)
|
|
||||||
{
|
|
||||||
x_fix_ = i;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int LyXCursor::x_fix() const
|
|
||||||
{
|
|
||||||
return x_fix_;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void LyXCursor::y(int i)
|
void LyXCursor::y(int i)
|
||||||
{
|
{
|
||||||
y_ = i;
|
y_ = i;
|
||||||
|
@ -45,21 +45,6 @@ public:
|
|||||||
void x(int i);
|
void x(int i);
|
||||||
/// return the x position in pixels
|
/// return the x position in pixels
|
||||||
int x() const;
|
int x() const;
|
||||||
/// set the cached x position
|
|
||||||
void x_fix(int i);
|
|
||||||
/**
|
|
||||||
* Return the cached x position of the cursor. This is used for when
|
|
||||||
* we have text like :
|
|
||||||
*
|
|
||||||
* blah blah blah blah| blah blah blah
|
|
||||||
* blah blah blah
|
|
||||||
* blah blah blah blah blah blah
|
|
||||||
*
|
|
||||||
* When we move onto row 3, we would like to be vertically aligned
|
|
||||||
* with where we were in row 1, despite the fact that row 2 is
|
|
||||||
* shorter than x()
|
|
||||||
*/
|
|
||||||
int x_fix() const;
|
|
||||||
/// set the y position in pixels
|
/// set the y position in pixels
|
||||||
void y(int i);
|
void y(int i);
|
||||||
/// return the y position in pixels
|
/// return the y position in pixels
|
||||||
@ -88,8 +73,6 @@ private:
|
|||||||
bool boundary_;
|
bool boundary_;
|
||||||
/// the pixel x position
|
/// the pixel x position
|
||||||
int x_;
|
int x_;
|
||||||
/// the cached x position
|
|
||||||
int x_fix_;
|
|
||||||
/// the pixel y position
|
/// the pixel y position
|
||||||
int y_;
|
int y_;
|
||||||
};
|
};
|
||||||
|
@ -972,7 +972,7 @@ void LyXFunc::dispatch(FuncRequest const & func, bool verbose)
|
|||||||
text->cursor.x() + inset_x,
|
text->cursor.x() + inset_x,
|
||||||
text->cursor.y() -
|
text->cursor.y() -
|
||||||
row.baseline() - 1);
|
row.baseline() - 1);
|
||||||
text->cursor.x_fix(text->cursor.x());
|
view()->x_target(text->cursor.x());
|
||||||
#else
|
#else
|
||||||
text->cursorUp(view());
|
text->cursorUp(view());
|
||||||
#endif
|
#endif
|
||||||
@ -995,7 +995,7 @@ void LyXFunc::dispatch(FuncRequest const & func, bool verbose)
|
|||||||
text->cursor.y() -
|
text->cursor.y() -
|
||||||
row.baseline() +
|
row.baseline() +
|
||||||
row.height() + 1);
|
row.height() + 1);
|
||||||
text->cursor.x_fix(text->cursor.x());
|
view()->x_target(text->cursor.x());
|
||||||
#else
|
#else
|
||||||
text->cursorDown(view());
|
text->cursorDown(view());
|
||||||
#endif
|
#endif
|
||||||
|
13
src/text2.C
13
src/text2.C
@ -1339,9 +1339,8 @@ void LyXText::setCursor(LyXCursor & cur, paroffset_type par,
|
|||||||
BOOST_ASSERT(false);
|
BOOST_ASSERT(false);
|
||||||
}
|
}
|
||||||
// now get the cursors x position
|
// now get the cursors x position
|
||||||
float x = getCursorX(pit, row, pos, boundary);
|
cur.x(int(getCursorX(pit, row, pos, boundary)));
|
||||||
cur.x(int(x));
|
bv()->x_target(cur.x());
|
||||||
cur.x_fix(cur.x());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1620,7 +1619,7 @@ void LyXText::cursorUp(bool selecting)
|
|||||||
ParagraphList::iterator cpit = cursorPar();
|
ParagraphList::iterator cpit = cursorPar();
|
||||||
Row const & crow = *cpit->getRow(cursor.pos());
|
Row const & crow = *cpit->getRow(cursor.pos());
|
||||||
#if 1
|
#if 1
|
||||||
int x = cursor.x_fix();
|
int x = bv()->x_target();
|
||||||
int y = cursor.y() - crow.baseline() - 1;
|
int y = cursor.y() - crow.baseline() - 1;
|
||||||
setCursorFromCoordinates(x, y);
|
setCursorFromCoordinates(x, y);
|
||||||
if (!selecting) {
|
if (!selecting) {
|
||||||
@ -1637,7 +1636,7 @@ void LyXText::cursorUp(bool selecting)
|
|||||||
#else
|
#else
|
||||||
lyxerr << "cursorUp: y " << cursor.y() << " bl: " <<
|
lyxerr << "cursorUp: y " << cursor.y() << " bl: " <<
|
||||||
crow.baseline() << endl;
|
crow.baseline() << endl;
|
||||||
setCursorFromCoordinates(cursor.x_fix(),
|
setCursorFromCoordinates(bv()->x_target(),
|
||||||
cursor.y() - crow.baseline() - 1);
|
cursor.y() - crow.baseline() - 1);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@ -1648,7 +1647,7 @@ void LyXText::cursorDown(bool selecting)
|
|||||||
ParagraphList::iterator cpit = cursorPar();
|
ParagraphList::iterator cpit = cursorPar();
|
||||||
Row const & crow = *cpit->getRow(cursor.pos());
|
Row const & crow = *cpit->getRow(cursor.pos());
|
||||||
#if 1
|
#if 1
|
||||||
int x = cursor.x_fix();
|
int x = bv()->x_target();
|
||||||
int y = cursor.y() - crow.baseline() + crow.height() + 1;
|
int y = cursor.y() - crow.baseline() + crow.height() + 1;
|
||||||
setCursorFromCoordinates(x, y);
|
setCursorFromCoordinates(x, y);
|
||||||
if (!selecting) {
|
if (!selecting) {
|
||||||
@ -1663,7 +1662,7 @@ void LyXText::cursorDown(bool selecting)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
setCursorFromCoordinates(cursor.x_fix(),
|
setCursorFromCoordinates(bv()->x_target(),
|
||||||
cursor.y() - crow.baseline() + crow.height() + 1);
|
cursor.y() - crow.baseline() + crow.height() + 1);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -260,7 +260,7 @@ void LyXText::cursorPrevious()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
setCursorFromCoordinates(cursor.x_fix(), y);
|
setCursorFromCoordinates(bv()->x_target(), y);
|
||||||
finishUndo();
|
finishUndo();
|
||||||
|
|
||||||
if (crit == bv()->text->cursorRow()) {
|
if (crit == bv()->text->cursorRow()) {
|
||||||
@ -313,7 +313,7 @@ void LyXText::cursorNext()
|
|||||||
Row const & rr = *getRowNearY(y, dummypit);
|
Row const & rr = *getRowNearY(y, dummypit);
|
||||||
y = dummypit->y + rr.y_offset();
|
y = dummypit->y + rr.y_offset();
|
||||||
|
|
||||||
setCursorFromCoordinates(cursor.x_fix(), y);
|
setCursorFromCoordinates(bv()->x_target(), y);
|
||||||
// + bv->workHeight());
|
// + bv->workHeight());
|
||||||
finishUndo();
|
finishUndo();
|
||||||
|
|
||||||
@ -1326,7 +1326,7 @@ DispatchResult LyXText::dispatch(FuncRequest const & cmd)
|
|||||||
bv->text->setCursorFromCoordinates(x, y + screen_first);
|
bv->text->setCursorFromCoordinates(x, y + screen_first);
|
||||||
finishUndo();
|
finishUndo();
|
||||||
bv->text->selection.cursor = bv->text->cursor;
|
bv->text->selection.cursor = bv->text->cursor;
|
||||||
bv->text->cursor.x_fix(bv->text->cursor.x());
|
bv->x_target(bv->text->cursor.x());
|
||||||
|
|
||||||
if (bv->fitCursor())
|
if (bv->fitCursor())
|
||||||
selection_possible = false;
|
selection_possible = false;
|
||||||
|
Loading…
Reference in New Issue
Block a user