From: Abdelrazak Younes Date: Thu, 20 Sep 2007 10:58:38 +0000 (+0000) Subject: Inset coords shall not be recorded in Inset::draw() because this can create problems... X-Git-Tag: 1.6.10~8275 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=4c82dd1fc8d8b90c89a77bfcb3503d1dcae49d94;p=features.git Inset coords shall not be recorded in Inset::draw() because this can create problems with inheritance (which often modify the coords but not the Inset pointer itself). Right now there three kind of inset containers: paragraphs, tables and math arrays. The coords caching is fixed in the first two. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20376 a592a061-630c-0410-9148-cb99ea01b6c8 --- diff --git a/src/insets/InsetCommand.cpp b/src/insets/InsetCommand.cpp index a97b84d2ab..0eb616b423 100644 --- a/src/insets/InsetCommand.cpp +++ b/src/insets/InsetCommand.cpp @@ -71,7 +71,6 @@ bool InsetCommand::setMouseHover(bool mouse_hover) void InsetCommand::draw(PainterInfo & pi, int x, int y) const { - setPosCache(pi, x, y); button_.setRenderState(mouse_hover_); button_.draw(pi, x, y); } diff --git a/src/insets/InsetExternal.cpp b/src/insets/InsetExternal.cpp index ef9afad5f2..547e0c180e 100644 --- a/src/insets/InsetExternal.cpp +++ b/src/insets/InsetExternal.cpp @@ -517,7 +517,6 @@ bool InsetExternal::metrics(MetricsInfo & mi, Dimension & dim) const void InsetExternal::draw(PainterInfo & pi, int x, int y) const { - setPosCache(pi, x, y); renderer_->draw(pi, x, y); } diff --git a/src/insets/InsetFlex.cpp b/src/insets/InsetFlex.cpp index 4ef9581353..47f270cf87 100644 --- a/src/insets/InsetFlex.cpp +++ b/src/insets/InsetFlex.cpp @@ -110,8 +110,6 @@ bool InsetFlex::metrics(MetricsInfo & mi, Dimension & dim) const void InsetFlex::draw(PainterInfo & pi, int x, int y) const { - setPosCache(pi, x, y); - Font tmpfont = pi.base.font; getDrawFont(pi.base.font); // I don't understand why the above .reduce and .realize aren't diff --git a/src/insets/InsetGraphics.cpp b/src/insets/InsetGraphics.cpp index b75fc82def..e3d0fcca2a 100644 --- a/src/insets/InsetGraphics.cpp +++ b/src/insets/InsetGraphics.cpp @@ -268,7 +268,6 @@ bool InsetGraphics::metrics(MetricsInfo & mi, Dimension & dim) const void InsetGraphics::draw(PainterInfo & pi, int x, int y) const { - setPosCache(pi, x, y); graphic_->draw(pi, x, y); } diff --git a/src/insets/InsetInclude.cpp b/src/insets/InsetInclude.cpp index 136c461aac..b1c9a7cbd6 100644 --- a/src/insets/InsetInclude.cpp +++ b/src/insets/InsetInclude.cpp @@ -816,8 +816,6 @@ bool InsetInclude::metrics(MetricsInfo & mi, Dimension & dim) const void InsetInclude::draw(PainterInfo & pi, int x, int y) const { - setPosCache(pi, x, y); - BOOST_ASSERT(pi.base.bv); bool use_preview = false; diff --git a/src/insets/InsetQuotes.cpp b/src/insets/InsetQuotes.cpp index 994d0436ec..fa2558150f 100644 --- a/src/insets/InsetQuotes.cpp +++ b/src/insets/InsetQuotes.cpp @@ -263,7 +263,6 @@ void InsetQuotes::draw(PainterInfo & pi, int x, int y) const } else { pi.pain.text(x, y, text, pi.base.font); } - setPosCache(pi, x, y); } diff --git a/src/insets/InsetTabular.cpp b/src/insets/InsetTabular.cpp index 47c50de74f..285abd2881 100644 --- a/src/insets/InsetTabular.cpp +++ b/src/insets/InsetTabular.cpp @@ -2994,8 +2994,6 @@ bool InsetTabular::metrics(MetricsInfo & mi, Dimension & dim) const void InsetTabular::draw(PainterInfo & pi, int x, int y) const { - setPosCache(pi, x, y); - //lyxerr << "InsetTabular::draw: " << x << " " << y << endl; BufferView * bv = pi.base.bv; @@ -3022,6 +3020,8 @@ void InsetTabular::draw(PainterInfo & pi, int x, int y) const first_visible_cell = idx; int const cx = nx + tabular.getBeginningOfTextInCell(idx); + // Cache the Inset position. + bv->coordCache().insets().add(cell(idx).get(), cx, y); if (nx + tabular.columnWidth(idx) < 0 || nx > bv->workWidth() || y + d < 0 @@ -3047,8 +3047,6 @@ void InsetTabular::draw(PainterInfo & pi, int x, int y) const void InsetTabular::drawSelection(PainterInfo & pi, int x, int y) const { - setPosCache(pi, x, y); - Cursor & cur = pi.base.bv->cursor(); x += scx_ + ADD_TO_TABULAR_WIDTH; diff --git a/src/insets/InsetVSpace.cpp b/src/insets/InsetVSpace.cpp index 4138a66195..43c3bc3d24 100644 --- a/src/insets/InsetVSpace.cpp +++ b/src/insets/InsetVSpace.cpp @@ -146,8 +146,6 @@ bool InsetVSpace::metrics(MetricsInfo & mi, Dimension & dim) const void InsetVSpace::draw(PainterInfo & pi, int x, int y) const { - setPosCache(pi, x, y); - x += ADD_TO_VSPACE_WIDTH; int const start = y - dim_.asc;