Sakura: サクラエディタではアクセスキーに大文字/小文字の区別がありません。

Created on 18 Nov 2018  ·  7Comments  ·  Source: sakura-editor/sakura

表示テキストが大文字表記になってるので、システムから送られてくる文字を大文字に変換して当て込んでいます。
このままだと P + P でpsを開く、P + ↓ + Pで管理者psを開くになります。

_Originally posted by @berryzplus in https://github.com/sakura-editor/sakura/pull/623_

Most helpful comment

メニューのアクセスキーで大文字小文字を区別しないのはWindowsの仕様だと思いますが、何を問題としているのでしょうか。

All 7 comments

コマンドプロンプトを開く、コマンドでも同じ (#603, #618)

high dpi 対応のついでで検討したcmenudrawerの改修検討案があるので、そのうち出します。

cmenudrawer::onmenucharという関数がその部分。
冒頭で謎の変換処理と大文字化をやっています。

https://github.com/sakura-editor/sakura/blob/ace82c2d80a2ca97af6c73d6f6984aa07a4cd5f4/sakura_core/uiparts/CMenuDrawer.cpp#L1593-L1599

文字コードが空白より前ってのは制御文字なので、if文の前半は謎です。
そして、半角アルファベットでない文字をtoupperしたときの挙動は保証されていません。

メニューのアクセスキーで大文字小文字を区別しないのはWindowsの仕様だと思いますが、何を問題としているのでしょうか。

キーがかぶっているの、およびかぶっているのを assert 等で検出できるようにしたいと思います。
コマンドプロンプトの方でも同じ問題があるので、それも一緒に検討したいです。

自信がないのですがこれってメインメニューやコンテキストメニューの話ですか? キーがかぶっている場合はキーを押す毎にサイクリックに項目が選ばれるものではないのでしょうか。つまりキーかぶりは想定内。

このままだと P + P でpsを開く、P + ↓ + Pで管理者psを開くになります。

これが間違ってるのかな。
正しくは P Enter でpsを開く、P P Enterで管理者psを開く。
ローカルでやってた改善案と挙動が混じった。。。_| ̄|○

メニューのアクセスキーで大文字小文字を区別しないのはWindowsの仕様だと思いますが、何を問題としているのでしょうか。

これが結論ですね。閉じておきます。

Was this page helpful?
0 / 5 - 0 ratings