Skip to content

fix: 1G 入力時のフリーズバグを修正#29

Merged
mskasa merged 1 commit intoebitenginefrom
fix/prevG-stuck
Apr 2, 2026
Merged

fix: 1G 入力時のフリーズバグを修正#29
mskasa merged 1 commit intoebitenginefrom
fix/prevG-stuck

Conversation

@mskasa
Copy link
Copy Markdown
Owner

@mskasa mskasa commented Apr 2, 2026

原因

prevG フラグ(g キー入力後の待機状態)が解除されずにフリーズする問題を修正。

再現パス

  1. 1 を押す → inputNum=1 に蓄積
  2. G(Shift+G)を押す際、G キーが Shift より 1 フレーム先に検出される
    • 1フレーム目: Shift なしの g として検出 → prevG=true
    • 2フレーム目以降: prevG モード内で !shift && IsKeyJustPressed(G) が false → CmdNoneprevG は true のまま
  3. 以降すべてのキー入力が無視されてフリーズ

修正内容

prevG モード内で shift && ebiten.IsKeyPressed(KeyG)(G が押し続けられていて Shift も押されている)を検出した場合に prevG を解除して CmdFileBottom を返すようにした。

IsKeyJustPressed ではなく IsKeyPressed を使うことで、G を押したまま Shift を追加で押すタイミングのずれに対応している。

Test plan

  • 1G を入力してフリーズしないことを確認
  • G(カウントなし)が最終行に移動することを確認
  • gg が最初の行に移動することを確認
  • ge が前のワード末尾に移動することを確認

🤖 Generated with Claude Code

@mskasa mskasa changed the base branch from master to ebitengine April 2, 2026 06:23
G キーが Shift より 1 フレーム先に検出されると prevG=true がセットされ、
次フレームで Shift+G を押しても !shift 条件が合わず prevG が永久に解除
されなかった。IsKeyPressed で G が押し続けられている状態を確認することで
このタイミング問題を解消する。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@mskasa mskasa force-pushed the fix/prevG-stuck branch from bcdf249 to a84e6c1 Compare April 2, 2026 06:26
@mskasa mskasa merged commit 05dd31f into ebitengine Apr 2, 2026
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.

1 participant