🎨 Custom Emoji folders no longer require manual refresh when they change https://github.com/siyuan-note/siyuan/issues/11749

This commit is contained in:
Daniel 2024-06-18 19:31:04 +08:00
parent aa7a745eb2
commit ed85d29e51
No known key found for this signature in database
GPG key ID: 86211BA83DF03017
2 changed files with 4 additions and 27 deletions

View file

@ -56,28 +56,17 @@ func watchEmojis() {
go func() { go func() {
defer logging.Recover() defer logging.Recover()
var ( timer := time.NewTimer(100 * time.Millisecond)
timer *time.Timer
lastEvent fsnotify.Event
)
timer = time.NewTimer(100 * time.Millisecond)
<-timer.C // timer should be expired at first <-timer.C // timer should be expired at first
for { for {
select { select {
case event, ok := <-emojisWatcher.Events: case _, ok := <-emojisWatcher.Events:
if !ok { if !ok {
return return
} }
lastEvent = event
timer.Reset(time.Millisecond * 100) timer.Reset(time.Millisecond * 100)
if lastEvent.Op&fsnotify.Rename == fsnotify.Rename || lastEvent.Op&fsnotify.Write == fsnotify.Write {
util.PushReloadEmojiConf()
} else if lastEvent.Op&fsnotify.Remove == fsnotify.Remove {
util.PushReloadEmojiConf()
}
case err, ok := <-emojisWatcher.Errors: case err, ok := <-emojisWatcher.Errors:
if !ok { if !ok {
return return
@ -85,11 +74,7 @@ func watchEmojis() {
logging.LogErrorf("watch emojis failed: %s", err) logging.LogErrorf("watch emojis failed: %s", err)
case <-timer.C: case <-timer.C:
//logging.LogInfof("emojis changed: %s", lastEvent) //logging.LogInfof("emojis changed: %s", lastEvent)
if lastEvent.Op&fsnotify.Remove == fsnotify.Remove { util.PushReloadEmojiConf()
util.PushReloadEmojiConf()
} else {
util.PushReloadEmojiConf()
}
} }
} }
}() }()

View file

@ -52,15 +52,7 @@ func watchEmojis() {
} }
//logging.LogInfof("emojis changed: %s", event) //logging.LogInfof("emojis changed: %s", event)
if watcher.Write == event.Op { util.PushReloadEmojiConf()
IncSync()
}
if watcher.Remove == event.Op {
util.PushReloadEmojiConf()
} else {
util.PushReloadEmojiConf()
}
case err, ok := <-emojisWatcher.Error: case err, ok := <-emojisWatcher.Error:
if !ok { if !ok {
return return