diff options
author | Tulir Asokan <tulir@maunium.net> | 2018-05-04 00:55:28 +0300 |
---|---|---|
committer | Tulir Asokan <tulir@maunium.net> | 2018-05-04 00:55:30 +0300 |
commit | 122b2441c991a941193769569c532d8b0e198904 (patch) | |
tree | d4a42685edae72bde94b1e20142f90fd66168bec /ui/view-main.go | |
parent | 93cbdc0ca88d46454b96043d8baf4b231e91474a (diff) |
Add support for explicit ordering and limiting rooms shown under a tag
Fixes #41
Diffstat (limited to 'ui/view-main.go')
-rw-r--r-- | ui/view-main.go | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/ui/view-main.go b/ui/view-main.go index b058581..7a94194 100644 --- a/ui/view-main.go +++ b/ui/view-main.go @@ -263,8 +263,13 @@ func (view *MainView) MouseEventHandler(roomView *RoomView, event *tcell.EventMo view.parent.Render() case tcell.Button1: _, rly, _, _ := msgView.GetRect() - n := y - rly + 1 - view.SwitchRoom(view.roomList.Get(n)) + line := y - rly + 1 + switchToTag, switchToRoom := view.roomList.HandleClick(x, line, event.Modifiers() == tcell.ModCtrl) + if switchToRoom != nil { + view.SwitchRoom(switchToTag, switchToRoom) + } else { + view.parent.Render() + } } default: debug.Print("Unhandled mouse event:", event.Buttons(), event.Modifiers(), x, y) @@ -386,11 +391,11 @@ func (view *MainView) UpdateTags(room *rooms.Room, newTags []rooms.RoomTag) { for _, tag := range room.RawTags { view.roomList.RemoveFromTag(tag.Tag, room) } - view.roomList.AddToTag("", room) + view.roomList.AddToTag(rooms.RoomTag{Tag: "", Order: "0.5"}, room) } else if len(room.RawTags) == 0 { view.roomList.RemoveFromTag("", room) for _, tag := range newTags { - view.roomList.AddToTag(tag.Tag, room) + view.roomList.AddToTag(tag, room) } } else { NewTags: @@ -400,7 +405,7 @@ func (view *MainView) UpdateTags(room *rooms.Room, newTags []rooms.RoomTag) { continue NewTags } } - view.roomList.AddToTag(newTag.Tag, room) + view.roomList.AddToTag(newTag, room) } OldTags: for _, oldTag := range room.RawTags { @@ -456,6 +461,7 @@ func (view *MainView) NotifyMessage(room *rooms.Room, message ifc.Message, shoul } message.SetIsHighlight(should.Highlight) + room.LastReceivedMessage = message.Timestamp() view.roomList.Bump(room) } |