[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 3/7] sdl2: Do not hide the cursor on auxilliary wind
From: |
Jindrich Makovicka |
Subject: |
[Qemu-devel] [PATCH 3/7] sdl2: Do not hide the cursor on auxilliary windows |
Date: |
Mon, 23 Oct 2017 23:07:59 +0200 |
---
ui/sdl2.c | 41 ++++++++++++++++++++++++++++++-----------
1 file changed, 30 insertions(+), 11 deletions(-)
diff --git a/ui/sdl2.c b/ui/sdl2.c
index aa37b39547..685e4fabec 100644
--- a/ui/sdl2.c
+++ b/ui/sdl2.c
@@ -169,10 +169,10 @@ static void sdl_hide_cursor(void)
return;
}
- if (qemu_input_is_absolute()) {
- SDL_ShowCursor(1);
- SDL_SetCursor(sdl_cursor_hidden);
- } else {
+ SDL_ShowCursor(SDL_DISABLE);
+ SDL_SetCursor(sdl_cursor_hidden);
+
+ if (!qemu_input_is_absolute()) {
SDL_SetRelativeMouseMode(SDL_TRUE);
}
}
@@ -185,14 +185,16 @@ static void sdl_show_cursor(void)
if (!qemu_input_is_absolute()) {
SDL_SetRelativeMouseMode(SDL_FALSE);
- SDL_ShowCursor(1);
- if (guest_cursor &&
- (gui_grab || qemu_input_is_absolute() || absolute_enabled)) {
- SDL_SetCursor(guest_sprite);
- } else {
- SDL_SetCursor(sdl_cursor_normal);
- }
}
+
+ if (guest_cursor &&
+ (gui_grab || qemu_input_is_absolute() || absolute_enabled)) {
+ SDL_SetCursor(guest_sprite);
+ } else {
+ SDL_SetCursor(sdl_cursor_normal);
+ }
+
+ SDL_ShowCursor(SDL_ENABLE);
}
static void sdl_grab_start(struct sdl2_console *scon)
@@ -463,6 +465,10 @@ static void handle_mousemotion(SDL_Event *ev)
int max_x, max_y;
struct sdl2_console *scon = get_scon_from_window(ev->key.windowID);
+ if (!qemu_console_is_graphic(scon->dcl.con)) {
+ return;
+ }
+
if (qemu_input_is_absolute() || absolute_enabled) {
int scr_w, scr_h;
SDL_GetWindowSize(scon->real_window, &scr_w, &scr_h);
@@ -490,6 +496,10 @@ static void handle_mousebutton(SDL_Event *ev)
SDL_MouseButtonEvent *bev;
struct sdl2_console *scon = get_scon_from_window(ev->key.windowID);
+ if (!qemu_console_is_graphic(scon->dcl.con)) {
+ return;
+ }
+
bev = &ev->button;
if (!gui_grab && !qemu_input_is_absolute()) {
if (ev->type == SDL_MOUSEBUTTONUP && bev->button == SDL_BUTTON_LEFT) {
@@ -512,6 +522,10 @@ static void handle_mousewheel(SDL_Event *ev)
SDL_MouseWheelEvent *wev = &ev->wheel;
InputButton btn;
+ if (!qemu_console_is_graphic(scon->dcl.con)) {
+ return;
+ }
+
if (wev->y > 0) {
btn = INPUT_BUTTON_WHEEL_UP;
} else if (wev->y < 0) {
@@ -651,6 +665,11 @@ static void sdl_mouse_warp(DisplayChangeListener *dcl,
int x, int y, int on)
{
struct sdl2_console *scon = container_of(dcl, struct sdl2_console, dcl);
+
+ if (!qemu_console_is_graphic(scon->dcl.con)) {
+ return;
+ }
+
if (on) {
if (!guest_cursor) {
sdl_show_cursor();
--
2.15.0.rc0
- [Qemu-devel] SDL2 various fixes, Jindrich Makovicka, 2017/10/23
- [Qemu-devel] [PATCH 1/7] sdl2: Fix broken display updating after the window is hidden, Jindrich Makovicka, 2017/10/23
- [Qemu-devel] [PATCH 2/7] sdl2: Do not quit the emulator when an auxilliary window is closed, Jindrich Makovicka, 2017/10/23
- [Qemu-devel] [PATCH 3/7] sdl2: Do not hide the cursor on auxilliary windows,
Jindrich Makovicka <=
- [Qemu-devel] [PATCH 4/7] sdl2: Only accept the hotkeys on the main window, Jindrich Makovicka, 2017/10/23
- [Qemu-devel] [PATCH 6/7] sdl2: Fix dead keyboard after fullsceen, Jindrich Makovicka, 2017/10/23
- [Qemu-devel] [PATCH 7/7] sdl2: Do not leave grab when fullscreen, Jindrich Makovicka, 2017/10/23
- [Qemu-devel] [PATCH 5/7] sdl2 uses surface relative coordinates, Jindrich Makovicka, 2017/10/23
- Re: [Qemu-devel] SDL2 various fixes, Philippe Mathieu-Daudé, 2017/10/23