aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2013-12-10 17:16:03 +0100
committerGerd Hoffmann <kraxel@redhat.com>2014-03-05 09:52:04 +0100
commit70b52f62b8a94c34ccc939f374bcd00c22a8e3c4 (patch)
tree727125337b1c8b92672b2e311b00748ef9b6d4dd
parente842c68d449a51ec51a0442aa0fe237d4a4b736d (diff)
input: move do_mouse_set to new core
This removes the last user of the lecagy input mouse handler list, so we can remove more legacy bits with this. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
-rw-r--r--ui/input-legacy.c43
-rw-r--r--ui/input.c21
2 files changed, 21 insertions, 43 deletions
diff --git a/ui/input-legacy.c b/ui/input-legacy.c
index 7843482387..b51e6ad5df 100644
--- a/ui/input-legacy.c
+++ b/ui/input-legacy.c
@@ -35,12 +35,6 @@ struct QEMUPutMouseEntry {
QEMUPutMouseEvent *qemu_put_mouse_event;
void *qemu_put_mouse_event_opaque;
int qemu_put_mouse_event_absolute;
- char *qemu_put_mouse_event_name;
-
- int index;
-
- /* used internally by qemu for handling mice */
- QTAILQ_ENTRY(QEMUPutMouseEntry) node;
/* new input core */
QemuInputHandler h;
@@ -412,17 +406,12 @@ QEMUPutMouseEntry *qemu_add_mouse_event_handler(QEMUPutMouseEvent *func,
const char *name)
{
QEMUPutMouseEntry *s;
- static int mouse_index = 0;
s = g_malloc0(sizeof(QEMUPutMouseEntry));
s->qemu_put_mouse_event = func;
s->qemu_put_mouse_event_opaque = opaque;
s->qemu_put_mouse_event_absolute = absolute;
- s->qemu_put_mouse_event_name = g_strdup(name);
- s->index = mouse_index++;
-
- QTAILQ_INSERT_TAIL(&mouse_handlers, s, node);
s->h.name = name;
s->h.mask = INPUT_EVENT_MASK_BTN |
@@ -437,19 +426,13 @@ QEMUPutMouseEntry *qemu_add_mouse_event_handler(QEMUPutMouseEvent *func,
void qemu_activate_mouse_event_handler(QEMUPutMouseEntry *entry)
{
- QTAILQ_REMOVE(&mouse_handlers, entry, node);
- QTAILQ_INSERT_HEAD(&mouse_handlers, entry, node);
-
qemu_input_handler_activate(entry->s);
}
void qemu_remove_mouse_event_handler(QEMUPutMouseEntry *entry)
{
- QTAILQ_REMOVE(&mouse_handlers, entry, node);
-
qemu_input_handler_unregister(entry->s);
- g_free(entry->qemu_put_mouse_event_name);
g_free(entry);
}
@@ -482,29 +465,3 @@ void kbd_put_ledstate(int ledstate)
cursor->put_led(cursor->opaque, ledstate);
}
}
-
-void do_mouse_set(Monitor *mon, const QDict *qdict)
-{
- QEMUPutMouseEntry *cursor;
- int index = qdict_get_int(qdict, "index");
- int found = 0;
-
- if (QTAILQ_EMPTY(&mouse_handlers)) {
- monitor_printf(mon, "No mouse devices connected\n");
- return;
- }
-
- QTAILQ_FOREACH(cursor, &mouse_handlers, node) {
- if (cursor->index == index) {
- found = 1;
- qemu_activate_mouse_event_handler(cursor);
- break;
- }
- }
-
- if (!found) {
- monitor_printf(mon, "Mouse at given index not found\n");
- }
-
- qemu_input_check_mode_change();
-}
diff --git a/ui/input.c b/ui/input.c
index 162e8d8a5a..2761911f3c 100644
--- a/ui/input.c
+++ b/ui/input.c
@@ -334,3 +334,24 @@ MouseInfoList *qmp_query_mice(Error **errp)
return mice_list;
}
+
+void do_mouse_set(Monitor *mon, const QDict *qdict)
+{
+ QemuInputHandlerState *s;
+ int index = qdict_get_int(qdict, "index");
+ int found = 0;
+
+ QTAILQ_FOREACH(s, &handlers, node) {
+ if (s->id == index) {
+ found = 1;
+ qemu_input_handler_activate(s);
+ break;
+ }
+ }
+
+ if (!found) {
+ monitor_printf(mon, "Mouse at given index not found\n");
+ }
+
+ qemu_input_check_mode_change();
+}