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

extws: fix capability check & don't show names

This commit is contained in:
bbedward
2025-11-17 09:50:06 -05:00
parent 984cfe7f98
commit 46e96b49f0
5 changed files with 108 additions and 23 deletions

View File

@@ -2,6 +2,7 @@ package extworkspace
import (
"fmt"
"sync"
"time"
"github.com/AvengeMedia/DankMaterialShell/core/internal/log"
@@ -9,6 +10,45 @@ import (
wlclient "github.com/AvengeMedia/DankMaterialShell/core/pkg/go-wayland/wayland/client"
)
func CheckCapability() bool {
display, err := wlclient.Connect("")
if err != nil {
return false
}
defer display.Destroy()
registry, err := display.GetRegistry()
if err != nil {
return false
}
found := false
var mu sync.Mutex
done := make(chan struct{})
registry.SetGlobalHandler(func(e wlclient.RegistryGlobalEvent) {
if e.Interface == ext_workspace.ExtWorkspaceManagerV1InterfaceName {
mu.Lock()
found = true
mu.Unlock()
}
})
go func() {
for i := 0; i < 10 && !found; i++ {
if err := display.Context().Dispatch(); err != nil {
break
}
time.Sleep(10 * time.Millisecond)
}
registry.Destroy()
close(done)
}()
<-done
return found
}
func NewManager(display *wlclient.Display) (*Manager, error) {
m := &Manager{
display: display,