[Ctrl]+[S]No.02267
ひろ さん 00/12/15 12:09
 
 秀まるお様今日は、ひろです。
 [Ctrl]+[S] への key の割り当てについての質問です。bug かどうかの判
断が付かないので、こちらに投稿します。私は [Ctrl]+[S] を次のように割
り当てています。
鶴亀本体:自作 macro
秀丸    :上書き保存
 この場合、[Ctrl]+[S] を鶴亀の editor window で行うと、「草稿に保存」
の扱いになります。help には
>  ここで設定したキー割り当ては、エディタ側のキー割り当てよりも優先さ
> れます。たとえば、エディタ側で「置換」コマンドをCtrl+Rに割り当ててい
> ても、鶴亀メール側で「返信メール」コマンドをCtrl+Rに割り当てておくと、
> 鶴亀メール側のコマンドが優先されます。
となっていますので、editor window でも自作 macro が動く気がするのですが...。
 ##ひょっとして [Ctrl]+[F,O] 等標準的な key に起きるのかなあ〜。

 個人的には現在のままの方がよいのですが(^^;、もし bug なら速めに直っ
た方がよいんですよね。

[ ]
RE:02267 [Ctrl]+[S]No.02271
秀まるお さん 00/12/15 17:44
 
 鶴亀本体側で登録したマクロは、エディタ側で呼び出すことは出来ません。それで
たぶん、マクロ実行のコマンドが無視されて、秀丸側のキー操作が優先されたのだと
思います。

 どのキーがどこで有効であるかは、非常に複雑です。

 まず、CtrlやAltとの組み合わせでないキーは、「編集可能なエディタ中」ではす
べて無効です。

 次に、「今すぐ送信、後で送信、草稿に保存、添付ファイルの追加」は、エディタ
ウィンドウ全般で有効であり、鶴亀メール本体では無効です。

 さらに、エディタの場合は以下のような処理が待っています。

    if( /*cmd == IDM_FIND
     || cmd == IDM_FIND_UP
     || cmd == IDM_FIND_DOWN        検索系は秀丸側のキー割り当てを優先する
     ||*/ cmd == IDM_NEWMAIL
     || cmd == IDM_BOOK || cmd == IDM_SELECT_ALL || cmd == IDM_SELECT_BODY )
{
        // OK
    } else {
        if( fEditable ) {
            if( cmd == IDM_SEND_NOW || cmd == IDM_SEND_LATER || cmd == IDM_
SAVE_DRAFT
             || cmd == IDM_EDITOR_ASSIST || cmd == IDM_ADD_ATTACH ) {
            } else {
                return TRUE;
            }
        } else if( fEditableRecv ) {
            if( cmd == IDM_SAVE_DRAFT | cmd == IDM_FORWARD_MAIL || cmd ==
IDM_MAKE_REPLY ) {
            } else {
                return TRUE;
            }
        } else {
            if( (cmd >= IDM_HEADER_NONE && cmd <= IDM_HEADER_SWITCH)
             || cmd == IDM_SHOW_CURSOR
             || cmd == IDM_FORWARD_MAIL || cmd == IDM_MAKE_REPLY
             || cmd == IDM_NEXT_MAIL || cmd == IDM_PREV_MAIL
             || cmd == IDM_NEXT_UNREAD || cmd == IDM_PREV_UNREAD
             || cmd == IDM_NEXT_UNREAD_PAGE || cmd == IDM_PREV_UNREAD_PAGE
             || cmd == IDM_DELETE_MAIL
             || cmd == IDM_FILTER_ONE
             || cmd == IDM_SWITCH_UNREAD || cmd == IDM_MARK ) {
            } else {
                // 未送信フォルダのメールを直接「今すぐ送信」など出来るよう
にする。
                if( iFolder == FOLDER_SENT
                 && (cmd == IDM_SEND_NOW || cmd == IDM_SEND_LATER || cmd ==
IDM_SAVE_DRAFT) ) {
                    // OK
                } else {
                    return TRUE;
                }
            }
        }
    }

 上記で、return TRUEとなるケースは無効という意味で、この場合は秀丸側のキー
割り当てが優先されます。

 つまり、「編集可能かどうか」、「このメール用のフォルダはどこか」、「受信し
たメールを編集可能にした状態かどうか」などで、有効/無効なコマンドの組み合わ
せがいろいろ変化します。

 これをうまく言葉で表現するのはとても困難なので、とりあえず今のところ支障が
無いなら仕様と解釈してください。

[ ]
RE:02271 [Ctrl]+[S]No.02273
ひろ さん 00/12/15 19:31
 
 秀まるおさん今日は、ひろです。
>  鶴亀本体側で登録したマクロは、エディタ側で呼び出すことは出来ません。それで
> たぶん、マクロ実行のコマンドが無視されて、秀丸側のキー操作が優先されたのだと
 解りました。この仕様はとても有り難いです。macro 自体は editor
window でも動作するのですが、不思議に想い投稿させていただきました。

 ##document の修正が必要だな〜。

[ ]