commit a879bc257519f030322d8d99643ccf3e52c1b62e
Author: Jean-Marc Lasgouttes <lasgout...@lyx.org>
Date:   Fri Apr 22 12:11:00 2016 +0200

    Fix horizontal scrolling in full-width collapsable insets
    
    While a one paragraph large collapsable inset (containing for example a 
tabular) could be very wide and trigger horizontal scrolling, the code that 
makes collapsable insets wide when they contain several paragraphs would 
actually make them narrower in this case.
    
    Typical example is a wide tabular and a caption in a table float, where 
horizontal scrolling would not trigger.

diff --git a/src/TextMetrics.cpp b/src/TextMetrics.cpp
index 810b21a..816f4ba 100644
--- a/src/TextMetrics.cpp
+++ b/src/TextMetrics.cpp
@@ -448,7 +448,7 @@ bool TextMetrics::redoParagraph(pit_type const pit)
                setRowHeight(row, pit);
                row.setChanged(false);
                if (row_index || row.endpos() < par.size()
-                       || (row.right_boundary() && par.inInset().lyxCode() != 
CELL_CODE))
+                   || (row.right_boundary() && par.inInset().lyxCode() != 
CELL_CODE)) {
                        /* If there is more than one row or the row has been
                         * broken by a display inset or a newline, expand the 
text
                         * to the full allowable width. This setting here is
@@ -458,7 +458,9 @@ bool TextMetrics::redoParagraph(pit_type const pit)
                         * that, and it triggers when using a caption in a
                         * longtable (see bugs #9945 and #9757).
                         */
-                       dim_.wid = max_width_;
+                       if (dim_.wid < max_width_)
+                               dim_.wid = max_width_;
+               }
                int const max_row_width = max(dim_.wid, row.width());
                computeRowMetrics(pit, row, max_row_width);
                first = row.endpos();

Reply via email to