Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- fix bug in columnpicker: column select menu would list all columns …
…twice. - adjusted setActiveCellInternal() and gotoCell() interface: instead of multiple boolean parameters, now a single settings object is passed in: examples have been adjusted accordingly. This makes the latter public API (and the setActiveCellInternal() internal API as well) behave more in line with 'explaining variables' best practices: see also http://blog.ometer.com/2011/01/20/boolean-parameters-are-wrong/ & http://programmers.stackexchange.com/questions/161970/is-defining-a-variable-to-name-a-method-argument-a-good-practice & http://programmers.stackexchange.com/questions/147977/is-it-wrong-to-use-a-boolean-parameter-to-determine-behavior & http://martinfowler.com/bliki/FlagArgument.html - reorganized the LESS theme file: `prefix &` appender usage is great ( https://github.com/SomMeri/less4j/wiki/Less-language-Nesting#appender & http://blog.slaks.net/2013-09-29/less-css-secrets-of-the-ampersand/ ) but we cannot use it ( thanks to there being no movement on less/less.js#1075 to allow producing any kind of 'reduced' parent selector ) - the `slick-row` and `slick-cell` rules have been adjusted to ensure a `selected` or `active` row and cell is now visible - also note that in relation to the above item, several fixes have been applied as the new colspan/rowspan feature implies that your `active` row (`activePosY`) is not necessarily identical to the `activeRow` of your `activeCellNode`: hence both navigation code and CSS styling now do not expect the `active-row` to always be the `activeRow` row: you may observe this corrected behaviour in the examples/example-0042-row-span.html example when navigating the grid: rowspanning cells can be 'active' while the actual 'active row' (tracked by `activePosY`) is not the top row of the current rowspanning cell: go to row 7 in the example and navigate left and right to observe that these new fixes now ensure that you stay on row 7 instead of being 'pulled up' to the top row of each of the rowspanning cells that you will visit and 'activate' while navigating left & right on that row. - some examples showed that the minimal header row width enlargement (on scrollbar width' orth) is too small when the grid columns do not fill the available space, e.g. examples/example-0008-compound-editors.html: now the old slickgrid behaviour has been restored with a twist: the HEADER_ROW_WIDTH_CORRECTION constant defines the amount of extra width allotted to the right for each header/footer row. - fixed bug where invalidating a row did not update the row DOM node attributes (classes, styles, etc.) on render; this was the main culprit why, for instance, selected rows would forever remain marked as selected -- until they disappear from view and later on may be completely regenerated, that is. Now the same 'metadata ~ attributes' processing methodology used for updating cell DOM nodes is also used for row DOM nodes. - fixed bug where userland changes to a cells rowspan and/or colspan did not reflect properly in the rerender process: now the cleanup and update-on-dirty render process identifies DOM nodes lingering in the cache while they are now being overlapped by another colspan/rowspan-ing node: these nodes are now deleted. See examples/example-0042-row-span.html. - fixed bug where userland rowheight changes did not reflect properly in the subsequent render/update process. See example-0042-row-span.html. - augmented the getCellNodeBox() API to include rowspan/colspan info; this is used, for example, to produce corrected redraw range specs. - ditto for getCellFromElement() API. - as mentioned above, revisited the navigation code (goto* APIs) and applied several fixes (jumping over rows when gotoDown(), etc.); also fixes a crash due to a misunderstanding about the purpose of each field in the span object returned by these goto*() APIs. - fixed a few crashes due to APIs being invoked by userland code using out-of-range row/cell coordinates. - new public API: invalidateCellSpan() accepts a span (row/cell/rowspan/colspan) to invalidate; use this to invalidate a range of cells, e.g. following a selection range edit action.
- Loading branch information