summaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
Diffstat (limited to 'client')
-rw-r--r--client/application.go27
-rw-r--r--client/channel_window.go4
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])