Skip to content

[1283] 修复启动页按下 Shift+方向键崩溃问题,改用 QShortcut 注册启动页标签快捷键 - #4522

Merged
da-liii merged 2 commits into
mainfrom
da/1283/shift
Sep 8, 2026
Merged

[1283] 修复启动页按下 Shift+方向键崩溃问题,改用 QShortcut 注册启动页标签快捷键#4522
da-liii merged 2 commits into
mainfrom
da/1283/shift

Conversation

@da-liii

@da-liii da-liii commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

What

修复启动页处于焦点时按下 Shift+方向键导致程序崩溃(SIGSEGV)的问题。

Why

  1. QTMStartupTabWidget 之前将键盘事件无差别转发给 Scheme 文本编辑器的 key-press
  2. Shift+方向键 触发文本选区移动,但启动页没有文档排版盒,get_box() 为空导致 find_innermost_scroll 空指针解引用崩溃。
  3. 启动页为纯 Qt 控件界面,不应走 Scheme 文本编辑器的 key-press 机制。

How

  1. 移除 QTMStartupTabWidgetkeyPressEvent / keyReleaseEvent Scheme 桥接。
  2. 改用 Qt 原生 QShortcut 注册启动页所需的标签页快捷键(Ctrl+T 新建标签页、Ctrl+1 ~ Ctrl+9 切换标签页)。
  3. find_innermost_scroll 中增加防御性判空。
  4. 新增 TeXmacs/tests/python/1283.py 端到端自动化测试。

@MoonL79 MoonL79 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM

@da-liii
da-liii merged commit fd54b04 into main Sep 8, 2026
6 checks passed
@da-liii
da-liii deleted the da/1283/shift branch September 8, 2026 07:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants