wayland cursor embeded

Signed-off-by: fufesou <shuanglongchen@yeah.net>
This commit is contained in:
fufesou
2022-11-29 16:36:35 +08:00
parent e13e0ab18f
commit 4d044ca57a
18 changed files with 152 additions and 82 deletions

View File

@@ -79,8 +79,8 @@ impl InvokeUiSession for SciterHandler {
}
}
fn set_display(&self, x: i32, y: i32, w: i32, h: i32) {
self.call("setDisplay", &make_args!(x, y, w, h));
fn set_display(&self, x: i32, y: i32, w: i32, h: i32, cursor_embeded: bool) {
self.call("setDisplay", &make_args!(x, y, w, h, cursor_embeded));
// https://sciter.com/forums/topic/color_spaceiyuv-crash
// Nothing spectacular in decoder done on CPU side.
// So if you can do BGRA translation on your side the better.
@@ -223,6 +223,7 @@ impl InvokeUiSession for SciterHandler {
display.set_item("y", d.y);
display.set_item("width", d.width);
display.set_item("height", d.height);
display.set_item("cursor_embeded", d.cursor_embeded);
displays.push(display);
}
pi_sciter.set_item("displays", displays);

View File

@@ -6,6 +6,7 @@ var display_width = 0;
var display_height = 0;
var display_origin_x = 0;
var display_origin_y = 0;
var display_cursor_embeded = false;
var display_scale = 1;
var keyboard_enabled = true; // server side
var clipboard_enabled = true; // server side
@@ -15,11 +16,12 @@ var restart_enabled = true; // server side
var recording_enabled = true; // server side
var scroll_body = $(body);
handler.setDisplay = function(x, y, w, h) {
handler.setDisplay = function(x, y, w, h, cursor_embeded) {
display_width = w;
display_height = h;
display_origin_x = x;
display_origin_y = y;
display_cursor_embeded = cursor_embeded;
adaptDisplay();
if (recording) handler.record_screen(true, w, h);
}
@@ -195,6 +197,9 @@ function handler.onMouse(evt)
dragging = false;
break;
case Event.MOUSE_MOVE:
if (display_cursor_embeded) {
break;
}
if (cursor_img.style#display != "none" && keyboard_enabled) {
cursor_img.style#display = "none";
}
@@ -360,6 +365,10 @@ function updateCursor(system=false) {
}
function refreshCursor() {
if (display_cursor_embeded) {
cursor_img.style#display = "none";
return;
}
if (cur_id != -1) {
handler.setCursorId(cur_id);
}