diff options
| author | Christian Krinitsin <mail@krinitsin.com> | 2025-05-30 16:52:07 +0200 |
|---|---|---|
| committer | Christian Krinitsin <mail@krinitsin.com> | 2025-05-30 16:52:17 +0200 |
| commit | 9260319e7411ff8281700a532caa436f40120ec4 (patch) | |
| tree | 2f6bfe5f3458dd49d328d3a9eb508595450adec0 /gitlab/issues/target_missing/host_missing/accel_missing/558.toml | |
| parent | 225caa38269323af1bfc2daadff5ec8bd930747f (diff) | |
| download | qemu-analysis-9260319e7411ff8281700a532caa436f40120ec4.tar.gz qemu-analysis-9260319e7411ff8281700a532caa436f40120ec4.zip | |
gitlab scraper: download in toml and text format
Diffstat (limited to 'gitlab/issues/target_missing/host_missing/accel_missing/558.toml')
| -rw-r--r-- | gitlab/issues/target_missing/host_missing/accel_missing/558.toml | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/gitlab/issues/target_missing/host_missing/accel_missing/558.toml b/gitlab/issues/target_missing/host_missing/accel_missing/558.toml deleted file mode 100644 index 96d29a39c..000000000 --- a/gitlab/issues/target_missing/host_missing/accel_missing/558.toml +++ /dev/null @@ -1,65 +0,0 @@ -id = 558 -title = "gtk UI interprets double/triple click as button release" -state = "closed" -created_at = "2021-08-24T11:46:07.243Z" -closed_at = "2022-03-19T14:16:04.945Z" -labels = ["GUI", "device:input"] -url = "https://gitlab.com/qemu-project/qemu/-/issues/558" -host-os = "Ubuntu 20.04" -host-arch = "x86-64" -qemu-version = "6.0.94 (v6.0.0-3214-gecf2706e27-dirty)" -guest-os = "ToaruOS 2.0" -guest-arch = "x86-64" -description = """When using the GTK interface clicking rapidly in a down-up-down pattern, the final "down" event is erroneously followed by an immediate "up" event and the mouse device in the guest reports the pressed button as no longer being held.""" -reproduce = """1. Start a VM using the GTK interface. -2. Open a tool to examine guest mouse input events, such as `xev` or `yutani-test` -3. Click twice with any button, without releasing on the second click. -4. Observe erroneous 'up' event in guest. -5. Move the mouse while keeping the button pressed. -6. Observe the guest reports the button is not held.""" -additional = """GTK 3 sends an additional `GDK_2BUTTON_PRESS` event after the initial `GDK_BUTTON_PRESS` event, which QEMU is misinterpreting as a release event. I confirmed this with the addition of some logging of `button->type` in `gd_button_event`: - -``` -button = 1, type = 4 -button = 1, type = 7 -button = 1, type = 4 -button = 1, type = 7 -button = 1, type = 4 # = PRESS -button = 1, type = 5 # = 2BUTTON_PRESS -button = 1, type = 7 -button = 1, type = 4 -button = 1, type = 7 -button = 1, type = 4 -button = 1, type = 5 -button = 1, type = 7 -button = 1, type = 4 -button = 1, type = 7 -button = 1, type = 4 -button = 1, type = 7 -button = 1, type = 4 -button = 1, type = 7 -button = 1, type = 4 -button = 1, type = 5 -button = 1, type = 7 -``` - -```diff -diff --git a/ui/gtk.c b/ui/gtk.c -index cfb0728d1f..b9979f0e11 100644 ---- a/ui/gtk.c -+++ b/ui/gtk.c -@@ -925,6 +925,13 @@ static gboolean gd_button_event(GtkWidget *widget, GdkEventButton *button, - return TRUE; - } - -+ /* ignore additional events for double- and triple- press, as they are -+ * sent to us after a regular press event; otherwise we will misinterpret -+ * these as release events and eat the button! */ -+ if (button->type == GDK_2BUTTON_PRESS || button->type == GDK_3BUTTON_PRESS) { -+ return TRUE; -+ } -+ - qemu_input_queue_btn(vc->gfx.dcl.con, btn, - button->type == GDK_BUTTON_PRESS); - qemu_input_event_sync(); -```""" |