kiwanami / emacs-window-manager

Customizable window manager for emacs
230 stars 28 forks source link

main windowからフォーカスが外れる。 #58

Closed myuhe closed 11 years ago

myuhe commented 11 years ago

mainにフォーカスがある時に、subが開くとフォーカスがmainから離れることがあります。

当方の環境は GNU Emacs 24.3.50.1 e2wm、window-layoutは現時点での先端です。

以下、再現方法です。

  1. e2wmを起動
  2. M-x byte-compile-fileでWarningが出る任意のelispをコンパイル
  3. _Compile-Log_バッファがsubで開き、フォーカスがmainからプラグインのウィンドウに移る。

調査不足かもしれませんが、Subが開くときに、フォーカスがSubに移らない場合、この現象が発生するような気がします。

kiwanami commented 11 years ago

ありがとうございます! こちらでも把握できた感じです。フォーカスがどこかに行ってしまうのはさすがに不便なので直してみます。

myuhe commented 11 years ago

どうやら、 after-buryやdisplayのメソッドが追加された時に潜りこんだようです。

参考になるかわかりませんが、自分用のバージョン管理で、タイトルの現象が発生する前と後のバージョンでとったdiffが以下のとおりです。

https://gist.github.com/myuhe/5027300

また、他にも何かわかったら追加で報告します。

tkf commented 11 years ago

59 で解決出来たかと思います。チェックしてみて下さい。

ちなみに以下のシナリオでテストしようとしたんですが、これだと #59 関係なく通ってしまうんですよね。なんででしょう。。。

  Scenario: Pop to sub window when displaying in sub window
    Given I enabled e2wm
     And I switch to "code" perspective
     And I switch to window "main"
   Given I open temp file "invalid.el"
     And I insert:
       """
       (require 'cl)
       """
     And I press "C-x C-s"
    When I start an action chain
     And I press "M-x"
     And I type "byte-compile-file"
     And I press "RET"
     And I execute the action chain
    Then I should be in window "sub"
tkf commented 11 years ago

code pst で M-: (display-buffer (get-buffer-create "*test*")) RET が一番単純な再現方法みたいですね。

あと、e2wm で display メソッドを定義しているのは two だけだと思うので、 code だと popup と同じ挙動になります。

tkf commented 11 years ago

再現シナリオかけました: #60

59 をマージすると通ります。

  Scenario: Display method should work even windows were distorted (#58)
    Given I enabled e2wm
      And I switch to "code" perspective
      And windows are distorted due to manual rearrangement
     When I display buffer "*test*"
     Then I should be in window "sub"

save-selected-window が保存した window を wlf が kill してしまってるのが原因のようです。詳しくは追えてませんが、どの道 save-selected-window 使うのがそもそも間違いでした。

kiwanami commented 11 years ago

ありがとうございます!とりあえず手元ではテストも通って治ったようです。 ecukesのテストやっぱりすごいですね。今後うまく活用できるようにしたいと思います。

myuhe commented 11 years ago

うちのでも正しく動作しました。ありがとうございました!!

tkf commented 11 years ago

@kiwanami 勝手にテストフレームワーク決めやがって状態じゃなくて良かったです(ぉぃ。 wlf もテストしましょう!!

@myuhe あと、複数フレーム対応も普通に出来てるっぽいんで人柱して下さい。