set inactive cursor draw function.

This commit is contained in:
Miroslav Šedivý 2021-11-01 21:15:57 +01:00
parent ed5d2175ae
commit 606c9337bb
5 changed files with 20 additions and 18 deletions

View File

@ -17,7 +17,7 @@
import { Vue, Component, Ref, Prop, Watch } from 'vue-property-decorator'
import { Cursor, Session } from './types/state'
import { CursorDrawFunction, Dimension } from './types/cursors'
import { InactiveCursorDrawFunction, Dimension } from './types/cursors'
const CANVAS_SCALE = 2
@ -44,7 +44,7 @@
private readonly cursors!: Cursor[]
@Prop()
private readonly cursorDraw!: CursorDrawFunction | null
private readonly cursorDraw!: InactiveCursorDrawFunction | null
mounted() {
// get canvas overlay context

View File

@ -10,6 +10,7 @@
:screenSize="state.screen.size"
:canvasSize="canvasSize"
:cursors="state.cursors.list"
:cursorDraw="inactiveCursorDrawFunction"
/>
<neko-overlay
:webrtc="connection.webrtc"
@ -75,7 +76,7 @@
import { ReconnectorConfig } from './types/reconnector'
import NekoState from './types/state'
import { Dimension, CursorDrawFunction } from './types/overlay'
import { CursorDrawFunction, InactiveCursorDrawFunction, Dimension } from './types/cursors'
import Overlay from './overlay.vue'
import Screencast from './screencast.vue'
import Cursors from './cursors.vue'
@ -97,6 +98,7 @@
observer = new ResizeObserver(this.onResize.bind(this))
canvasSize: Dimension = { width: 0, height: 0 }
cursorDrawFunction: CursorDrawFunction | null = null
inactiveCursorDrawFunction: InactiveCursorDrawFunction | null = null
@Prop({ type: String })
private readonly server!: string
@ -360,6 +362,10 @@
Vue.set(this, 'cursorDrawFunction', fn)
}
public setInactiveCursorDrawFunction(fn?: InactiveCursorDrawFunction) {
Vue.set(this, 'inactiveCursorDrawFunction', fn)
}
// TODO: Remove? Use REST API only?
public setScreenSize(width: number, height: number, rate: number) {
this.connection.websocket.send(EVENT.SCREEN_SET, { width, height, rate })

View File

@ -39,7 +39,7 @@
import { NekoWebRTC } from './internal/webrtc'
import { Scroll } from './types/state'
import { CursorPosition, CursorImage } from './types/webrtc'
import { CursorDrawFunction, Dimension, KeyboardModifiers } from './types/overlay'
import { CursorDrawFunction, Dimension, KeyboardModifiers } from './types/cursors'
const WHEEL_STEP = 53 // Delta threshold for a mouse wheel step
const WHEEL_LINE_HEIGHT = 19

View File

@ -1,6 +1,15 @@
export type CursorDrawFunction = (ctx: CanvasRenderingContext2D, x: number, y: number, cursorTag: string) => void
import { CursorImage } from './webrtc'
export type CursorDrawFunction = (ctx: CanvasRenderingContext2D, x: number, y: number, cursorElement: HTMLImageElement, cursorImage: CursorImage, cursorTag: string) => void
export type InactiveCursorDrawFunction = (ctx: CanvasRenderingContext2D, x: number, y: number, cursorTag: string) => void
export interface Dimension {
width: number
height: number
}
export interface KeyboardModifiers {
capslock: boolean
numlock: boolean
}

View File

@ -1,13 +0,0 @@
import { CursorImage } from './webrtc'
export type CursorDrawFunction = (ctx: CanvasRenderingContext2D, x: number, y: number, cursorElement: HTMLImageElement, cursorImage: CursorImage, cursorTag: string) => void
export interface Dimension {
width: number
height: number
}
export interface KeyboardModifiers {
capslock: boolean
numlock: boolean
}