> May you please explain in more details what problem you are trying to
> solve?
Sure. I've identified an issue on the master branch where, if the cursor is 
not inside the table at WS,  `org-table-begin' in `org-table-header-set-header'
gets the beginning position of the next table in the buffer. 
so `(pos-visible-in-window-p beg)' returns true, causing the header overlay 
of the table at WS to not display.

> Moving point to WS and then immediately to the beginning of the table
> makes no difference. So, your patch does nothing.
Moving point to WS ensures`org-table-begin' to get the beginning position
of the table at WS, regardless of the cursor position, resolves the
above problem. 

Regards,
Zhe Lei

On Sat, Apr 6, 2024 at 2:40 AM Ihor Radchenko <yantar92@posteo.net> wrote:
Lei Zhe <lzhes43@gmail.com> writes:

> The patch ensures the header of an org-table displays without the cursor
> inside the table when org-table-header-line-mode is enabled.
>
> BTW, this is my first patch for org-mode, so please correct me if there
> are any issues with it.
> Also, I've done the paperwork before.

Thanks for the patch!
May you please explain in more details what problem you are trying to
solve?

>                   (beg (save-excursion
> +                        (goto-char ws)
>                          (goto-char (org-table-begin))
>                          (while (or (org-at-table-hline-p)
>                                     (looking-at-p ".*|\\s-+<[rcl]?\\([0-9]+\\)?>"))

Moving point to WS and then immediately to the beginning of the table
makes no difference. So, your patch does nothing.

--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>