今日は範囲選択のボタン位置の修正。
これまたマルチスクリーンの場合、画面の位置関係によってはボタンの位置が正しく表示されない。
原因は単純でボタンの位置決めでマルチスクリーンを考慮していないこと。
現在はメイン画面のサイズのみを見ている。
NSSize view_size = [[NSScreen mainScreen] frame].size;
これを変更して、全画面を包含する画面サイズとする。
NSSize view_size = [Screen frame].size;
これで直った。
- - - -
Screen#frame はクラスメソッドで毎回全画面範囲を計算している。利用頻度が高くなってきたのでそろそろインスタンス化した方がよさそうだ。あらかじめ計算しておけばオーバーヘッドを少しでも減らせる。スクリーンの数や配置が変更になった場合は Notificationを受けて再計算すれば良い。