Skip to content

Comments

fix(layout-bridge): correct cell selection for tables with rowspan#1839

Merged
harbournick merged 3 commits intomainfrom
caio/sd-1626-fix-merged-cell-selection-in-hittesttablefragment
Feb 19, 2026
Merged

fix(layout-bridge): correct cell selection for tables with rowspan#1839
harbournick merged 3 commits intomainfrom
caio/sd-1626-fix-merged-cell-selection-in-hittesttablefragment

Conversation

@caio-pizzol
Copy link
Contributor

@caio-pizzol caio-pizzol commented Jan 26, 2026

Fixes two bugs in hitTestTableFragment that caused incorrect cell selection in tables with merged cells (rowspan):

  1. Rowspan X offset: When clicking cells in rows affected by rowspan from above, the X coordinate calculation now accounts for the visual space occupied by the rowspanned cell using ableMeasure.columnWidths.

  2. Grid vs array index: The function now returns the cell array index (colIndex) instead of the grid column index for ProseMirror selection, fixing "Target column not found in row" errors.

image

Fixes two bugs in hitTestTableFragment that caused incorrect cell selection in tables with merged cells (rowspan):

1. Rowspan X offset: When clicking cells in rows affected by rowspan from above, the X coordinate calculation now accounts for the visual space occupied by the rowspanned cell using ableMeasure.columnWidths.

2. Grid vs array index: The function now returns the cell array index (colIndex) instead of the grid column index for ProseMirror selection, fixing "Target column not found in row" errors.
@linear
Copy link

linear bot commented Jan 26, 2026

@caio-pizzol caio-pizzol linked an issue Jan 26, 2026 that may be closed by this pull request
4 tasks
@caio-pizzol caio-pizzol self-assigned this Jan 26, 2026
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9bd2d0a751

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Copy link
Collaborator

@harbournick harbournick left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@harbournick harbournick merged commit 0b782be into main Feb 19, 2026
3 checks passed
@harbournick harbournick deleted the caio/sd-1626-fix-merged-cell-selection-in-hittesttablefragment branch February 19, 2026 00:23
@superdoc-bot
Copy link
Contributor

superdoc-bot bot commented Feb 19, 2026

🎉 This PR is included in superdoc v1.15.0-next.17

The release is available on GitHub release

harbournick pushed a commit that referenced this pull request Feb 20, 2026
# [1.15.0](v1.14.0...v1.15.0) (2026-02-20)

### Bug Fixes

* **ai-actions:** preserve html/markdown insertion and prevent repeated formatted replacement ([#2117](#2117)) ([9f685e9](9f685e9))
* **ai:** support headless mode in EditorAdapter.applyPatch ([#1859](#1859)) ([cf9275d](cf9275d))
* **collaboration:** memory leaks, Vue stack overflow, and Liveblocks stability (SD-1924) ([#2030](#2030)) ([a6827fd](a6827fd)), closes [#prepareDocumentForExport](https://github.com/superdoc-dev/superdoc/issues/prepareDocumentForExport)
* **collab:** prevent stale view when remote Y.js changes bypass sdBlockRev increment ([#2099](#2099)) ([0895a93](0895a93))
* **converter:** handle null list lvlText and always clear numbering cache ([#2113](#2113)) ([336958c](336958c))
* **document-api:** remove search match cap and validate moveComment bounds ([6d3de67](6d3de67))
* export docx blobs with docx mime type ([#1849](#1849)) ([1bc466d](1bc466d))
* **export:** prevent DOCX corruption from entity encoding and orphaned delInstrText (SD-1943) ([#2102](#2102)) ([56e917f](56e917f)), closes [#replaceSpecialCharacters](https://github.com/superdoc-dev/superdoc/issues/replaceSpecialCharacters) [#1988](#1988)
* **layout-bridge:** correct cell selection for tables with rowspan ([#1839](#1839)) ([0b782be](0b782be))
* **layout,converter:** text box rendering and page-relative anchor positioning (SD-1331, SD-1838) ([#2034](#2034)) ([3947f39](3947f39))
* **layout:** route list text-start calculations through resolveListTextStartPx ([02b14b8](02b14b8))
* **painter-dom:** use absolute page Y for page-relative anchors in header/footer decorations ([0b9bc72](0b9bc72))
* preserve selection highlight when opening toolbar dropdowns ([#2097](#2097)) ([a33568e](a33568e))
* structured content renders correct on hover and select ([#1843](#1843)) ([dab3f04](dab3f04))
* **super-editor:** add unsupported-content reporting across HTML/Markdown import paths ([#2115](#2115)) ([84880b7](84880b7))
* **super-editor:** handle partial comment file-sets and clean up stale parts on export ([#2123](#2123)) ([f63ae0a](f63ae0a))
* **super-editor:** restore <hr> contentBlock parsing and harden VML HR export fallback ([#2118](#2118)) ([da51b1f](da51b1f))
* table headers are incorrectly imported from html ([#2112](#2112)) ([e8d1480](e8d1480))
* table resizing regression ([#2091](#2091)) ([20ed24e](20ed24e))
* table resizing regression ([#2091](#2091)) ([9a07f1c](9a07f1c))
* **tables:** align tableHeader attrs with tableCell to fix oversized DOCX export widths ([#2114](#2114)) ([38f0430](38f0430))
* **tables:** fix autofit column scaling, cell width overflow, and page break splitting ([#1987](#1987)) ([61a3f6f](61a3f6f))
* **tables:** prevent tblInd double-shrink when using tblGrid widths (SD-1494) ([8750ece](8750ece))
* track changes comment text for formatting changes ([#2013](#2013)) ([b2a43ff](b2a43ff))
* wire DocumentApi to Editor.doc with lifecycle-safe caching ([57326ea](57326ea))

### Features

* cropped images ([#1940](#1940)) ([3767a49](3767a49))
* extend document-api with format, examples, create.heading ([#2092](#2092)) ([fdf8c7c](fdf8c7c))
* **lists:** support hidden list indicators via w:vanish ([#2069](#2069)) ([#2080](#2080)) ([0bed0fd](0bed0fd))
* the document API limited alpha ([#2087](#2087)) ([091c24c](091c24c))
@harbournick
Copy link
Collaborator

🎉 This PR is included in superdoc v1.15.0

The release is available on GitHub release

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

merged cell invalid sometimes

2 participants