バグ: デバッグモード時にF3を押し続けるとデバッガが増殖する

Issue #338 resolved
Liar_cw NA created an issue
cardwirthpy_20160219
CardWirthPy 0.12.4 Alpha 4
Build: 2016-02-19 19:40:55

表題のとおりです。

デバッグモード時にF3を押しっぱなしにしてデバッガの開閉を繰り返すと、 押し続けた時間だけデバッガが無制限に増殖していきます。

Comments (6)

  1. k4nagatsuki repo owner

    ご報告ありがとうございます。

    デバッガをクローズして、デバッガがオープン済みかどうかの判断に使う変数を初期化するまでのタイミングにオープン操作を複数割りこませる事ができてしまっていたようです。

    pull request #1337で修正できたと思います。

  2. Liar_cw NA reporter
    cardwirthpy_20160219b
    CardWirthPy 0.12.4 Alpha 4
    Build: 2016-02-19 21:33:35
    

    確率は大きく下がりましたが、 多重にオープンしてしまうことがありました。

    そもそもF3を押し続けていると開閉を高速で繰り返してしまう挙動に問題があると思います。 F6の同行キャスト表示のように 一度キーから指を離さないと入力を受け付けないようにされてみてはどうでしょうか。

  3. k4nagatsuki repo owner

    pull request #1339で同期処理を行うようにしました。これでどうでしょうか。

    そもそもF3を押し続けていると開閉を高速で繰り返してしまう挙動に問題があると思います。 F6の同行キャスト表示のように 一度キーから指を離さないと入力を受け付けないようにされてみてはどうでしょうか。

    これには実はちょっとした問題があります。

    いわゆるメニューのショートカットキーというものは、キーを押下したタイミングで処理されるものとWindowsでは決まっています。また、キーを押し続けるとキー押下イベントが連続発生するものとも決まっています。キーが上がった時に開閉処理を行うようにすれば連続での処理は回避できますが、そうすると、

    1. デバッガ上でF3押下でショートカットキー処理
    2. デバッガ閉じる
    3. F3を離す
    4. キーが上がったのでデバッガ開閉処理が発生
    5. 閉じたはずのデバッガが再度開く、

    という事になってしまいます。これを解決するには誤動作の可能性のあるあんまり確実でない方法に頼らなくてはならないので、妥協して今のような形になっています。

  4. Liar_cw NA reporter
    cardwirthpy_20160219d
    CardWirthPy 0.12.4 Alpha 4
    Build: 2016-02-19 23:25:30
    

    数分間押し続けてみましたが、多重オープンすることはありませんでした。 多重に開いてしまうことは無くなったと思います。

    F3によるデバッガの開閉を多用しているので今回この問題に気が付くことが出来ましたが、 さすがにデバッガの高速開閉を楽しむ奇特な方はいらっしゃらないでしょうし、 確かに徹底的に取り組むような問題ではないのかもしれませんね。 (余談ですが、個人的に興味のある問題ではありますがPythonのインデントがどうにも苦手でして……。 提案や検証、バグ報告くらいしかできそうにありません。)

  5. k4nagatsuki repo owner

    ありがとうございます。では、これで完了とさせていただきます。

    Pythonは結構特殊な部類に入る文法の言語ですから、とっつきにくいのは仕方ないと思います(私もCWPyがなければまだ触れていなかったかもしれません)。慣れればいい言語なんですけどね。

  6. Log in to comment