◀ANSI版開発トップへ
  • 5129 IME Watcher対応について
    • 5130 Re:IME Watcher対応について
      • 5131 Re2:IME Watcher対応について
        • 5132 Re3:IME Watcher対応について
          • 5133 Re4:IME Watcher対応について
    • 5138 Re:IME Watcher対応について
  • [5129] IME Watcher対応について ryoji 2007年10月17日 02:02

    data:6367 「IME Watcher 併用時の不具合」の件です。
    IME Watcherは、キャレット所有ウィンドウのクライアント領域内のキャレット位置を取得し、キャレット所有ウィンドウ=フォーカスウィンドウとみなしてフォーカスウィンドウからの位置で情報表示しているものと思われます。
    ごく一般的な処理構造のアプリではそれでOKなのですが、サクラではキャレット所有ウィンドウは各ビューであり、フォーカスはフレームウィンドウが持っています。
    IME Watcherはサクラがそのような動作になっていることを知らないので、その分だけ上方に表示がずれているものと思われます。

    一般的な処理構造になるようにしてみました。
    →Patches#1814571 FocusActiveView1.patch
    従来は普段CEditWndがフォーカスを持ち、CEditViewがキャレットを表示していましたが、フォーカスをCEditViewに持たせるように変更しています。
    CEditWndのWM_SETFOCUSでCEditViewにフォーカスを移動し、キーボードからのコマンドはフォーカスを持っているCEditViewからCEditWndへルーティングするようにしています。
    • [5130] Re:IME Watcher対応について AC 2007年10月17日 21:45

      ▼ ryojiさん
      すぐに確認できないのですが、
      Alt+Tabで出る情報が違ったものになることないですか
      • [5131] Re2:IME Watcher対応について AC 2007年10月17日 22:06

        追記:
        昔あったなと思って検索したら↓でした。

        [671] フォーカスが戻らない
        ▽ 2001/9/8
        • [5132] Re3:IME Watcher対応について ryoji 2007年10月18日 00:42

          ▼ ACさん
          > [671] フォーカスが戻らない
          > ▽ 2001/9/8
          ↑の報告をもとにWin98で再現テストしてみました。
          ・当時のバージョンでは[671]の現象が再現
          ・1.6.1.0+Patches#1814571では問題なし
          でした。
          当時の現象としては、フォーカスが戻らないというよりフォアグラウンドにもアクティブにもならなかったんですね。
          以前、CTipWndはフォアグラウンドにいなければ不可視になるようにした覚えがあるので、おそらく間違っても当時のような現象は起きないと思います。
          ちなみに、当時のバージョンでもフレームウィンドウがフォーカスを持つという構造は現在と同じだったようですね~。
          • [5133] Re4:IME Watcher対応について ryoji 2007年10月18日 01:03

            > 以前、CTipWndはフォアグラウンドにいなければ不可視になるようにした覚えがあるので、おそらく間違っても当時のような現象は起きないと思います。
            ユーザに見せるとき以外は常時不可視にしたのでした。(^^;
            >>data:4952 Re3: クリップアウト2000
            そういえば、これも外部ツール対応の処置だった...
    • [5138] Re:IME Watcher対応について ryoji 2007年10月25日 03:53

      >サクラではキャレット所有ウィンドウは各ビューであり、フォーカスはフレームウィンドウが持っています。
      アウトライン解析画面で、
      自動的に閉じる:OFF
      フォーカスを移す:ON
      でフォーカス移動したとき

      検索画面で、
      検索ダイアログを自動的に閉じる:OFF
      で検索して検索文字列が見つかったとき

      などは、現状でもフォーカスがビューに移るんですね~。
      このあたりの動作はちょっと由来が不明です...(^^;