From a7d4511037d64f30862a85d9cea3f5eed50adce6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20=C5=A0ediv=C3=BD?= Date: Sun, 10 Jan 2021 12:42:07 +0100 Subject: [PATCH] cursor Image on connect. --- internal/types/message/messages.go | 1 + internal/websocket/handler/system.go | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/internal/types/message/messages.go b/internal/types/message/messages.go index f220e8cd..a3b9ba4b 100644 --- a/internal/types/message/messages.go +++ b/internal/types/message/messages.go @@ -20,6 +20,7 @@ type SystemInit struct { ScreenSize ScreenSize `json:"screen_size"` Members map[string]MemberData `json:"members"` ImplicitHosting bool `json:"implicit_hosting"` + CursorImage *CursorImage `json:"cursor_image"` } type SystemAdmin struct { diff --git a/internal/websocket/handler/system.go b/internal/websocket/handler/system.go index 08802081..4f08831d 100644 --- a/internal/websocket/handler/system.go +++ b/internal/websocket/handler/system.go @@ -4,6 +4,7 @@ import ( "demodesk/neko/internal/types" "demodesk/neko/internal/types/event" "demodesk/neko/internal/types/message" + "demodesk/neko/internal/utils" ) func (h *MessageHandlerCtx) systemInit(session types.Session) error { @@ -32,6 +33,20 @@ func (h *MessageHandlerCtx) systemInit(session types.Session) error { } } + var cursorImage *message.CursorImage + cur := h.desktop.GetCursorImage() + uri, err := utils.GetCursorImageURI(cur) + if err == nil { + cursorImage = &message.CursorImage{ + Event: event.CURSOR_IMAGE, + Uri: uri, + Width: cur.Width, + Height: cur.Height, + X: cur.Xhot, + Y: cur.Yhot, + } + } + return session.Send( message.SystemInit{ Event: event.SYSTEM_INIT, @@ -44,6 +59,7 @@ func (h *MessageHandlerCtx) systemInit(session types.Session) error { }, Members: members, ImplicitHosting: h.sessions.ImplicitHosting(), + CursorImage: cursorImage, }) }