|
>【その2】
>ウインドウを上下2分割しているかどうかで挙動が変わりました。
その1、その2ともマクロの通りにして確認することができました。
h-tomさんの言われる通り、enabledrawの動作として現状ではそのようになって
しまうと思います。
また互換性の面から挙動を変える仕様変更も難しいかもしれません。
分割時は、内部的に分割側をビットマップとして保持していますが、再描画の際
に再構成するため通常より遅いかもしれないです。
その1はマクロ修正で回避されるということで、修正可能であればその2の件も回
避できるのではないかと思います。
呼び出されるマクロ(debug_sub.mac)のほうで、disabledrawではなく
enabledrawをコメントアウトするといいと思います。
enabledrawをコメントアウトするだけでもいいと思いますが、
現状で参照カウンタのような仕組みをマクロ上でやるとしたら、以下のように
disabledraw/enabledrawをサブルーチンに置き換えるといいかもしれません。
call DisabledrawNest;
(マクロ本体)
call EnabledrawNest;
endmacro;
DisabledrawNest:
##c=val(getstaticvariable("disabledrawCount",0));
if(##c==0)disabledraw;
##c=##c+1;
setstaticvariable "disabledrawCount",str(##c), 0;
return;
EnabledrawNest:
##c=val(getstaticvariable("disabledrawCount",0));
##c=##c-1;
if(##c==0)enabledraw;
setstaticvariable "disabledrawCount",str(##c), 0;
return;
|
|