mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-27 22:41:09 +00:00
Fix bug 3144 by Richard Heck (slightly modified by me):
http://bugzilla.lyx.org/show_bug.cgi?id=3144 The problem was that we set the cursor even for mouse hover event. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17589 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
7cce9b87f8
commit
41d3486222
@ -277,10 +277,11 @@ bool BufferView::loadLyXFile(FileName const & filename, bool tolastfiles)
|
||||
pit_type pit;
|
||||
pos_type pos;
|
||||
boost::tie(pit, pos) = LyX::ref().session().lastFilePos().load(filename);
|
||||
// if successfully move to pit (returned par_id is not zero), update metrics
|
||||
// if successfully move to pit (returned par_id is not zero), update metrics and reset font
|
||||
if (moveToPosition(pit, 0, pos).get<1>()) {
|
||||
if (fitCursor())
|
||||
updateMetrics(false);
|
||||
buffer_->text().setCurrentFont(cursor_);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1096,21 +1097,19 @@ bool BufferView::workAreaDispatch(FuncRequest const & cmd0)
|
||||
// Either the inset under the cursor or the
|
||||
// surrounding LyXText will handle this event.
|
||||
|
||||
// Build temporary cursor.
|
||||
// make sure we stay within the screen...
|
||||
cmd.y = min(max(cmd.y, -1), height_);
|
||||
InsetBase * inset = buffer_->text().editXY(cur, cmd.x, cmd.y);
|
||||
|
||||
//lyxerr << BOOST_CURRENT_FUNCTION
|
||||
// << " * hit inset at tip: " << inset << endl;
|
||||
//lyxerr << BOOST_CURRENT_FUNCTION
|
||||
// << " * created temp cursor:" << cur << endl;
|
||||
|
||||
// NOTE: editXY returns the top level inset of nested insets. If you happen
|
||||
// to move from a text (inset=0) to a text inside an inset (e.g. an opened
|
||||
// footnote inset, again inset=0), that inset will not be redrawn.
|
||||
|
||||
if (cmd.action == LFUN_MOUSE_MOTION && cmd.button() == mouse_button::none) {
|
||||
|
||||
bool need_redraw = false;
|
||||
|
||||
//Get inset under mouse, if there is one
|
||||
// NOTE: checkInsetHit returns the top level inset of nested insets.
|
||||
// If you happen to move from a text (inset=0) to a text inside an inset
|
||||
// (e.g. an opened footnote inset, again inset=0), that inset will not
|
||||
// be redrawn.
|
||||
InsetBase * inset = buffer_->text().checkInsetHit(cur.bv(), cmd.x, cmd.y);
|
||||
if (inset != last_inset_) {
|
||||
if (last_inset_)
|
||||
need_redraw |= last_inset_->setMouseHover(false);
|
||||
@ -1151,6 +1150,12 @@ bool BufferView::workAreaDispatch(FuncRequest const & cmd0)
|
||||
// This should be changed if it is further utilized.
|
||||
return need_redraw;
|
||||
}
|
||||
|
||||
// Build temporary cursor.
|
||||
// NOTE: editXY returns the top level inset of nested insets. If you happen
|
||||
// to move from a text (inset=0) to a text inside an inset (e.g. an opened
|
||||
// footnote inset, again inset=0), that inset will not be redrawn.
|
||||
InsetBase * inset = buffer_->text().editXY(cur, cmd.x, cmd.y);
|
||||
|
||||
// Put anchor at the same position.
|
||||
cur.resetAnchor();
|
||||
|
Loading…
Reference in New Issue
Block a user