From e78b1cf6d7975c0d378810af54edc04f67607f26 Mon Sep 17 00:00:00 2001 From: Bo Peng Date: Fri, 15 Dec 2006 16:48:09 +0000 Subject: [PATCH] BufferView.h/C: use member variable last_inset_ instead of static variable in workAreaDispatch to avoid potential mutliple window problems git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16285 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/BufferView.C | 13 +++++-------- src/BufferView.h | 3 +++ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/BufferView.C b/src/BufferView.C index 2730eea638..4cec12f034 100644 --- a/src/BufferView.C +++ b/src/BufferView.C @@ -125,7 +125,7 @@ BufferView::BufferView() : width_(0), height_(0), buffer_(0), wh_(0), cursor_(*this), multiparsel_cache_(false), anchor_ref_(0), offset_ref_(0), - intl_(new Intl) + intl_(new Intl), last_inset_(NULL) { xsel_cache_.set = false; intl_->initKeyMapper(lyxrc.use_kbmap); @@ -1057,18 +1057,15 @@ bool BufferView::workAreaDispatch(FuncRequest const & cmd0) // 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. - // FIXME (abdel 07/12/06): I don't think the static solution will work in - // a multiple BufferView context. - static InsetBase * last_inset = NULL; if (cmd.action == LFUN_MOUSE_MOTION && cmd.button() == mouse_button::none) { bool need_redraw = false; - if (inset != last_inset) { - if (last_inset) - need_redraw |= last_inset->setMouseHover(false); + if (inset != last_inset_) { + if (last_inset_) + need_redraw |= last_inset_->setMouseHover(false); if (inset) need_redraw |= inset->setMouseHover(true); - last_inset = inset; + last_inset_ = inset; } // if last metrics update was in singlepar mode, WorkArea::redraw() will diff --git a/src/BufferView.h b/src/BufferView.h index 43b1c7455a..d4d6958158 100644 --- a/src/BufferView.h +++ b/src/BufferView.h @@ -278,6 +278,9 @@ private: /// keyboard mapping object. boost::scoped_ptr const intl_; + + /// last visited inset (kept to send setMouseHover(false) + InsetBase * last_inset_; }; -- 2.39.2