挿入オブジェクトの移動操作の際のleft-Altとright-Altキーの挙動の違い

writerのテキストボックス等の挿入オブジェクトをページ内で移動操作をする際に、オブジェクトを選択状態にした上で、方向キーを押すとオブジェクトが1センチ単位で動きます。

このとき、左側のAltキーを押しながら方向キーで操作すると、1/90センチ単位くらいの細かな距離を移動できるようになります。

しかしながら、右側のAltキーにはそのような機能は割り当てられていないようです。

バージョン: 5.3.2.2
Build ID: 6cd4f1ef626f15116896b1d8e1398b56da0d0ee1
CPU Threads: 4; OS Version: Windows 6.2; UI Render: default; Layout Engine: new; 
ロケール: ja-JP (ja_JP); Calc: group

再現しました。

そういうものなのでしょう。現仕様は。

パソコンにおいて左側のAltと右側のAlt(一般に右Altと呼び習わされることが多いようです)は、キートップには同じ文字が刻印されていますが、内部的には異なるキーとして扱われています。両方のAltで同じ機能を割り当てているソフトもあれば、異なる機能を割り当てているもの、いずれかを設定できるものなど様々あるようです。

LibreOfficeでは、右側のAltにはAltキーの機能は割り当てられていないのかも知れません(プログラムが実際どう書かれているかは確認できていませんが)。

そういうわけですので、一概にバグということではないように思います。

松川です。

Writerで再現しました。右Altで移動が細かくなりませんでした。

Calc、Drawでは再現しませんでした。
右側のAltキーを押すと移動が細かくなりました。
また、Calc、Drawでは移動キーでは1mmほどの移動距離でした。
Writerとは移動距離も異なるようです。

各ソフトによって機能の割当が異なるようです。

バージョン: 5.3.3.2
Build ID: 3d9a8b4b4e538a85e0782bd6c2d430bafe583448
CPU Threads: 4; OS Version: Windows 6.2; UI Render: default; Layout Engine: new;
ロケール: ja-JP (ja_JP); Calc: single

未検証。確信ないので誰かに検証丸投げ予定。

以下のサイトによると
http://www.geocities.jp/sprache22/layout/layout02.html

  • もともと右Altキー(AltGr)は、フランス語等でウムラウトやアクセント記号を含む文字の入力に使われていた左Altとは別のキー。語源がAltenate(代わりの)キーで押すと別の機能を使えるってだけの点では左Altも右Altも同じだけれども。
  • キーボードに右Altキーがないキーボードもあり、Ctrl + 左Alt で代用することに対応したアプリケーションも多くあった。

で、ここからさらに考える。

  • LibreOfficeでは以前、 「左右どちらもAltとして扱うが、Ctrl + Alt(左右問わず)が押されているときは、右Altが押されていたものと考え、このCtrlとAltを押さなかったものとして扱う」、というコードにしてしまっていたので、Ctrl + Altを含むショートカットキーが効かないという事態に陥っていて、これを、「左Altキーが押されたときは、左Altキーが押されたものとして扱い、右Altキーが押されたときはCtrlは同時に押さなかったものとする。ただし、別に左Altキーを押したことにはしない」という修正にしてしまった。
    libreoffice/core - main, development code repository
    https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx

  • 結果として 「右Altでショートカットが使えん!」というバグが出されることになった。

https://bugs.documentfoundation.org/show_bug.cgi?id=97908

  • 本質問は上記修正の巻き添えを食らったもの?だとすると古いバージョンでは実はそうならない・・・だったりして。

Writer版はこれかな?
http://opengrok.libreoffice.org/xref/core/sw/source/uibase/docvw/edtwin.cxx?r=2308bea5ba38250133d7e344484e688ecaab6d8d#990
http://opengrok.libreoffice.org/xref/core/sw/source/uibase/docvw/edtwin.cxx?r=2308bea5ba38250133d7e344484e688ecaab6d8d#1659

Calc版
http://opengrok.libreoffice.org/xref/core/sc/source/ui/drawfunc/fudraw.cxx?r=575b457d728531a1cfff95d2eea1887e09d79009#417

Draw版
http://opengrok.libreoffice.org/xref/core/sd/source/ui/func/fupoor.cxx?r=87661a7ab3275195ca251188ce4d7825fd038de6#582

いずれも未検証

テキストボックス「等」で正しいのか、一応検証したいかも。この辺になると自分の把握能力超えるのでいつも以上に自信ないんだよなあ… 削除部、自分が試行錯誤中勘違いしたようで、質問者指摘通り、少なくともWriterについては別バグ調査(tdf#93727 Support date literals in basic)のために導入したv5.5alpha0(Build ID: 9ad56da72a79a2d649755a0ab98bd53f238db08b)で再現確認。

追記1: あ、CalcやDrawでそうならない理由になってねえ、ちょっとそのうち再調査してみる
追記2: 俺のマシンにはそもそも右Altがありません

追記3(2018-01-13): 使用しているノートマシンのキーボードにゴミが詰まり、キートップとパンタグラフを外して掃除しようとしてうまく取り付けられない事態に陥り(汗、現状のままなんとかならんかと途方にくれていたりしていたのですが、1月上旬外付けUSBキーボードを購入しました。(Logicool K120) この外付けキーボードにはちゃんと右Altキーが付いていたのでLibreOffice v5.3.2.2をインストールして、左Altと右Altの移動速度に差があることを自分自身確認しました。Writerほどわかりやすくはないだけで、移動速度の違いはCalcでもちゃんと確認できました。そしてLibreOffice v6.1alpha0で再現しないことを確認しました。

コメントありがとうございます。

テキストボックス「等」については、一般化しすぎた表現になっていることは否めませんが、
画像とシェイプについては、テキストボックスと同じ動作をするとこを確認しています。

https://cgit.freedesktop.org/libreoffice/core/commit/?id=f53b3b547b04dc112076d8323b5b24ae178d6260

https://bugs.documentfoundation.org/show_bug.cgi?id=119676
https://bugs.documentfoundation.org/show_bug.cgi?id=118269