homer drops his donut, doh, homer spills his soda, doh, homer hits the doorway, doh, homer ruins his whole day, doh!

This commit is contained in:
2026-08-06 13:33:55 +01:00
parent 74f5761e06
commit 37266ab8d4
4 changed files with 94 additions and 42 deletions
+21 -9
View File
@@ -208,24 +208,26 @@ func showUserWindow(u stanza.Presence, custom_nick string) {
mm := mo.(mucUnit)
mmm := mm.Members
mmmm, ok := mmm.Load(id)
im := gtk.NewImage()
if ok {
pres := mmmm.(stanza.Presence)
var vu VCardUpdate
pres.Get(&vu)
if vu.Photo != "" {
im := getAvatar(u.From, vu.Photo)
getAvatar(u.From, vu.Photo, im)
im.SetPixelSize(80)
im.AddCSSClass("author_img")
profile_box.Prepend(im)
} else {
im := createIdenticon(u.From, false)
createIdenticon(u.From, false, im)
im.SetPixelSize(80)
im.AddCSSClass("author_img")
profile_box.Prepend(im)
}
} else {
im := createIdenticon(u.From, false)
createIdenticon(u.From, false, im)
im.SetPixelSize(80)
im.AddCSSClass("author_img")
profile_box.Prepend(im)
@@ -457,18 +459,19 @@ func switchToTab(jid string, w *gtk.Window) {
userbox.Append(medal)
if loadedConfig.ShowAvatarsInMemberList {
default_av := createIdenticon(u.From, false)
default_av := gtk.NewImage()
createIdenticon(u.From, false, default_av)
userbox.Prepend(default_av)
var vcu VCardUpdate
ok = u.Get(&vcu)
if ok {
photo := vcu.Photo
go func() {
new_im := getAvatar(u.From, photo)
glib.IdleAdd(func() {
new_im := gtk.NewImage()
userbox.Remove(default_av)
userbox.Prepend(new_im)
go getAvatar(u.From, photo, new_im)
})
}()
@@ -642,11 +645,14 @@ func switchToTab(jid string, w *gtk.Window) {
gen.Prepend(headerBox)
muc_presence := typed_tab.muc_presence
muci := gtk.NewImage()
createIdenticon(jid, true, muci)
if muc_presence != nil {
vc := &VCardUpdate{}
ok = muc_presence.Get(vc)
if ok {
muci := getAvatar(jid, vc.Photo)
getAvatar(jid, vc.Photo, muci)
muci.SetPixelSize(80)
gen.Prepend(muci)
}
@@ -683,9 +689,11 @@ func showErrorDialog(err error, w *gtk.Window) {
err_win.Present()
}
func createIdenticon(word string, always_create bool) *gtk.Image { // This function generates an identicon
func createIdenticon(word string, always_create bool, i *gtk.Image) { // This function generates an identicon
if !loadedConfig.Identicons && !always_create {
return gtk.NewImageFromPaintable(clientAssetsLoad("DefaultAvatar"))
// return gtk.NewImageFromPaintable(clientAssetsLoad("DefaultAvatar"))
i.SetFromPaintable(clientAssetsLoad("DefaultAvatar"))
return
}
identicon.SetBackgroundColorFunction(func([]byte, color.Color) color.Color {
@@ -707,10 +715,14 @@ func createIdenticon(word string, always_create bool) *gtk.Image { // This funct
loader.Close()
p := loader.Pixbuf()
gt := gdk.NewTextureForPixbuf(p)
/*
i := gtk.NewImageFromPaintable(gt)
i.AddCSSClass(loadedConfig.CVD.String() + "_CVD")
return i
*/
i.SetFromPaintable(gt)
i.AddCSSClass(loadedConfig.CVD.String() + "_CVD")
}
func jidBuilder(en *gtk.Entry) { // This function spawns a window that allows the user to interactively build a JID