Archived
2
0

join GetScreenSizeChangeChannel.

This commit is contained in:
Miroslav Šedivý
2023-01-29 18:00:56 +01:00
parent 6e62b796fc
commit f3080713ce
4 changed files with 42 additions and 52 deletions

View File

@ -16,21 +16,21 @@ import (
var mu = sync.Mutex{}
type DesktopManagerCtx struct {
logger zerolog.Logger
wg sync.WaitGroup
shutdown chan struct{}
beforeScreenSizeChangeChannel chan bool
afterScreenSizeChangeChannel chan int16
config *config.Desktop
logger zerolog.Logger
wg sync.WaitGroup
shutdown chan struct{}
config *config.Desktop
screenSizeChangeChannel chan bool
}
func New(config *config.Desktop) *DesktopManagerCtx {
return &DesktopManagerCtx{
logger: log.With().Str("module", "desktop").Logger(),
shutdown: make(chan struct{}),
beforeScreenSizeChangeChannel: make(chan bool),
afterScreenSizeChangeChannel: make(chan int16),
config: config,
logger: log.With().Str("module", "desktop").Logger(),
shutdown: make(chan struct{}),
config: config,
screenSizeChangeChannel: make(chan bool),
}
}
@ -84,18 +84,15 @@ func (manager *DesktopManagerCtx) Start() {
}()
}
func (manager *DesktopManagerCtx) GetBeforeScreenSizeChangeChannel() chan bool {
return manager.beforeScreenSizeChangeChannel
}
func (manager *DesktopManagerCtx) GetAfterScreenSizeChangeChannel() chan int16 {
return manager.afterScreenSizeChangeChannel
func (manager *DesktopManagerCtx) GetScreenSizeChangeChannel() chan bool {
return manager.screenSizeChangeChannel
}
func (manager *DesktopManagerCtx) Shutdown() error {
manager.logger.Info().Msgf("desktop shutting down")
close(manager.shutdown)
close(manager.screenSizeChangeChannel)
manager.wg.Wait()
xorg.DisplayClose()

View File

@ -72,10 +72,10 @@ func (manager *DesktopManagerCtx) ScreenConfigurations() map[int]types.ScreenCon
func (manager *DesktopManagerCtx) SetScreenSize(size types.ScreenSize) error {
mu.Lock()
manager.GetBeforeScreenSizeChangeChannel() <- true
manager.GetScreenSizeChangeChannel() <- true
defer func() {
manager.GetAfterScreenSizeChangeChannel() <- size.Rate
manager.GetScreenSizeChangeChannel() <- false
mu.Unlock()
}()