Windowsの基本動作として、
- Shift押しっぱなしでマウスクリック→連続する範囲選択
- Control押しっぱなしでマウスクリック→複数選択
というのがあります。ファイルを複数選択したい時に、皆さんフツーに毎日使っている動作です。
これ、無いと死にます。…よね?
で、Parallelsでこれをやろうと思っても動作しない(ことがある)。
常に、最後にクリックした要素だけが選択されてしまいます。
どうやらControlキーやShiftキーなどを『押している』という状態が
Windows側で認識されていないような気が。
というわけで調べた結果、
結論から書きますが、Parallelsにおけるモディファイアキー*1の状態判定は
- 何か他のキーを押したとき
- 押したモディファイアキーを離したとき
に初めて発動するようです。
つまり、最初にControlキーを押したままの状態ですと
Windows側にControlキーダウンイベントは飛ばないわけです。
他のキーを押したとき(例えばSpaceキー)に、そのSpaceキーを押したというイベントと共に
Contorlキーが押されているという情報も飛びます。
だから、Windowsに『いまControl押しっぱなしだよ!』と通知したければ、
例えばControlキーを押した状態のままAltキーだけを押して離せば、
- AltキーとControlキーが押されたよ!
- Altキーが離されたよ!Controlキーは押したままだよ!
というキーイベントが発生します。つまり、Controlを押した状態だけが残るということです。
yamyでキー判定の状態を調べてみたところ、
以下のような感じに。
- 左Controlを押した: キーイベントなし
- 左Altを押した:D-LeftAltおよびD-A-LeftConrolが発生
- 左Altを離した:U-C-LeftAlt
- 左Controlを離した:U-LeftControl
という状態です。
…と思ったら
必ず上記のとおりとは限らないようです。
さっきは出来なかったのに、いまWindows(on Parallels)上でフツーに
Controlだけを押して複数選択ができました。(Windowsの通常動作)
でも、Eclipse上でControlを押したままクラス名にマウスカーソルを当てても
何も起きませんでした(クリッカブルになりませんでした)。
ところがControlを押したまま、一度Altを押して離すとクリッカブルになります。
(上記で解説した通りの動作)
なにか発動する条件があるんだろうか。。。?
2011-08-15追記
『Altを押して離す』がダメなら、『Spaceを押して離す』を試してみてください。
*1: Shift/Control/Alt等の、他のキーとのコンビネーションで使うキー