Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ソング:歌詞入力中でTabを押したときにスクロールされない #2599

Closed
sigprogramming opened this issue Mar 6, 2025 · 7 comments
Labels

Comments

@sigprogramming
Copy link
Contributor

sigprogramming commented Mar 6, 2025

不具合の内容

歌詞入力中にTabキーを押すと、現在の入力内容が確定されて次のノートの歌詞入力に移ることができますが、スクロールが行われないため、ノートが画面外に行ってしまうことがあります。

以前はスクロールされていた気がするので、バグとしてissueを立てています。

現象・ログ

歌詞入力中でTabキーを押したときにスクロールされない

再現手順

画面端に近いノートの歌詞入力中にTabキーを押す

期待動作

歌詞入力中にTabを押すと入力が次のノートに移り、ノートが画面外に行ってしまう場合は自動でスクロールされる

VOICEVOXのバージョン

0.23.0

その他

@terapotan
Copy link
Contributor

こちらどのバージョンで使用不能になったのか調査してみました。
ソング機能が追加されたVOICEVOX0.16.0から順番に試していったところ、どうもVOICEVOX0.20.0から機能が使えなくなっているようです。

VOICEVOX 0.19.0
Image
VOICEVOX0.20.0
Image

@terapotan
Copy link
Contributor

念のため、VOICEVOX0.21.0とVOICEVOX0.22.0でも、試してみましたがどちらもスクロールは動作しませんでした。
Tabキーによるフォーカス移動を担当しているコードの変遷も見てはみたのですが、特段大きな変更が入っているようには見受けられず(ファイル移動とかはありつつも)……

release-0.19...release-0.20

上の差分のどこかに原因となったコードがあるんでしょうが、如何せん量が膨大で見つけるのは困難です。
コミットを一つ一つ進めていって、どのコミットで動かなくなったのかを探る手もありますが、それにしても量は膨大です(124commitある)。

いっそのこと、Tabキーを押したら自動スクロールするように、新規で機能追加する形にした方が楽かもしれません。

@sevenc-nanashi
Copy link
Member

sevenc-nanashi commented Mar 9, 2025

それにしても量は膨大です(124commitある)。

git bisectを使えば7回(log2(124)≈7)で良さそう?あるコミットから動かなくなってそのままであれば、ですが(2分探索ができる条件)

@madosuki
Copy link
Contributor

madosuki commented Mar 9, 2025

とりあえず試してみたところ、a4d0fa9 でこのバグが発生しているようです。
このcommitの直前のcommitが f05d174 で、そこではこのバグは発生していませんでした。

@madosuki
Copy link
Contributor

madosuki commented Mar 9, 2025

https://github.com/VOICEVOX/voicevox/blob/main/src/components/Sing/SequencerLyricInput.vue#L64C1-L73C3
のselectの後にlyricInput.value?.scrollIntoView({block: "nearest", inline: "nearest"});を追加すれば以前と似た感じになるかも?

@terapotan
Copy link
Contributor

terapotan commented Mar 9, 2025

@madosuki
調査、ありがとうございます!
@sevenc-nanashi
そんなコマンドあるんだ、知らなかった……ありがとうございます!

のselectの後にlyricInput.value?.scrollIntoView({block: "nearest", inline: "nearest"});を追加すれば以前と似た感じになるかも?

上記修正でバグが解消されることを確認しました。

Image

@sigprogramming
Copy link
Contributor Author

sigprogramming commented Mar 11, 2025

#2606 がマージされたので、こちらcloseします!
@madosuki さん、バグが発生したコミットの調査ありがとうございました!
@terapotan さんも、修正PRの実装ありがとうございました!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants