mirror of
https://github.com/kunkundi/crossdesk.git
synced 2026-10-20 19:14:39 +08:00
[fix] follow the selected device cursor in DeskHub
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import { GalleryStrings } from "device_strings.slint";
|
||||
import { RemoteCursor } from "remote_cursor.slint";
|
||||
import { DeviceCardActions, DeviceCardStyle } from "device_card_actions.slint";
|
||||
import { GalleryMenuButton } from "gallery_menu_button.slint";
|
||||
import { GroupFilter } from "group_filter.slint";
|
||||
@@ -44,6 +45,7 @@ export struct GalleryActionDevice {
|
||||
|
||||
export component GalleryView inherits Rectangle {
|
||||
in property <bool> controlling: false;
|
||||
in property <int> remote-cursor-shape: 0;
|
||||
in property <bool> group-controlling: false;
|
||||
in property <bool> input-suspended: false;
|
||||
in property <bool> simplified: false;
|
||||
@@ -620,6 +622,8 @@ export component GalleryView inherits Rectangle {
|
||||
accept
|
||||
}
|
||||
TouchArea {
|
||||
mouse-cursor: root.controlling && !root.input-suspended
|
||||
? RemoteCursor.shape(root.remote-cursor-shape) : MouseCursor.default;
|
||||
pointer-event(event) => {
|
||||
if !root.input-suspended {
|
||||
if event.kind == PointerEventKind.down { video-focus.focus(); }
|
||||
|
||||
@@ -309,6 +309,7 @@ export component MainWindow inherits Window {
|
||||
}
|
||||
in-out property <string> connection-input-error;
|
||||
in property <bool> gallery-controlling: false;
|
||||
in property <int> gallery-remote-cursor-shape: 0;
|
||||
in property <bool> gallery-group-controlling: false;
|
||||
out property <float> gallery-video-width: gallery.video-width;
|
||||
out property <float> gallery-video-height: gallery.video-height;
|
||||
@@ -1323,6 +1324,7 @@ export component MainWindow inherits Window {
|
||||
focus-rail-height <=> root.gallery-focus-rail-height;
|
||||
network-open => { root.gallery-network-open = true; }
|
||||
controlling: root.gallery-controlling;
|
||||
remote-cursor-shape: root.gallery-remote-cursor-shape;
|
||||
group-controlling: root.gallery-group-controlling;
|
||||
input-suspended: root.gallery-transitioning;
|
||||
pointer-input(button, kind, x, y) => { root.gallery-pointer(button, kind, x, y); }
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
export global RemoteCursor {
|
||||
// Numeric values mirror crossdesk::RemoteCursorShape on the wire.
|
||||
public pure function shape(value: int) -> MouseCursor {
|
||||
return value == 1 ? MouseCursor.none
|
||||
: value == 2 ? MouseCursor.help
|
||||
: value == 3 ? MouseCursor.pointer
|
||||
: value == 4 ? MouseCursor.progress
|
||||
: value == 5 ? MouseCursor.wait
|
||||
: value == 6 ? MouseCursor.crosshair
|
||||
: value == 7 ? MouseCursor.text
|
||||
: value == 8 ? MouseCursor.alias
|
||||
: value == 9 ? MouseCursor.copy
|
||||
: value == 10 ? MouseCursor.move
|
||||
: value == 11 ? MouseCursor.no-drop
|
||||
: value == 12 ? MouseCursor.not-allowed
|
||||
: value == 13 ? MouseCursor.grab
|
||||
: value == 14 ? MouseCursor.grabbing
|
||||
: value == 15 ? MouseCursor.col-resize
|
||||
: value == 16 ? MouseCursor.row-resize
|
||||
: value == 17 ? MouseCursor.n-resize
|
||||
: value == 18 ? MouseCursor.e-resize
|
||||
: value == 19 ? MouseCursor.s-resize
|
||||
: value == 20 ? MouseCursor.w-resize
|
||||
: value == 21 ? MouseCursor.ne-resize
|
||||
: value == 22 ? MouseCursor.nw-resize
|
||||
: value == 23 ? MouseCursor.se-resize
|
||||
: value == 24 ? MouseCursor.sw-resize
|
||||
: value == 25 ? MouseCursor.ew-resize
|
||||
: value == 26 ? MouseCursor.ns-resize
|
||||
: value == 27 ? MouseCursor.nesw-resize
|
||||
: value == 28 ? MouseCursor.nwse-resize
|
||||
: MouseCursor.default;
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
import { ComboBox, ScrollView } from "std-widgets.slint";
|
||||
import { RemoteCursor } from "remote_cursor.slint";
|
||||
import { FontAwesomeIcons, IconButton, PrimaryButton, DialogSurface, ImGuiLineStyle, ImGuiFontStyle, FloatingBarStyle } from "common.slint";
|
||||
|
||||
export struct StreamTab {
|
||||
@@ -714,36 +715,8 @@ export component StreamWindow inherits Window {
|
||||
accept
|
||||
}
|
||||
pointer := TouchArea {
|
||||
mouse-cursor: !root.remote-cursor-active ? MouseCursor.default
|
||||
: root.remote-cursor-shape == 1 ? MouseCursor.none
|
||||
: root.remote-cursor-shape == 2 ? MouseCursor.help
|
||||
: root.remote-cursor-shape == 3 ? MouseCursor.pointer
|
||||
: root.remote-cursor-shape == 4 ? MouseCursor.progress
|
||||
: root.remote-cursor-shape == 5 ? MouseCursor.wait
|
||||
: root.remote-cursor-shape == 6 ? MouseCursor.crosshair
|
||||
: root.remote-cursor-shape == 7 ? MouseCursor.text
|
||||
: root.remote-cursor-shape == 8 ? MouseCursor.alias
|
||||
: root.remote-cursor-shape == 9 ? MouseCursor.copy
|
||||
: root.remote-cursor-shape == 10 ? MouseCursor.move
|
||||
: root.remote-cursor-shape == 11 ? MouseCursor.no-drop
|
||||
: root.remote-cursor-shape == 12 ? MouseCursor.not-allowed
|
||||
: root.remote-cursor-shape == 13 ? MouseCursor.grab
|
||||
: root.remote-cursor-shape == 14 ? MouseCursor.grabbing
|
||||
: root.remote-cursor-shape == 15 ? MouseCursor.col-resize
|
||||
: root.remote-cursor-shape == 16 ? MouseCursor.row-resize
|
||||
: root.remote-cursor-shape == 17 ? MouseCursor.n-resize
|
||||
: root.remote-cursor-shape == 18 ? MouseCursor.e-resize
|
||||
: root.remote-cursor-shape == 19 ? MouseCursor.s-resize
|
||||
: root.remote-cursor-shape == 20 ? MouseCursor.w-resize
|
||||
: root.remote-cursor-shape == 21 ? MouseCursor.ne-resize
|
||||
: root.remote-cursor-shape == 22 ? MouseCursor.nw-resize
|
||||
: root.remote-cursor-shape == 23 ? MouseCursor.se-resize
|
||||
: root.remote-cursor-shape == 24 ? MouseCursor.sw-resize
|
||||
: root.remote-cursor-shape == 25 ? MouseCursor.ew-resize
|
||||
: root.remote-cursor-shape == 26 ? MouseCursor.ns-resize
|
||||
: root.remote-cursor-shape == 27 ? MouseCursor.nesw-resize
|
||||
: root.remote-cursor-shape == 28 ? MouseCursor.nwse-resize
|
||||
: MouseCursor.default;
|
||||
mouse-cursor: root.remote-cursor-active
|
||||
? RemoteCursor.shape(root.remote-cursor-shape) : MouseCursor.default;
|
||||
pointer-event(event) => {
|
||||
let over-control = self.mouse-x >= control.x
|
||||
&& self.mouse-x <= control.x + control.width
|
||||
|
||||
Reference in New Issue
Block a user