ボンジュール・マドモアゼル

本サイトの情報は自己責任にてご利用下さい。

[Smalltalk] Pharo Windows XP ショートカットキー 不具合解消

 
Windows XP の Smalltalk Pharo 1.1.1 で Inspect などショートカットキー (shortcut key) が効かない。バグっぽい。とりあえずコードを以下のように修正することで解消した。赤字が修正箇所。

InputEventSensor>>#processEvent:
processEvent: evt 
  "Process a single event. This method is run at high priority."
  | type |
    
  type := evt at: 1.

  "Treat menu events first"
  type = EventTypeMenu
    ifTrue: [
      self processMenuEvent: evt.
      ^nil].

  "Tackle mouse events first"
  type = EventTypeMouse
    ifTrue: [
      "Transmogrify the button state according to the platform's button map definition"
      evt at: 5 put: (ButtonDecodeTable at: (evt at: 5) + 1).
      "Map the mouse buttons depending on modifiers"
      evt at: 5 put: (self mapButtons: (evt at: 5) modifiers: (evt at: 6)).

      "Update state for polling calls"
      mousePosition := (evt at: 3) @ (evt at: 4).
      modifiers := evt at: 6.
      mouseButtons := evt at: 5.

      ^evt].
  
  
  "Finally keyboard"
  type = EventTypeKeyboard
    ifTrue: [
      (evt at: 4)=0 ifTrue: [
      "Sswap ctrl/alt keys if neeeded"
      KeyDecodeTable
        at: {evt at: 3. evt at: 5}
        ifPresent: [:a | 
          evt
            at: 3 put: a first;
            at: 6 put: a first;
            at: 5 put: a second]. 
      ].
      "Update state for polling calls"
      modifiers := evt at: 5. 
      ^evt].
        
  "Handle all events other than Keyborad or Mouse."
  ^evt.


なお、Settings (Preference) の System → Keyboard → Control and Alt keysFull matching に設定すること。
以下は Preferences 詳細。
Preferences duplicateAllControlAndAltKeysSetting ==> true
Preferences duplicateControlAndAltKeysSetting    ==> false
Preferences swapControlAndAltKeys                ==> false
<<コントロールキー押下時の WM_CHAR メッセージ | ホーム | Smalltalk Pharo - display morph halo>>

コメント

コメントの投稿

管理者にだけ表示を許可する

画像の文字を半角数字で下記ボックスに記入ください。
文字が読みにくい場合はブラウザの更新をすると新しい文字列が表示されます。