【報告】 タブのフォーカスと「無題」タブの書き換え禁止について

  1. 不自然な挙動についてのご報告です。

    ① 他の「非アクティブなタブ」を中クリックで閉じたときに、フォーカスがタブバーに残ってしまうことがあります。
    一般的なキー操作のほとんどが無効になってしまっていますから、遭遇するとちょっと困惑してしまいます(「アクティブなペイン」を仕込んだショートカットキーでなら復帰することはできるようです)。
    @ WinXP (32bit) SP3 / Mery 2.8.6.1 (ZIP版), Mery 2.6.7 (ZIP版)

    フォーカスが外れた状態なのでツールバーアイコンのマクロも document を見失っていて、起動させると空振りやエラーになって「あれれ?」ということも…。 :?
    マウスを握っているのだから「エディタ領域内をクリックすればよい」だけのことなのでしょうが、キャレットが非表示になっていて元の位置を確認しづらいため、編集作業にスムーズに戻ることができなかったりするのです。 パパパッと他のタブを閉じてササッっとアクティブタブでの作業に戻ろうとすると躓いてしまうという。 :(
    そもそも、こういうことが起きうるということを失念していたり、今までは再現条件が分かっていなかったりしたもので、そのたびに「おれ何かヤバイことしちゃったか?」みたいな…。 lol

    ② 「無題」タブでの「書き換え禁止」は編集メニュー項目やマクロからなら問題なく切り替えができるのですが、ステータスバー右隅のダブルクリックでは ON/OFF の切り替えができないようです。
    これで困ってる人は少ないとはおもいますが、1件目のついでにご報告。 :)
    @ WinXP (32bit) SP3 / Mery 2.8.6.1 (ZIP版)

    ご確認をお願いします。

    p.s.
    以前にどこかで要望が出ていたようにもおもいますが、エディタが非アクティブな状態からマウス操作で復帰するさいに、「エディタ領域内のクリックした位置をアクティブにするのではなく、さいごのキャレット位置に復帰してほしいです」
    あわせて、ご検討のほどよろしくお願いします。

     |  sukemaru  |  返信
  2. ご報告ありがとうございます。

    > ① 他の「非アクティブなタブ」を中クリックで閉じたときに、フォーカスがタブバーに残ってしまうことがあります。

    そうなんですよね。タブの部分はフォーカスを受け取らないように設定しているのですが、開発環境 (Delphi) の不具合で、ホイールクリックなどの操作を行うとフォーカスを受け取ってしまうことがあります。

    ずっと気になってはいたのですが、新しいバージョンの Delphi でも修正されておらず、そういう仕様なのだと諦めていました。

    Delphi の不具合については私のほうでは修正できませんのでタブがフォーカスを受け取らないようにはできないのですが、一応、タブを閉じたときに [アクティブなペイン] のアクションを自動で呼び出すようにすればある程度は回避できるかもしれません。

    editor.executeCommandById(2189);

    こんなマクロを [文書を閉じたとき] のイベントに登録します。

    ただし、アウトラインなどにフォーカスがあるときでも強制的にエディタ部分にフォーカスが移動してしまうという副作用が発生しますし、その他の副作用もあるかもしれません。

    上記の対策で特に問題ないようであれば、これを Mery 側の標準の動作として組み込むことは可能だと思いますが、まだあまりテストできていません。

    > ② 「無題」タブでの「書き換え禁止」は編集メニュー項目やマクロからなら問題なく切り替えができるのですが、ステータスバー右隅のダブルクリックでは ON/OFF の切り替えができないようです。

    確認しました。これは「書き換え禁止」の仕様を変更したときの修正漏れでした。次のバージョンでは修正しておきますね。

    > エディタ領域内のクリックした位置をアクティブにするのではなく、さいごのキャレット位置に復帰してほしいです

    その仕様だと例えば Mery と別のアプリを同時に使っているときに非アクティブな Mery からコピーしたいときなど、1 度クリックして Mery をアクティブ化し、もう一度クリックして必要な部分に移動という手間が増え、不便になりませんか?

    Windows 標準のメモ帳、サク〇エディタさん、E〇Edotor さん、Visual Studio Code、Atom、Visual Studio 2019、Notepad++、Sublime Text など有名どころのエディタは、アクティブ化したときにクリックした位置にカーソルが移動する仕様となっていますので、この仕様に慣れたほうが他のエディタを使うときなどにもスムーズだと思いますよ。

     |  Kuro  |  返信
  3. ご返信ありがとうございます。 :)

    > editor.executeCommandById(2189);
    私自身も「アクティブなペイン」コマンドについて気付いていましたので、もっぱらアイコンから起動するマクロ(editor.ActiveDocument で書いてあるもの)のいくつかにはすでに仕込んであります。 :)
    > [文書を閉じたとき] のイベントに登録
    についても考えましたが、Kuro さんの言及している所期の副作用が気になって、まだ試していません。 まあ、私の場合にかぎっていえば、アウトプットサイドバーはマウスでしか操作しないので問題ないのでしょうが、連続で複数のタブをパチパチと閉じるときやウインドウ全体を閉じるときに [アクティブな文書が変更された時] のイベントマクロが editor.ActiveDocument を見失ってエラーになることがあるので、イベントマクロをうかつに増やしたくないなぁ…、とか。

    どちらの場合も、問題を解決していただいたあとでコードを再修正したり登録を解除したりが必要なので、まずはご報告してお答えをいただいてからにしようとおもっていました。 LOL

    > 上記の対策で特に問題ないようであれば、これを Mery 側の標準の動作として組み込むことは可能だと思います
    マウス操作でしか発生しないようですから、あまり問題ない気がします。
    個人的にはツールバーアイコン化してある「位置を復帰」と称したマクロで「アクティブなペイン」に戻れるようにしていますが、いろいろと問題の多いマクロなので、エディタの標準動作での解決に期待させていただきます。 :)

    > これは「書き換え禁止」の仕様を変更したときの修正漏れでした。
    やはり!
    「書き換え禁止」の切り替えは、ショートカットキーとマウスユーティリティのコンボでやることが多いので、私が気付いたのもつい最近のことでした。 XD
    「書き換え禁止」は、読みなおしやアンドゥ履歴、ブックマークとの連携も硬くなって「使いやすいことこの上なし」の機能なので、寝落ち対策の意味もふくめて便利に活用させていただいています。 :D

    > 有名どころのエディタは、アクティブ化したときにクリックした位置にカーソルが移動する仕様となっていますので、この仕様に慣れたほうが ...
    諒解いたしました。
    ステータスバーとかをクリックしてアクティブ化すればよいのに、ついつい「的がデカイから」という横着な理由でエディタ領域の適当なところをクリックしちゃうんですよね。

    次のバージョンは「クリスマスかな」「新年かな」という感じでしょうか?
    次の Mery も楽しみです。

     |  sukemaru  |  返信
スポンサーリンク