diff --git a/desktop/gui.cpp b/desktop/gui.cpp index ebabf51..5be98a0 100644 --- a/desktop/gui.cpp +++ b/desktop/gui.cpp @@ -6851,13 +6851,12 @@ bool UISetCursor(EsWindow *window) { CURSOR(default, 23, 18, 1, 1, 15, 24); } - bool _xor = cursorStyle == ES_CURSOR_TEXT; - bool shadow = !_xor && api.global->showCursorShadow; + bool shadow = cursorStyle != ES_CURSOR_TEXT && api.global->showCursorShadow; return EsSyscall(ES_SYSCALL_WINDOW_SET_CURSOR, window->handle, (uintptr_t) theming.cursors.bits + x * 4 + y * theming.cursors.stride, ((0xFF & ox) << 0) | ((0xFF & oy) << 8) | ((0xFF & w) << 16) | ((0xFF & h) << 24), - theming.cursors.stride | ((uint32_t) _xor << 31) | ((uint32_t) shadow << 30)); + theming.cursors.stride | ((uint32_t) shadow << 30)); } void UIProcessWindowManagerMessage(EsWindow *window, EsMessage *message, ProcessMessageTiming *timing) { diff --git a/kernel/graphics.cpp b/kernel/graphics.cpp index 1888870..28687a4 100644 --- a/kernel/graphics.cpp +++ b/kernel/graphics.cpp @@ -68,8 +68,7 @@ void GraphicsUpdateScreen(K_USER_BUFFER void *bits, EsRectangle *bounds, uintptr windowManager.changedCursorImage = false; int cursorImageWidth = windowManager.cursorSurface.width, cursorImageHeight = windowManager.cursorSurface.height; - sourceSurface->Draw(&windowManager.cursorSurface, ES_RECT_4(cursorX, cursorX + cursorImageWidth, cursorY, cursorY + cursorImageHeight), 0, 0, - windowManager.cursorXOR ? ES_DRAW_BITMAP_XOR : 0xFF); + sourceSurface->Draw(&windowManager.cursorSurface, ES_RECT_4(cursorX, cursorX + cursorImageWidth, cursorY, cursorY + cursorImageHeight), 0, 0, 0xFF); if (bits) { graphics.target->updateScreen((K_USER_BUFFER const uint8_t *) bits, diff --git a/kernel/syscall.cpp b/kernel/syscall.cpp index 14115cb..13a342c 100644 --- a/kernel/syscall.cpp +++ b/kernel/syscall.cpp @@ -1039,7 +1039,6 @@ SYSCALL_IMPLEMENT(ES_SYSCALL_WINDOW_SET_CURSOR) { windowManager.cursorID = argument1; windowManager.cursorImageOffsetX = (int8_t) ((argument2 >> 0) & 0xFF); windowManager.cursorImageOffsetY = (int8_t) ((argument2 >> 8) & 0xFF); - windowManager.cursorXOR = argument3 & (1 << 31); windowManager.cursorShadow = argument3 & (1 << 30); int width = imageWidth + CURSOR_SHADOW_OFFSET; diff --git a/kernel/windows.cpp b/kernel/windows.cpp index f8d66b8..985b122 100644 --- a/kernel/windows.cpp +++ b/kernel/windows.cpp @@ -103,7 +103,7 @@ struct WindowManager { Surface cursorSurface, cursorSwap, cursorTemporary; int cursorImageOffsetX, cursorImageOffsetY; uintptr_t cursorID; - bool cursorXOR, cursorShadow; + bool cursorShadow; bool changedCursorImage; uint32_t cursorProperties; diff --git a/res/Cursors.png b/res/Cursors.png index 64f31cb..ee4dccd 100644 Binary files a/res/Cursors.png and b/res/Cursors.png differ diff --git a/res/Themes/Theme.dat b/res/Themes/Theme.dat index 390f26b..44b3dd9 100644 Binary files a/res/Themes/Theme.dat and b/res/Themes/Theme.dat differ