Giraffe+ 0.5.65.812
前リリースからの変化
- Window.FindWildが最前面ウインドウの状態によって動作しなかったのを修正
- system:get-work-areaを定義
- Dll.releaseを定義
- thread関数の第二引数をスレッドのプライオリティにした
- ITEMIDLISTの実行時のディレクトリをそのモジュールのある場所にした
- QueueDirectoryに全体の状態を保存させるsettings/setup/QueueStateを追加
- ShowMenu(2)の位置指定に-1を置くことで、キャレットの位置に出せるようにした
- Window.Activateをもう少し改善
- マルチスレッド動作時の安定化
Window.FindWildが最前面ウインドウの状態によって動作しなかったのを修正
GetForegroundWindowではなくGetTopWindowを使うよう改めました。
Window.dllは二度といじる気なかったんですが、そもそもそれは新言語になれば関数集でしなかいモジュール的オブジェクトなんて使わなくなると勘違いしていたからで、もう保守フェーズに入ってる気もするので、修正しました。
system:get-work-areaを定義
タスクバーを除いたデスクトップ領域をWindows_RECTで返します。
Dll.releaseを定義
DLLを作ってて、試しに使って、書き換えようと思ったら、unloadしないといけないけどできなくて困ったので、できるようにしました。
thread関数の第二引数をスレッドのプライオリティにした
スレッドのプライオリティがデフォルトでNORMALになりました。今まではIDLEでした。スレッドを作ってからGCに登録したりするためにそうやったような記憶があります。
ITEMIDLISTの実行時のディレクトリをそのモジュールのある場所にした
パスはずっと前からそうなんですが、ITEMIDLISTはずっと、もしくはいつからか、そうじゃなかったようです。
QueueDirectoryに全体の状態を保存させるsettings/setup/QueueStateを追加
QueueDirectoryPush, Pop, Menuで、リストボックスも含めたGiraffe+全体の状態を復元できるようにします。
ShowMenu(2)の位置指定に-1を置くことで、キャレットの位置に出せるようにした
ShowMenu2の内部的のライブラリの機能として、そういうことを可能にしたら、ShouMenuとShowMenu2との引数の扱いの不整合が生じたので、ShowMenuもそうなるようにしました。
Window.Activateをもう少し改善
Windowsのホットキーで呼ばれた場合以外でも、タスクバーがフラッシュしないようにしようとしたんですが、どうにもならない問題らしいので、失敗することを前提に、再試行を10回までやるようにしました。
マルチスレッド動作時の安定化
CPUをマルチコアにしたら落ちる頻度が明らかに高まったので、リストボックスのアイテム参照削除追加等で同期を取るようにしました。