ui/gtk: Fix the implicit mouse ungrabbing logic
Although the grab menu item represents the tabbed displays, the old implicit mouse ungrabbing logic changes the grab menu item even for an untabbed display. Leave the grab menu item when implicitly ungrabbing mouse for an untabbed display. The new ungrabbing logic introduced in gd_mouse_mode_change() strictly follows the corresponding grabbing logic found in gd_button_event(). Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com> Message-Id: <20221008140116.11473-1-akihiko.odaki@daynix.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
0468fe82d3
commit
8af5f82b90
10
ui/gtk.c
10
ui/gtk.c
@ -681,9 +681,13 @@ static void gd_mouse_mode_change(Notifier *notify, void *data)
|
|||||||
|
|
||||||
s = container_of(notify, GtkDisplayState, mouse_mode_notifier);
|
s = container_of(notify, GtkDisplayState, mouse_mode_notifier);
|
||||||
/* release the grab at switching to absolute mode */
|
/* release the grab at switching to absolute mode */
|
||||||
if (qemu_input_is_absolute() && gd_is_grab_active(s)) {
|
if (qemu_input_is_absolute() && s->ptr_owner) {
|
||||||
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(s->grab_item),
|
if (!s->ptr_owner->window) {
|
||||||
FALSE);
|
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(s->grab_item),
|
||||||
|
FALSE);
|
||||||
|
} else {
|
||||||
|
gd_ungrab_pointer(s);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
for (i = 0; i < s->nb_vcs; i++) {
|
for (i = 0; i < s->nb_vcs; i++) {
|
||||||
VirtualConsole *vc = &s->vc[i];
|
VirtualConsole *vc = &s->vc[i];
|
||||||
|
Loading…
Reference in New Issue
Block a user