mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-09 18:31:04 +00:00
Fix crash in brutefind2() when the inset was not in the coordcache.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16079 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
64ec49d001
commit
7d192a2797
16
src/cursor.C
16
src/cursor.C
@ -49,6 +49,7 @@
|
|||||||
|
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
#include <limits>
|
#include <limits>
|
||||||
|
#include <map>
|
||||||
|
|
||||||
namespace lyx {
|
namespace lyx {
|
||||||
|
|
||||||
@ -96,7 +97,20 @@ namespace {
|
|||||||
int xo;
|
int xo;
|
||||||
int yo;
|
int yo;
|
||||||
InsetBase const * inset = &it.inset();
|
InsetBase const * inset = &it.inset();
|
||||||
Point o = c.bv().coordCache().getInsets().xy(inset);
|
std::map<InsetBase const *, Point> const & data =
|
||||||
|
c.bv().coordCache().getInsets().getData();
|
||||||
|
std::map<InsetBase const *, Point>::const_iterator I = data.find(inset);
|
||||||
|
|
||||||
|
// FIXME: in the case where the inset is not in the cache, this
|
||||||
|
// means that no part of it is visible on screen. In this case
|
||||||
|
// we don't do elaborate search and we just return the forwarded
|
||||||
|
// DocIterator at its beginning.
|
||||||
|
if (I == data.end()) {
|
||||||
|
it.top().pos() = 0;
|
||||||
|
return it;
|
||||||
|
}
|
||||||
|
|
||||||
|
Point o = I->second;
|
||||||
inset->cursorPos(c.bv(), it.top(), c.boundary(), xo, yo);
|
inset->cursorPos(c.bv(), it.top(), c.boundary(), xo, yo);
|
||||||
// Convert to absolute
|
// Convert to absolute
|
||||||
xo += o.x_;
|
xo += o.x_;
|
||||||
|
Loading…
Reference in New Issue
Block a user