diff --git a/app/mxwm/startz.js b/app/mxwm/startz.js index 6cb7fe9..ac9c225 100644 --- a/app/mxwm/startz.js +++ b/app/mxwm/startz.js @@ -84,6 +84,7 @@ async function onMouseDown(ctx, button) { if (isMouseOnHeader(window)) { dragging_window = window["wid"] selected_window = window["wid"] + setGraphicsCursor("grabbing") } if (isMouseInside(window)) { selected_window = window["wid"] @@ -96,6 +97,7 @@ async function onMouseUp(ctx, button) { for (let window of listWindows()) { if (isMouseOnHeader(window)) { dragging_window = null + setGraphicsCursor("grab") } if (isMouseInside(window)) { window.onmouseup(button) @@ -106,11 +108,14 @@ async function onMouseUp(ctx, button) { let mouse_position = [0, 0] async function onMouseMove(ctx, x, y) { + let cursor = "default" + if (dragging_window != null) { let window = getWindow(dragging_window) if (isMouseOnHeader(window)) { window.x += x - mouse_position[0] window.y += y - mouse_position[1] + cursor = "grabbing" } } @@ -120,7 +125,12 @@ async function onMouseMove(ctx, x, y) { if (isMouseInside(window)) { window.onmousemove(mouse_position[0] - window.x, mouse_position[1] - window.y) } + if (dragging_window == null && isMouseOnHeader(window)) { + cursor = "grab" + } } + + setGraphicsCursor(cursor) } async function main(args) { diff --git a/sys/graphics.js b/sys/graphics.js index 091077f..bf102c6 100644 --- a/sys/graphics.js +++ b/sys/graphics.js @@ -1,6 +1,11 @@ var graphics_canvas = null var graphics_context = null +function setGraphicsCursor(name) { + if (graphics_canvas != null) { + graphics_canvas.style.cursor = name + } +} function enableGraphics(options={}) { document.body.style.overflow = "hidden" diff --git a/sys/terminal.js b/sys/terminal.js index af247f6..447206f 100644 --- a/sys/terminal.js +++ b/sys/terminal.js @@ -177,9 +177,11 @@ document.onkeydown = (e) => { } setInterval(() => { - if (graphics_canvas == null) { - clipboard_collect.focus() - } + try { + if (graphics_canvas == null) { + clipboard_collect.focus() + } + } catch (e) {} }); clipboard_collect.onpaste = (e) => {