fixes "screen size change is sometimes failing".

This commit is contained in:
Miroslav Šedivý
2020-11-07 17:22:25 +01:00
parent e4fa855f7b
commit a6fd0f3d25
4 changed files with 67 additions and 64 deletions

View File

@ -64,9 +64,15 @@ func (manager *DesktopManagerCtx) Start() {
}()
}
func (manager *DesktopManagerCtx) OnScreenSizeChange(listener func(width int, height int, rate int)) {
manager.emmiter.On("screen_size_change", func(payload ...interface{}) {
listener(payload[0].(int), payload[1].(int), payload[2].(int))
func (manager *DesktopManagerCtx) OnBeforeScreenSizeChange(listener func()) {
manager.emmiter.On("before_screen_size_change", func(payload ...interface{}) {
listener()
})
}
func (manager *DesktopManagerCtx) OnAfterScreenSizeChange(listener func()) {
manager.emmiter.On("after_screen_size_change", func(payload ...interface{}) {
listener()
})
}

View File

@ -42,12 +42,10 @@ func (manager *DesktopManagerCtx) GetScreenSize() *types.ScreenSize {
}
func (manager *DesktopManagerCtx) ChangeScreenSize(width int, height int, rate int) error {
if err := xorg.ChangeScreenSize(width, height, rate); err != nil {
return err
}
manager.emmiter.Emit("screen_size_change", width, height, rate)
return nil
manager.emmiter.Emit("before_screen_size_change")
err := xorg.ChangeScreenSize(width, height, rate)
manager.emmiter.Emit("after_screen_size_change")
return err
}
func (manager *DesktopManagerCtx) SetKeyboardLayout(layout string) {