mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-07 01:33:56 -06:00
console: move set_mouse + cursor_define callbacks
When adding DisplayChangeListeners the set_mouse and cursor_define callbacks have been left in DisplayState for some reason. Fix it. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
35c9e0a5c2
commit
bf2fde70fe
9 changed files with 59 additions and 27 deletions
8
ui/sdl.c
8
ui/sdl.c
|
@ -905,7 +905,7 @@ static void sdl_fill(DisplayState *ds, int x, int y, int w, int h, uint32_t c)
|
|||
SDL_FillRect(real_screen, &dst, c);
|
||||
}
|
||||
|
||||
static void sdl_mouse_warp(int x, int y, int on)
|
||||
static void sdl_mouse_warp(DisplayState *ds, int x, int y, int on)
|
||||
{
|
||||
if (on) {
|
||||
if (!guest_cursor)
|
||||
|
@ -921,7 +921,7 @@ static void sdl_mouse_warp(int x, int y, int on)
|
|||
guest_x = x, guest_y = y;
|
||||
}
|
||||
|
||||
static void sdl_mouse_define(QEMUCursor *c)
|
||||
static void sdl_mouse_define(DisplayState *ds, QEMUCursor *c)
|
||||
{
|
||||
uint8_t *image, *mask;
|
||||
int bpl;
|
||||
|
@ -1025,8 +1025,8 @@ void sdl_display_init(DisplayState *ds, int full_screen, int no_frame)
|
|||
dcl->dpy_refresh = sdl_refresh;
|
||||
dcl->dpy_setdata = sdl_setdata;
|
||||
dcl->dpy_fill = sdl_fill;
|
||||
ds->mouse_set = sdl_mouse_warp;
|
||||
ds->cursor_define = sdl_mouse_define;
|
||||
dcl->dpy_mouse_set = sdl_mouse_warp;
|
||||
dcl->dpy_cursor_define = sdl_mouse_define;
|
||||
register_displaychangelistener(ds, dcl);
|
||||
|
||||
da = g_malloc0(sizeof(DisplayAllocator));
|
||||
|
|
|
@ -404,12 +404,12 @@ void qemu_spice_display_resize(SimpleSpiceDisplay *ssd)
|
|||
void qemu_spice_cursor_refresh_unlocked(SimpleSpiceDisplay *ssd)
|
||||
{
|
||||
if (ssd->cursor) {
|
||||
ssd->ds->cursor_define(ssd->cursor);
|
||||
dpy_cursor_define(ssd->ds, ssd->cursor);
|
||||
cursor_put(ssd->cursor);
|
||||
ssd->cursor = NULL;
|
||||
}
|
||||
if (ssd->mouse_x != -1 && ssd->mouse_y != -1) {
|
||||
ssd->ds->mouse_set(ssd->mouse_x, ssd->mouse_y, 1);
|
||||
dpy_mouse_set(ssd->ds, ssd->mouse_x, ssd->mouse_y, 1);
|
||||
ssd->mouse_x = -1;
|
||||
ssd->mouse_y = -1;
|
||||
}
|
||||
|
|
8
ui/vnc.c
8
ui/vnc.c
|
@ -802,7 +802,7 @@ static void vnc_dpy_copy(DisplayState *ds, int src_x, int src_y, int dst_x, int
|
|||
}
|
||||
}
|
||||
|
||||
static void vnc_mouse_set(int x, int y, int visible)
|
||||
static void vnc_mouse_set(DisplayState *ds, int x, int y, int visible)
|
||||
{
|
||||
/* can we ask the client(s) to move the pointer ??? */
|
||||
}
|
||||
|
@ -829,7 +829,7 @@ static int vnc_cursor_define(VncState *vs)
|
|||
return -1;
|
||||
}
|
||||
|
||||
static void vnc_dpy_cursor_define(QEMUCursor *c)
|
||||
static void vnc_dpy_cursor_define(DisplayState *ds, QEMUCursor *c)
|
||||
{
|
||||
VncDisplay *vd = vnc_display;
|
||||
VncState *vs;
|
||||
|
@ -2757,9 +2757,9 @@ void vnc_display_init(DisplayState *ds)
|
|||
dcl->dpy_update = vnc_dpy_update;
|
||||
dcl->dpy_resize = vnc_dpy_resize;
|
||||
dcl->dpy_setdata = vnc_dpy_setdata;
|
||||
dcl->dpy_mouse_set = vnc_mouse_set;
|
||||
dcl->dpy_cursor_define = vnc_dpy_cursor_define;
|
||||
register_displaychangelistener(ds, dcl);
|
||||
ds->mouse_set = vnc_mouse_set;
|
||||
ds->cursor_define = vnc_dpy_cursor_define;
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue