diff options
| -rw-r--r-- | client/application.go | 27 | ||||
| -rw-r--r-- | client/channel_window.go | 4 |
2 files changed, 17 insertions, 14 deletions
diff --git a/client/application.go b/client/application.go index f6310b9..9f6a5a1 100644 --- a/client/application.go +++ b/client/application.go @@ -71,17 +71,9 @@ func (a *application) OnDisconnect(err error) { func (a *application) OnEvent(cmd proto.Command) { switch cmd.Kind { case "p": - if len(cmd.Args) == 0 { - break + if len(cmd.Args) > 0 { + a.onPut(cmd.Target, cmd.Args[0]) } - a.windowCache.ForAll(func(win window.Window) { - switch win.(type) { - case *channelWindow: - if win.(*channelWindow).location.id == cmd.Target { - win.(*channelWindow).put(cmd.Args[0]) - } - } - }) case "update": if len(cmd.Args) > 0 { a.onUpdate(cmd.Target, cmd.Args[0]) @@ -96,12 +88,27 @@ func (a *application) OnEvent(cmd proto.Command) { } } +func (a *application) onPut(target string, msg proto.Object) { + a.windowCache.ForAll(func(win window.Window) { + switch win.(type) { + case *channelWindow: + if win.(*channelWindow).location.id == target { + win.(*channelWindow).put(msg) + } + } + }) +} + func (a *application) OnResponse(requestId string, cmd proto.Command) { switch cmd.Kind { case "you-are": if len(cmd.Args) > 0 { a.cmdWindow.info("your name is: %s", cmd.Args[0].Fields[""]) } + case "p": + if len(cmd.Args) > 0 { + a.onPut(cmd.Target, cmd.Args[0]) + } } } diff --git a/client/channel_window.go b/client/channel_window.go index 3dc208d..3aed4c0 100644 --- a/client/channel_window.go +++ b/client/channel_window.go @@ -119,10 +119,6 @@ func (cw *channelWindow) Send(text string) { } cb := func(response proto.Command) { switch response.Kind { - case "p": - if len(response.Args) > 0 { - cw.put(response.Args[0]) - } case "fail": if len(response.Args) > 0 { globalApp.cmdWindow.fail(response.Args[0]) |
