Fix Grid height calculation when HeightMode.ROW (#20104, #20074)
When Grid is inside of a Tab (Tabsheet or Accordion) and
height mode is set to HeightMode.ROW, layout happens
before row height is known. To fix that, an event is fired
and a handler starts a layout after everything is calculated.
Change-Id: I516b09b5a7febc7ab3931fe582752eb5c888e4a8
- new height more for undefined height that works like in Table and
resizes the grid when details row opens or closes
Change-Id: I2dc817140308093865be30de72edcd6494e4a44b
Fixing messed up column in Grid after hide, resize and show (#19826)
When resizing a column in Grid, widths of all columns without
a fixed width (-1) are set to their actual width. This is 0 when
the column is hidden.
Change-Id: If50e71c748cd0674f44d9e51777518eb48b42c5c
Fix WidgetRenderer column cells not correctly init on change (#19086)
When changing to a widget renderer with an existing column, the widget
renderer expects that the cells would be initialized to have a correct
widget for it. Because of original design where you could not change
renderers, this was not taken into account and cells did not get
reinitialized when changing the renderer.
This patch showed another underlying detach problem from removing a
widget renderer and destroying complex renderers. These both are also
addressed to make this bug possible to test correctly.
Patch includes a client-side test that verifies the integrity of the
renderer state in different stages of its lifecycle.
Change-Id: I67330e5d07c95047cb69040e8355a17dc8a96f08
Fix Grid column resize to take account min width for cells (#16597)
Use Escalator cell size calculation without content to determine the
absolute minimum size for cells. This is used in Grid when drag resizing
or sorting columns to prevent cells from overflowing to the next row.
Change-Id: I2d598232d7d2b8729b11fe190b68ca3e42ee3652
Isolate text selection blocking to Grid instead of body element (#16838)
Some themes are more explicit with user-select rules, and doing this on
the level of body element does not work with said themes. To make all
the themes behave the same way, we only block selection inside of Grid.
Change-Id: Iaf24fede88e4bc683e065c214e7baf3f545c99c9
Prevent text selection while DnD resizing columns (#16838)
This patch uses a JavaScript workaround to prevent text selection in IE8
and IE9 and Safari.
The selection is prevented everywhere in the DOM while a column is
resizing.
Change-Id: I1e7b9cdc675c83a9666493d8545337d601e40077
Previously grid sidebar could be partially hidden by
"overflow: hidden" of an ancestor component.
Now it's in an overlay and the hierarchy doesn't affect it.
Grid tests were also updated for new DOM structure.
Change-Id: Ic5fb125d9c097be0f0141c121dfe74d30e650dd0
Calculation of the frozen column width was wrong in multiselect mode.
It did not take into account the last frozen column, but added
the select column twice.
The same problem was in AutoScroller (as the same methods were
copy-pasted there), for which reason the autoscrolling was not
scrolling till the end.
This patch fixes the calculation error and removes copy-pasted code,
reusing the same code in both places.
Change-Id: I164e2fc96688088b620ad8785c533c593723f83e
Add API for setting Grid columns resizable (#16838)
By default columns can be drag-resized by the user. This can be changed on a
column-by-column basis.
Change-Id: I8354e270db9affe865d1444d6cccbe8c839a3b5b