mirror of
https://git.lyx.org/repos/lyx.git
synced 2025-01-17 21:36:00 +00:00
Remove duplicate code in TextMetrics::setCursorFromCoordinates
This commit is contained in:
parent
5a1078812e
commit
354d319a5d
@ -1587,35 +1587,15 @@ Inset * TextMetrics::editXY(Cursor & cur, int x, int y)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void TextMetrics::setCursorFromCoordinates(Cursor & cur, int x, int const y)
|
void TextMetrics::setCursorFromCoordinates(Cursor & cur, int x, int y)
|
||||||
{
|
{
|
||||||
LASSERT(text_ == cur.text(), return);
|
LASSERT(text_ == cur.text(), return);
|
||||||
|
|
||||||
pit_type const pit = getPitNearY(y);
|
pit_type const pit = getPitNearY(y);
|
||||||
LASSERT(pit != -1, return);
|
LASSERT(pit != -1, return);
|
||||||
|
|
||||||
ParagraphMetrics const & pm = parMetrics(pit);
|
Row const & row = getRowNearY(y, pit);
|
||||||
|
|
||||||
int yy = pm.position() - pm.rows().front().ascent();
|
|
||||||
LYXERR(Debug::PAINTING, "x: " << x << " y: " << y <<
|
|
||||||
" pit: " << pit << " yy: " << yy);
|
|
||||||
|
|
||||||
int r = 0;
|
|
||||||
LBUFERR(pm.rows().size());
|
|
||||||
for (; r < int(pm.rows().size()) - 1; ++r) {
|
|
||||||
Row const & row = pm.rows()[r];
|
|
||||||
if (yy + row.height() > y)
|
|
||||||
break;
|
|
||||||
yy += row.height();
|
|
||||||
}
|
|
||||||
|
|
||||||
Row const & row = pm.rows()[r];
|
|
||||||
|
|
||||||
LYXERR(Debug::PAINTING, "row " << r << " from pos: " << row.pos());
|
|
||||||
|
|
||||||
auto [pos, bound] = getPosNearX(row, x);
|
auto [pos, bound] = getPosNearX(row, x);
|
||||||
|
|
||||||
LYXERR(Debug::PAINTING, "setting cursor pit: " << pit << " pos: " << pos);
|
|
||||||
|
|
||||||
text_->setCursor(cur, pit, pos, true, bound);
|
text_->setCursor(cur, pit, pos, true, bound);
|
||||||
// remember new position.
|
// remember new position.
|
||||||
cur.setTargetX();
|
cur.setTargetX();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user