Synchronize selected user access

This commit is contained in:
Brandon McGinty (chatgpt)
2026-08-10 00:42:09 -04:00
committed by Brandon McGinty
parent 20c6997ab0
commit 3efbd019ce
5 changed files with 49 additions and 21 deletions
+28 -15
View File
@@ -32,20 +32,21 @@ type Barnard struct {
AutoTransmit bool // auto-start transmission on connect
Connected bool
Ui *uiterm.Ui
UiOutput uiterm.Textview
UiInput uiterm.Textbox
UiStatus uiterm.Label
UiTree uiterm.Tree
UiAdmin uiterm.Tree
UiInputStatus uiterm.Label
SelectedChannel *gumble.Channel
selectedUser *gumble.User
adminTargetUser *gumble.User
adminTargetChan *gumble.Channel
adminReturnItem uiterm.TreeItem
statusText string
statusNotice bool
Ui *uiterm.Ui
UiOutput uiterm.Textview
UiInput uiterm.Textbox
UiStatus uiterm.Label
UiTree uiterm.Tree
UiAdmin uiterm.Tree
UiInputStatus uiterm.Label
SelectedChannel *gumble.Channel
selectedUser *gumble.User
selectedUserMutex sync.RWMutex
adminTargetUser *gumble.User
adminTargetChan *gumble.Channel
adminReturnItem uiterm.TreeItem
statusText string
statusNotice bool
notifyChannel chan []string
@@ -136,6 +137,18 @@ func (b *Barnard) setChannelMuted(channelID uint32, muted bool) {
}
}
func (b *Barnard) selectedUserValue() *gumble.User {
b.selectedUserMutex.RLock()
defer b.selectedUserMutex.RUnlock()
return b.selectedUser
}
func (b *Barnard) setSelectedUserValue(user *gumble.User) {
b.selectedUserMutex.Lock()
b.selectedUser = user
b.selectedUserMutex.Unlock()
}
func (b *Barnard) StopTransmission() {
if b.Tx {
b.Notify("micdown", "me", "")
@@ -165,7 +178,7 @@ func (b *Barnard) TreeItemKeyPress(ui *uiterm.Ui, tree *uiterm.Tree, item uiterm
b.GotoChat()
}
if treeItem.User != nil {
if b.selectedUser == treeItem.User {
if b.selectedUserValue() == treeItem.User {
b.SetSelectedUser(nil)
b.GotoChat()
} else {