1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-01-24 21:42:51 -05:00

core: improve evdev capslock detection, wayland context fixes

This commit is contained in:
bbedward
2025-11-14 12:04:08 -05:00
parent 72534b7674
commit 5685e39631
17 changed files with 299 additions and 93 deletions

View File

@@ -10,11 +10,12 @@ import (
)
type SharedContext struct {
display *wlclient.Display
stopChan chan struct{}
wg sync.WaitGroup
mu sync.Mutex
started bool
display *wlclient.Display
stopChan chan struct{}
fatalError chan error
wg sync.WaitGroup
mu sync.Mutex
started bool
}
func New() (*SharedContext, error) {
@@ -24,9 +25,10 @@ func New() (*SharedContext, error) {
}
sc := &SharedContext{
display: display,
stopChan: make(chan struct{}),
started: false,
display: display,
stopChan: make(chan struct{}),
fatalError: make(chan error, 1),
started: false,
}
return sc, nil
@@ -49,8 +51,22 @@ func (sc *SharedContext) Display() *wlclient.Display {
return sc.display
}
func (sc *SharedContext) FatalError() <-chan error {
return sc.fatalError
}
func (sc *SharedContext) eventDispatcher() {
defer sc.wg.Done()
defer func() {
if r := recover(); r != nil {
err := fmt.Errorf("FATAL: Wayland event dispatcher panic: %v", r)
log.Error(err)
select {
case sc.fatalError <- err:
default:
}
}
}()
ctx := sc.display.Context()
for {