From: Abdelrazak Younes Date: Thu, 2 Nov 2006 23:55:49 +0000 (+0000) Subject: Fix multi-window resize bug: X-Git-Tag: 1.6.10~12080 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=352ce035b9453e46280078c60e7e4ecae783dd0d;p=features.git Fix multi-window resize bug: Use case: Two window share the same buffer. The first window is resize. This modify the inner Buffer structure because Paragraph has a notion of line break and thus line width. When switching to the other window which does not have the same size, LyX crashes because the line break is not adapted the this BufferView width. This commit fix the crash by resizing the BufferView on a focusInEvent(). That is not a good fix but it is a fix nevertheless. The bad side effect is that when the two BufferView shows the same portion of the Buffer, the second BufferView will show the same line breaks as the first one even though those line breaks are not adapted to the second BufferView width... such is life! git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15697 a592a061-630c-0410-9148-cb99ea01b6c8 --- diff --git a/src/frontends/qt4/GuiWorkArea.C b/src/frontends/qt4/GuiWorkArea.C index fb8a25df25..942e1f4f19 100644 --- a/src/frontends/qt4/GuiWorkArea.C +++ b/src/frontends/qt4/GuiWorkArea.C @@ -299,6 +299,22 @@ void GuiWorkArea::focusInEvent(QFocusEvent * /*event*/) // in BufferList that could be connected to the different tabbar. lyx_view_.updateTab(); startBlinkingCursor(); + + //FIXME: Use case: Two windows share the same buffer. + // The first window is resize. This modify the inner Buffer + // structure because Paragraph has a notion of line break and + // thus line width (this is very bad!). + // When switching to the other window which does not have the + // same size, LyX crashes because the line break is not adapted + // the this BufferView width. + // The following line fix the crash by resizing the BufferView + // on a focusInEvent(). That is not a good fix but it is a fix + // nevertheless. The bad side effect is that when the two + // BufferViews show the same portion of the Buffer, the second + // BufferView will show the same line breaks as the first one; + // even though those line breaks are not adapted to the second + // BufferView width... such is life! + resizeBufferView(); }