mirror of
https://gitlab.com/virt-viewer/virt-viewer.git
synced 2025-03-12 20:58:17 +03:00
Use virt_viewer_connect_object() for display
When display is released, detach signal automatically. Fix various crash related to not cleaning up signal handlers properly, due to no longer 1-1 only relation between display widget and channel.
This commit is contained in:
parent
cab1ab0e57
commit
0897382b45
@ -660,8 +660,8 @@ virt_viewer_app_display_added(VirtViewerSession *session G_GNUC_UNUSED,
|
||||
|
||||
virt_viewer_window_set_display(window, display);
|
||||
virt_viewer_app_update_menu_displays(self);
|
||||
g_signal_connect(display, "notify::show-hint",
|
||||
G_CALLBACK(display_show_hint), window);
|
||||
virt_viewer_signal_connect_object(display, "notify::show-hint",
|
||||
G_CALLBACK(display_show_hint), window, 0);
|
||||
g_object_notify(G_OBJECT(display), "show-hint"); /* call display_show_hint */
|
||||
}
|
||||
|
||||
|
@ -1042,18 +1042,18 @@ virt_viewer_window_set_display(VirtViewerWindow *self, VirtViewerDisplay *displa
|
||||
gtk_notebook_append_page(GTK_NOTEBOOK(priv->notebook), GTK_WIDGET(display), NULL);
|
||||
gtk_widget_show_all(GTK_WIDGET(display));
|
||||
|
||||
g_signal_connect(display, "display-pointer-grab",
|
||||
G_CALLBACK(virt_viewer_window_pointer_grab), self);
|
||||
g_signal_connect(display, "display-pointer-ungrab",
|
||||
G_CALLBACK(virt_viewer_window_pointer_ungrab), self);
|
||||
g_signal_connect(display, "display-keyboard-grab",
|
||||
G_CALLBACK(virt_viewer_window_keyboard_grab), self);
|
||||
g_signal_connect(display, "display-keyboard-ungrab",
|
||||
G_CALLBACK(virt_viewer_window_keyboard_ungrab), self);
|
||||
g_signal_connect(display, "display-desktop-resize",
|
||||
G_CALLBACK(virt_viewer_window_desktop_resize), self);
|
||||
g_signal_connect(display, "notify::show-hint",
|
||||
G_CALLBACK(display_show_hint), self);
|
||||
virt_viewer_signal_connect_object(display, "display-pointer-grab",
|
||||
G_CALLBACK(virt_viewer_window_pointer_grab), self, 0);
|
||||
virt_viewer_signal_connect_object(display, "display-pointer-ungrab",
|
||||
G_CALLBACK(virt_viewer_window_pointer_ungrab), self, 0);
|
||||
virt_viewer_signal_connect_object(display, "display-keyboard-grab",
|
||||
G_CALLBACK(virt_viewer_window_keyboard_grab), self, 0);
|
||||
virt_viewer_signal_connect_object(display, "display-keyboard-ungrab",
|
||||
G_CALLBACK(virt_viewer_window_keyboard_ungrab), self, 0);
|
||||
virt_viewer_signal_connect_object(display, "display-desktop-resize",
|
||||
G_CALLBACK(virt_viewer_window_desktop_resize), self, 0);
|
||||
virt_viewer_signal_connect_object(display, "notify::show-hint",
|
||||
G_CALLBACK(display_show_hint), self, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user