ウィンドウ位置に関してNo.44298
CLERK さん 13/04/16 20:13
 
秀丸エディタ側とこちらとどちらに投稿しようか悩んだのですが、
どちらも同じ事に対する質問なのでこちらでのみ質問させていただき
ます。

レンタルPC入れ替えにつき、同じ解像度のPCでデュアルディスプレイ
環境でOSがWindows7 x86 → Windows8 x64 になったのですが、メール
を見ようとダブルクリックして開こうとした場合、返信使用として新し
いウィンドウが生成される時に毎回画面外に表示されているようで、
ウィンドウ位置変更アプリで無理矢理画面内に戻さないとダメという
現象が発生しています。

バックアップを取っていたレジストリを読み込ませての復元だったで
前のPCので座標情報が残っているのかなっと思いますが、秀丸メール、
および秀丸エディタの記憶している位置情報をリセットする方法は無
いでしょうか?

現在、Ver.6.10 Beta44、秀丸エディタは Ver.8.30 Beta35 を使用し
ています。

[ ]
RE:44298 ウィンドウ位置に関してNo.44300
秀まるお2 さん 13/04/17 09:38
 
 秀丸エディタも秀丸メールも、ウィンドウを出すタイミングで、たしかにその
ウィンドウが画面内にあるかどうかチェックして、もしも画面外になってしまう
場合は画面内に戻す処理をしています。

 なので、もしも画面外にウィンドウが出てるようでしたら、実はWindows的に
はマルチディスプレイに設定されていて、セカンダリディスプレイの信号はちゃ
んと出ているけども、ディスプレイがつながってないって状態なんじゃないかと
思います。

 コントロールパネルで画面のプロパティを見ていただければ、その辺はっきり
すると思います。


> バックアップを取っていたレジストリを読み込ませての復元だったで
> 前のPCので座標情報が残っているのかなっと思いますが、秀丸メール、
> および秀丸エディタの記憶している位置情報をリセットする方法は無
> いでしょうか?

 コントロールパネルからセカンダリディスプレイを無効化して、それから秀丸
エディタ/秀丸メールを起動しなおせば、ちゃんと画面内に出てくるはずだと思
います。

 どうでしょうか。

[ ]
RE:44300 ウィンドウ位置に関してNo.44302
CLERK さん 13/04/17 11:53
 
左にターミナルログ、右にICE接続環境のウィンドウもでて
いるし、画面の解像度設定で識別表示出しても表示されてい
るので出力はされている状態です。

メール表示も画面内に表示される物もあれば、画面外に
表示されるものもある感じです。

たとえば、ウィンドウの矩形領域が (104, 2767) - (1544, 3364)
になっていたり。

ノートPC側が 1920×1080, 液晶側が 1920×1200 なのでY座標が
画面外なのですよね・・・

一度終了してシングルディスプレイ設定にして立ち上げ直しても
ウィンドウの矩形領域の座標は変わっていない状況です。

[ ]
RE:44302 ウィンドウ位置に関してNo.44303
秀まるお2 さん 13/04/17 13:57
 
 秀丸メールでは、実は「ウィンドウが完全に画面の外に出ていたら」か、また
は「ウィンドウのほとんどが画面外に出ていたら」って条件で、もしそうなって
いたら、ウィンドウ位置をリセットするようにしています。

 ウィンドウが半分だけ画面外とかでしたら、そういうことはユーザー様が意図
的にやることもあるので、あえてリセットしないようにしています。

 で、今回の件は、完全に画面外じゃないがために、うまくリセットされてくれ
ないってことかなぁと思います。

> ノートPC側が 1920×1080, 液晶側が 1920×1200 なのでY座標が
> 画面外なのですよね・・・

 秀丸メールでは、1つ1つのディスプレイデバイスの矩形を調べて、それらの
中に入ってるかどうかチェックしてるつもりではあります。

 とりあえずなんとかする手段が無いか探してみたら、1つありました。

 今現在秀丸メールの本体ウィンドウが画面内にあるということでしたら、「設
定・全般的な設定...」を実行して、左下にある「上級者向け設定」をONにした
上で、設定一覧から「上級者向け - その他 - その他2」を選択します。

 そこに「画面サイズが変わったらウィンドウ座標類をすべてリセットする」の
オプションがあるので、それをONにします。

 そして一度秀丸メールを終了させます。(タスクバーのトレーに常駐させる場
合はそれも含めて終了させます)

 それから画面解像度を少し変更してから秀丸メールを起動すれば、それでウィ
ンドウ位置/サイズ類はすべてリセットされます。

 それでどうでしょうか。

 それでもダメでしたら、「設定・設定内容の保存/復元...」で「ウィンドウ位
置やサイズ/メール一覧の列幅等」のみOFFにして設定内容を保存し、それから一
度秀丸メールをアンインストールしてからインストールしなおして、先ほどの設
定ファイルで復元する、という作戦もあります。ちょっと面倒なのですが、もし
もどうしもダメでしたらこっちの作戦でやってみてほしいです。

 他には…、regedit.exeを使って、

 HKEY_CURRENT_USER\Software\Hidemaruo\TuruKame\Config

 の配下にある

 xBook
 xFrame
 …(その他xで始まる物関係)

 yBook
 yFrame
 …(その他yで始まる物関係)

 cxBook

 cxBook

 のようにx, y, cx, cy で始まる、いかにも何かの座標っぽい物をすべて削除
してから秀丸メールを起動するって作戦もあります。

[ ]
RE:44303 ウィンドウ位置に関してNo.44305
CLERK さん 13/04/18 19:55
 
Windows 8 x64 上で秀丸メール(32bit)版だとご提案頂いた
方法で解決不可でした。メールを開く、返信等でウィンドウが
画面外の座標になってしまいます。

で、秀丸メール(64bit)版に変えると今のところ画面外に出て
しまう現象が発生していないのでしばらくは64bit版で様子を
見てみます。今の所これといって32bit DLLを使うようなマクロ
等は使用していないので。

[ ]
RE:44305 ウィンドウ位置に関してNo.44307
秀まるお2 さん 13/04/19 09:26
 
 一応、秀丸メールの動作としては、32bit版でも64bit版でも同じことをしてる
だけのはずです。設定の位置(レジストリ上の位置)も同じはずです。

 何か32bitアプリケーションソフトのウィンドウ位置をコントロールするよう
な常駐ソフトがいる可能性があるような気がしますけども、とりあえず64bit版
でうまくいくのでしたら、それで良かったこととさせていただきます。

[ ]
RE:44298 ウィンドウ位置に関してNo.44372
piyo さん 13/05/02 14:57
 
すみません便乗させてください。

V6.01からV6.10にアップデートしたところ、CLERKさんと同じようにメール作成ウィ
ンドウが画面外に開くようになってしまいました。毎回必ず画面外ではなく、画面内
に開くときもあります。ディスプレイは1つしかありません。

画面外に開くときのY座標は常に32767 (0x7fff)になっています。(余談ですが、CLE
RKさんの「2767」というのは「32767」の勘違いという事はありませんか?)

環境は、
Windows 8 x64
画面サイズ 1366x768
Windowsのタスクバーは上部に配置して、アイコン小、自動的に隠さない(常時表
示)で使用
秀丸メールは32bit版で、最大化して使用。タスクトレイに常駐
です。

現在、フリーソフトのAutoSizerを使用して問題は回避していますので、特に困って
はいません。
もしプログラムの問題ではなく、こちらの環境の問題だという事でしたら、解決済み
にしていただいて結構です。

何か他に情報が必要であればお知らせください。

[ ]
RE:44372 ウィンドウ位置に関してNo.44374
秀まるお2 さん 13/05/02 15:45
 
 情報ありがとうございます。

 Windows8上で、秀丸メールが32bit版だと起きるのかと思ってテストしたら、
こちらでも簡単に再現してしまいました。

 こちらの環境は、まずは僕自身は最近はWindows7に戻してしまったのと、あと、
他の社員が普段Windows8を使いつつも、64bit版しか使ってなくて、バグに全然
気づいてませんでした。

 今ちょっと調べた限りでは、手元のデバッグバージョンでも起きないようで、
何か奥深い問題が隠れてるのかもしれません。

 とにかくおかげさまでバグであることが特定できたので、早めに修正させてい
ただきます。

[ ]
RE:44374 ウィンドウ位置に関してNo.44394
piyo さん 13/05/07 19:00
 
v6.11で無事に画面内に開くようになりました。
ご対応ありがとうございました。

[ ]
RE:44394 ウィンドウ位置に関してNo.44395
秀まるお2 さん 13/05/07 19:49
 
 こちらこそ情報提供いただきありがとうございました。助かりました。

 プログラム的には、実はずっと前からバグってたんですが、バグとして表に出
てこないだけだったようです。いわゆるスタック上に確保した変数を初期化せず
に使ってるのが原因で、たまたま32bit版+Windows8上だとバグとして表に出てく
る状態になったようでした。

[ ]