Fix code relating to cookies

This commit is contained in:
Sasha Koshka 2024-09-12 02:42:55 -04:00
parent e08d14135b
commit 2312b48a28
5 changed files with 12 additions and 25 deletions

View File

@ -505,11 +505,12 @@ func (this *iconSet) MimeIcon (mime data.Mime, size tomo.IconSize) canvas.Textur
}
}
func (this *iconSet) Close () {
func (this *iconSet) Close () error {
if this.atlasSmall != nil {
this.atlasSmall.Close()
}
if this.atlasLarge != nil {
this.atlasLarge.Close()
}
return nil
}

View File

@ -101,7 +101,7 @@ func (this *iconTheme) MimeIcon (mime data.Mime, size tomo.IconSize) canvas.Text
}
}
func (this *iconTheme) Close () {
func (this *iconTheme) Close () error {
closeAllIn := func (mp map[tomo.Icon] canvas.TextureCloser) {
for _, texture := range mp {
if texture != nil {
@ -112,6 +112,7 @@ func (this *iconTheme) Close () {
closeAllIn(this.texturesSmall)
closeAllIn(this.texturesMedium)
closeAllIn(this.texturesLarge)
return nil
}
func (this *iconTheme) icon (icon tomo.Icon, size tomo.IconSize) canvas.TextureCloser {

View File

@ -1,6 +1,5 @@
package fallbackStyle
import "io"
import "bytes"
import "image"
import _ "embed"
@ -47,12 +46,6 @@ var borderColorShade = [4]color.Color { colorShade, colorShade, col
//go:embed assets/atlas.png
var atlasBytes []byte
type closerCookie struct { io.Closer }
func (cookie closerCookie) Close () { cookie.Closer.Close() }
func newCloserCookie (closer io.Closer) event.Cookie {
return closerCookie { Closer: closer }
}
// New returns Wintergreen, the default Tomo style. It is neutral-gray with
// green and turquoise accents.
func New () (*style.Style, event.Cookie) {
@ -66,7 +59,7 @@ func New () (*style.Style, event.Cookie) {
textureHandleVertical := atlasTexture.SubTexture(image.Rect(28, 0, 29, 2))
textureHandleHorizontal := atlasTexture.SubTexture(image.Rect(28, 0, 30, 1))
cookie := event.MultiCookie(newCloserCookie(atlasTexture))
cookie := event.MultiCookie(atlasTexture)
rules := []style.Rule {
// *.*

View File

@ -1,7 +1,6 @@
package tss
import "os"
import "io"
import "fmt"
import "image"
import "errors"
@ -81,7 +80,7 @@ func (this *styleBuilder) build () (*style.Style, event.Cookie, error) {
// add each texture to the cookies list
for _, texture := range this.textures {
cookies = append(cookies, closerCookie { Closer: texture })
cookies = append(cookies, texture)
}
return sty, event.MultiCookie(cookies...), nil
@ -398,10 +397,3 @@ func copyBorderValue[T any, U ~[]T] (destination, source U) bool {
return false
}
}
type closerCookie struct {
io.Closer
}
func (cookie closerCookie) Close () {
cookie.Closer.Close()
}

View File

@ -7,11 +7,6 @@ var manager struct {
count int
}
type funcCookie func ()
func (cookie funcCookie) Close () {
cookie()
}
// WaitFor ensures that the application will stay running while the given window
// is open.
func WaitFor (window tomo.Window) event.Cookie {
@ -27,7 +22,12 @@ func WaitFor (window tomo.Window) event.Cookie {
}
}
handleWaitClose := func () error {
handleClose();
return nil
}
return event.MultiCookie (
window.OnClose(handleClose),
funcCookie(handleClose))
event.FuncCookie(handleWaitClose))
}