sakura-editor / sakura

SAKURA Editor (Japanese text editor for MS Windows)
https://sakura-editor.github.io/
Other
1.25k stars 163 forks source link

ウインドウの位置の設定が反映されない問題 #1891

Open kentarouhi opened 1 year ago

kentarouhi commented 1 year ago

(自由記述)設定→共通設定→基本設定の中の位置と大きさの設定→起動時の位置→継承する を選択して設定を閉じても、設定が反映されません。修正をお願いします。

berryzplus commented 1 year ago

(自由記述)設定→共通設定→ウインドウの中の位置と大きさの設定→起動時の位置→継承する を選択して設定を閉じても、設定が反映されません。修正をお願いします。

「修正をお願いします」なので不具合報告だと思うのですが、手順を見た感じ「仕様通り」っぽい印象を受けました。

この辺の設定の話ですよね。 https://sakura-editor.github.io/help/HLP000146.html https://sakura-editor.github.io/help/HLP000286.html

ここの設定は「新しいウインドウを開く際に位置・サイズ指定をしなかったとき」に使うパラメーターなので、「設定を閉じ」ても「何も起きない」が自然だと思います。

起動時のウインドウ位置・サイズ設定のコードはぐちゃぐちゃなのでおかしくなってる可能性はあります。 正確な再現手順、あるべき挙動と実際の挙動の差分を追及していかないと、議論だけでは不毛な展開になると思います。

dep5 commented 1 year ago

試してみたところ、 <起動時の位置>○継承するを選んだ場合、「最後にサイズ変更したウィンドウ」ではなくて 「最後に移動したウィンドウ」のようですね。

2つとも継承するを選ぶ場合は 「ウィンドウの位置と大きさ」ダイアログを「閉じる」で閉じた後、 「共通設定」を「OK」で閉じて、 (ウィンドウの枠でマウスポインターが矢印になってから) ウィンドウのサイズを調整して、 ウィンドウを好みの位置に移動する とできるみたいです。

berryzplus commented 1 year ago

試してみたところ、 <起動時の位置>○継承するを選んだ場合、「最後にサイズ変更したウィンドウ」ではなくて 「最後に移動したウィンドウ」のようですね。

「すみませんバグでした」と言ってるように見えました。

1ウインドウ位置変更完了イベント(WM_WINDOWPOSCHANGED)  →2移動イベント(WM_MOVE)  →3サイズ変更イベント(WM_SIZE)

ウインドウを移動したりサイズ変更すると1が発生します。 Windowsの標準実装に任せると2と3のイベントも発生します。

前回開いていたウインドウの位置とサイズを保存する処理が「2にしかない」とすれば試した挙動と一致します。 位置とサイズの保存は1に実装すべきと考えられるので「バグじゃね?」の結論になりそうです。

バグなら直したほうが良さそうな気がします。 どうなの?