トップ «前の日記(2003-02-23(Sun)) 最新 次の日記(2003-02-26(Wed))» 編集

K2さんの雑記


2003-02-24(Mon) [長年日記]

[K2E]マルチモニタ

デュアルディスプレイで本格的に作業を開始しましたが、残念ながらまだおいしい作業はありません。

さて、デュアルディスプレイでのK2Editorの挙動ですが、いろいろと変なところにダイアログが出たりしておかしなことになってますね〜。

で、いろいろと修正してみました。

まず初期出現位置ですが、マルチモニタ構成にもよりますが、プライマリモニタに出ない場合があります。まずこれを修正。それから、各ダイアログが起動エディタ上に出ない問題。プライマリモニタ上にエディタがある場合は問題ないですが、サブモニタ上にある場合は、いろいろとやばいことが...(^^; これも修正。大きいのはこの2点ぐらいか。

今回はじめてマルチモニタを使ってみましたが、この仕様、なかなかうまくできています。プライマリモニタは、モニタの左上が(0,0)の座標になるように配置され、その周りの隣接した8通りの位置にサブモニタが置けるようになっています。フルスペックで9つのモニタが使用できます。2つだけの場合は、モニタの物理的な配置を画面のプロパティで設定することができます。だからモニタを積み重ねることもできますし、場合によってはお互いに斜めの位置に置くこともできます。

マウスは、モニタ同士が接している方向に動かせば、お互いのモニタの間を行き来することができますし、アプリケーションウィンドウもその方向にドラッグすれば、お互いのモニタ上を移動させることができます。

つないであるディスプレイデバイスの数だけ、モニタが存在しますが、それらには番号がついています。最大1〜9まで番号がつくはずです(わたしは2つしかもっていませんので1,2)。これが、必ずしも1がプライマリにしたいディスプレイデバイスになるかどうかはわかりませんから、どれをプライマリにしたいかを画面のプロパティから選択することができます。

ここで問題になるのが、アプリの初期表示位置です。

どうやら、OSは、ディスプレイデバイスの1番に対して初期表示位置を設定するようで、2番をプライマリにしている場合、表示をOSに任せていると、初期表示位置はサブモニタになってしまいます。

よくできたアプリケーションは、起動位置がプライマリモニタの範囲内かどうかをチェックして移動させていますから、プライマリモニタ上に表示されます。ここで、まずチェックしていないアプリはサブモニタに飛ばされます。(K2Editorも飛ばされます)

またたとえチェックしているアプリでも、単にプライマリモニタ内にいるかどうかをチェックしているだけですから、プライマリモニタ上のどこに表示されるかは、かなり怪しい挙動になるものが多いです。

これを完璧にするなら、自分がどのモニタ領域に表示されようとしているかを検知して、それをプライマリモニタの該当位置に表示し直すように位置を変更する必要があります。これには、表示されようとしているモニタ位置がどこなのかを正確に把握する必要があって、ちっと面倒なことになります。APIを使えば可能なので、K2Editorでは面倒ですがその辺をまず修正しました。

後は、表示されるダイアログの位置ですが、これは大抵のアプリで自分のメインウィンドウの位置からの相対位置で表示しているので大丈夫なことが多いです。ところが、K2Editorでは、ここでプライマリモニタからはみ出していないかなどをチェックしたりしているので、やっかいな問題が起きます。サブモニタにK2Editorを表示している場合、無理矢理プライマリモニタにダイアログが飛ばされてしまいます。

むーん。

で、これもモニタの数が2以上の時は、はみ禁チェックをすっ飛ばすことで対処。その代わり、(確か永さんの要望だったかな)せっかくのはみ禁チェック機構は働かなくなります。

マルチモニタ時の挙動に関してはこんなところかな。アプリによってはモニタ境界に配置されてしまうダイアログもありますが、これはどうやって位置を決めているかわかりません。

なお、対処したK2Editorは、他の修正がないので、当分出す機会がありません。欲しい人がいれば、メール等でわたしをプッシュしてください。


1965|09|
2002|09|10|11|12|
2003|01|02|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|03|04|05|08|
2014|01|02|03|04|05|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|11|
2017|01|03|05|06|07|08|10|11|12|
2018|01|02|03|04|05|08|09|10|12|
2020|01|07|




2003年
2月
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
//
自己紹介
自己紹介
広告
計るだけダイエット
つっこみリスト
TrackBacks
日記仲間
/ / /
最近の日記