セカンダリモニタからの座標指定オプショNo.00490
h-tom さん 07/02/26 22:39
 

h-tom です。

マルチモニタ関連です。
モニタの設定
┌─┐┌─┐
│1││2│
└─┘└─┘
1:プライマリ(1024×768)
2:セカンダリ(1024×768)

セカンダリモニタにいる状態から、マクロのopenfile文を使い、起動オプション
で、プライマリモニタ上の座標を指定しても、プライマリモニタへ表示されません。
(セカンダリモニタに表示されます。)

プライマリから、セカンダリモニタの座標を指定した場合は、セカンダリモニタ
に表示されます。

#setwindowposは問題ないです。

OS:Windows XPSP2
秀丸:Ver.6.50β24

以下、ネタ向けの話題?
・サポートフォーラム「ウインドウ内に限定された、複数タブ置換について」関連?
 追加の条件に「最小化ウィンドウを除く」を追加するとか?
 これなら操作も簡単で、タブモードに関係なく、除外が可能?
 (個別ならファイルごと、タブならグループごと最小化しておく)

[ ]
RE:00490 セカンダリモニタからの座標指定No.00494
秀丸担当 さん 07/02/27 15:13
 

>セカンダリモニタにいる状態から、マクロのopenfile文を使い、起動オプション
>で、プライマリモニタ上の座標を指定しても、プライマリモニタへ表示されません。
>(セカンダリモニタに表示されます。)
>
>プライマリから、セカンダリモニタの座標を指定した場合は、セカンダリモニタ
>に表示されます。

確かに言われている通りになりました。
openfileで起動したときは、モニタが変わらないようにしているのですが、ウィ
ンドウ位置を指定している場合はそちらを優先するべきでした。
修正させていただきます。

>以下、ネタ向けの話題?
>・サポートフォーラム「ウインドウ内に限定された、複数タブ置換について」関連?
> 追加の条件に「最小化ウィンドウを除く」を追加するとか?
> これなら操作も簡単で、タブモードに関係なく、除外が可能?
> (個別ならファイルごと、タブならグループごと最小化しておく)

検索する対象としてのネタは、全ての秀丸エディタを対象とするの以外に、
・同じタブグループ内
・折りたたみを除外
・最小化を除外
などが考えられますが、searchoptionを退避して復元するマクロのことを考える
と、際限なく増やしていくのも考え物です。

サポートフォーラムのほうでは、上書き禁止のファイルで止まると書きましたが、
止まらずに無視して全てのファイルを一周できたほうがいいのかもしれません。

[ ]
RE:00494 セカンダリモニタからの座標指定No.00511
h-tom さん 07/03/02 23:04
 

h-tom です。

>確かに言われている通りになりました。
>openfileで起動したときは、モニタが変わらないようにしているのですが、ウィ
>ンドウ位置を指定している場合はそちらを優先するべきでした。
>修正させていただきます。

β25で確認しましたが、タブモードの時にちょっと変な動きをします。

1)プライマリのAから、"/i"オプション、セカンダリ領域を指定して、Bを開く。
2)セカンダリ領域を指定して、Cを開く。
3)"/i"オプション、プライマリ領域を指定して、Dを開く。

タブモードなので、
 グループ1:A  (プライマリ)
 グループ2:B、C(セカンダリ)
 グループ3:D  (プライマリ)
と、なるのを期待しましたが、実際は
 グループ1:A、C(プライマリ)
 グループ2:B  (セカンダリ)
 グループ3:D  (プライマリ)
と、なります。

2)で座標指定しなければ、期待通りの動きをします。
β24では期待通りの動作になります。

OS:WindowsXPSP2
秀丸:Ver.6.50β25

//モニタの設定
┌─┐┌─┐
│1││2│
└─┘└─┘
1:プライマリ(1024×768)
2:セカンダリ(1024×768)

//テストマクロ
if(tabmode == 0) settabmode;
setmonitor 0;
$out = $out + "起動オプション:/i /(1124,100,800,300) test1.txt\n";
openfile "/i /(1124,100,800,300) "+ macrodir + "\\test1.txt";
$out = $out + "monitor:" + str(monitor) + "\n";
$out = $out + "起動オプション:/(1124,100,800,300) test2.txt\n";
openfile "/(1124,100,800,300) "+ macrodir + "\\test2.txt";
$out = $out + "monitor:" + str(monitor) + "\n";
$out = $out + "起動オプション:/i /(100,100,800,300) test3.txt\n";
openfile "/i /(100,100,800,300) "+ macrodir + "\\test3.txt";
$out = $out + "monitor:" + str(monitor) + "\n";
#i = 0;
while( #i < tabgrouptotal ) {
    #grouptop = gettabhandle( true, #i, 0 );
    #j = 0;
    $out = $out + "tabgroupe:" + str(#i) + "\n";
    while( #j < tabtotal[#grouptop] ) {
        #handle = gettabhandle( true, #i, #j );
        $out = $out + " tab" + str(#j) + ":" + basename[#handle] + "\n";
        #j = #j + 1;
    }
    #i = #i + 1;
}

message $out;
endmacro;

//出力得結果
---------------------------
秀丸エディタ
---------------------------
起動オプション:/i /(1124,100,800,300) test1.txt … (B)
monitor:1
起動オプション:/(1124,100,800,300) test2.txt   … (C)
monitor:0
起動オプション:/i /(100,100,800,300) test3.txt  … (D)
monitor:0
tabgroupe:0
 tab0:test3.txt  … (D)
tabgroupe:1
 tab0:test.mac  … (A)
 tab1:test2.txt  … (C)
tabgroupe:2
 tab0:test1.txt  … (B)

---------------------------
OK  
---------------------------

[ ]
RE:00511 セカンダリモニタからの座標指定No.00520
秀丸担当 さん 07/03/05 09:43
 

>β25で確認しましたが、タブモードの時にちょっと変な動きをします。
>
>1)プライマリのAから、"/i"オプション、セカンダリ領域を指定して、Bを開く。
>2)セカンダリ領域を指定して、Cを開く。
>3)"/i"オプション、プライマリ領域を指定して、Dを開く。
>
>タブモードなので、
> グループ1:A  (プライマリ)
> グループ2:B、C(セカンダリ)
> グループ3:D  (プライマリ)
>と、なるのを期待しましたが、実際は
> グループ1:A、C(プライマリ)
> グループ2:B  (セカンダリ)
> グループ3:D  (プライマリ)
>と、なります。
>
>2)で座標指定しなければ、期待通りの動きをします。
>β24では期待通りの動作になります。

手順通りにして確認することができました。
"/(x,y,cx,cy)"オプションを指定した場合はモニタ位置を引き継ぐことはしない
ようにしたのですが、タブグループも引き継がれないようになってしまっていた
ようです。
ご指摘ありがとうございます。
修正させていただきます。

[ ]