Fix lag issues
This commit is contained in:
+18
-13
@@ -7,6 +7,7 @@ import (
|
||||
"encoding/base64"
|
||||
"fmt"
|
||||
"github.com/diamondburned/gotk4/pkg/gdk/v4"
|
||||
"github.com/diamondburned/gotk4/pkg/glib/v2"
|
||||
"github.com/diamondburned/gotk4/pkg/gtk/v4"
|
||||
"github.com/google/uuid"
|
||||
"github.com/jacoblockett/sanitizefilename"
|
||||
@@ -155,35 +156,39 @@ func generateMessageWidget(p stanza.Packet) gtk.Widgetter {
|
||||
|
||||
// authorBox.Append(im)
|
||||
|
||||
n := jid.MustParse(m.From).Resourcepart()
|
||||
n := JidMustParse(m.From).Resource
|
||||
if n == "" {
|
||||
n = jid.MustParse(m.From).String()
|
||||
n = JidMustParse(m.From).Resource
|
||||
}
|
||||
al := gtk.NewLabel(n)
|
||||
al.AddCSSClass("author")
|
||||
al.SetSelectable(true)
|
||||
|
||||
if m.Type == stanza.MessageTypeGroupchat {
|
||||
mo, _ := mucmembers.Load(jid.MustParse(m.From).Bare().String())
|
||||
mo, _ := mucmembers.Load(JidMustParse(m.From).Bare())
|
||||
mm := mo.(mucUnit)
|
||||
mmm := mm.Members
|
||||
mmmm, ok := mmm.Load(id)
|
||||
if ok {
|
||||
pres := mmmm.(stanza.Presence)
|
||||
|
||||
var vu VCardUpdate
|
||||
pres.Get(&vu)
|
||||
im := createIdenticon(m.From)
|
||||
im.SetPixelSize(40)
|
||||
im.AddCSSClass("author_img")
|
||||
authorBox.Append(im)
|
||||
if vu.Photo != "" {
|
||||
im := getAvatar(m.From, vu.Photo)
|
||||
im.SetPixelSize(40)
|
||||
im.AddCSSClass("author_img")
|
||||
authorBox.Append(im)
|
||||
} else {
|
||||
im := createIdenticon(m.From)
|
||||
im.SetPixelSize(40)
|
||||
im.AddCSSClass("author_img")
|
||||
authorBox.Append(im)
|
||||
go func() {
|
||||
new_im := getAvatar(m.From, vu.Photo)
|
||||
glib.IdleAdd(func() {
|
||||
new_im.SetPixelSize(40)
|
||||
new_im.AddCSSClass("author_img")
|
||||
authorBox.Remove(im)
|
||||
authorBox.Prepend(new_im)
|
||||
})
|
||||
}()
|
||||
}
|
||||
|
||||
} else {
|
||||
im := createIdenticon(m.From)
|
||||
im.SetPixelSize(40)
|
||||
|
||||
Reference in New Issue
Block a user