Codebase list virt-viewer / c3d24f8
Set a transient parent for GtkDialogs Silence the Gtk 3.14 message: "GtkDialog mapped without a transient parent. This is discouraged." Pavel Grunt authored 9 years ago Fabiano FidĂȘncio committed 9 years ago
4 changed file(s) with 41 addition(s) and 13 deletion(s). Raw diff Collapse all Expand all
7575 };
7676
7777 #ifdef HAVE_OVIRT
78 static OvirtVm * choose_vm(char **vm_name, OvirtCollection *vms, GError **error);
78 static OvirtVm * choose_vm(GtkWindow *main_window,
79 char **vm_name,
80 OvirtCollection *vms,
81 GError **error);
7982 #endif
8083
8184 static gboolean remote_viewer_start(VirtViewerApp *self);
8386 static gboolean remote_viewer_activate(VirtViewerApp *self, GError **error);
8487 static void remote_viewer_window_added(VirtViewerApp *self, VirtViewerWindow *win);
8588 static void spice_foreign_menu_updated(RemoteViewer *self);
86 static gint connect_dialog(gchar **uri);
89 static gint connect_dialog(GtkWindow *main_window, gchar **uri);
8790 #endif
8891
8992 static void
864867 }
865868 if (vm_name == NULL ||
866869 (vm = OVIRT_VM(ovirt_collection_lookup_resource(vms, vm_name))) == NULL) {
867 vm = choose_vm(&vm_name, vms, &error);
870 VirtViewerWindow *main_window = virt_viewer_app_get_main_window(app);
871 vm = choose_vm(virt_viewer_window_get_window(main_window),
872 &vm_name,
873 vms,
874 &error);
868875 if (vm == NULL) {
869876 goto error;
870877 }
10471054 }
10481055
10491056 static gint
1050 connect_dialog(gchar **uri)
1057 connect_dialog(GtkWindow *main_window, gchar **uri)
10511058 {
10521059 GtkWidget *dialog, *area, *box, *label, *entry, *recent;
10531060 #if !GTK_CHECK_VERSION(3, 0, 0)
10581065
10591066 /* Create the widgets */
10601067 dialog = gtk_dialog_new_with_buttons(_("Connection details"),
1061 NULL,
1068 main_window,
10621069 GTK_DIALOG_DESTROY_WITH_PARENT,
10631070 GTK_STOCK_CANCEL,
10641071 GTK_RESPONSE_REJECT,
11371144
11381145 #ifdef HAVE_OVIRT
11391146 static OvirtVm *
1140 choose_vm(char **vm_name, OvirtCollection *vms_collection, GError **error)
1147 choose_vm(GtkWindow *main_window,
1148 char **vm_name,
1149 OvirtCollection *vms_collection,
1150 GError **error)
11411151 {
11421152 GtkListStore *model;
11431153 GtkTreeIter iter;
11611171 }
11621172 }
11631173
1164 *vm_name = virt_viewer_vm_connection_choose_name_dialog(GTK_TREE_MODEL(model), error);
1174 *vm_name = virt_viewer_vm_connection_choose_name_dialog(main_window,
1175 GTK_TREE_MODEL(model),
1176 error);
11651177 g_object_unref(model);
11661178 if (*vm_name == NULL)
11671179 return NULL;
11791191
11801192 RemoteViewer *self = REMOTE_VIEWER(app);
11811193 RemoteViewerPrivate *priv = self->priv;
1194 VirtViewerWindow *main_window;
11821195 GFile *file = NULL;
11831196 VirtViewerFile *vvfile = NULL;
11841197 gboolean ret = FALSE;
12091222 } else {
12101223 #endif
12111224 retry_dialog:
1225 main_window = virt_viewer_app_get_main_window(app);
12121226 if (priv->open_recent_dialog) {
1213 if (connect_dialog(&guri) != 0)
1227 if (connect_dialog(virt_viewer_window_get_window(main_window), &guri) != 0)
12141228 return FALSE;
12151229 g_object_set(app, "guri", guri, NULL);
12161230 } else
4242 }
4343
4444 gchar*
45 virt_viewer_vm_connection_choose_name_dialog(GtkTreeModel *model, GError **error)
45 virt_viewer_vm_connection_choose_name_dialog(GtkWindow *main_window,
46 GtkTreeModel *model,
47 GError **error)
4648 {
4749 GtkBuilder *vm_connection;
4850 GtkWidget *dialog;
6668 g_return_val_if_fail(vm_connection != NULL, NULL);
6769
6870 dialog = GTK_WIDGET(gtk_builder_get_object(vm_connection, "vm-connection-dialog"));
71 gtk_window_set_transient_for(GTK_WINDOW(dialog), main_window);
6972 button_connect = GTK_BUTTON(gtk_builder_get_object(vm_connection, "button-connect"));
7073 treeview = GTK_TREE_VIEW(gtk_builder_get_object(vm_connection, "treeview"));
7174 selection = GTK_TREE_SELECTION(gtk_builder_get_object(vm_connection, "treeview-selection"));
2323 #include <glib.h>
2424 #include <gtk/gtk.h>
2525
26 gchar* virt_viewer_vm_connection_choose_name_dialog(GtkTreeModel *model, GError **error);
26 gchar* virt_viewer_vm_connection_choose_name_dialog(GtkWindow *main_window,
27 GtkTreeModel *model,
28 GError **error);
2729
2830 #endif
2931 /*
589589 }
590590
591591 static virDomainPtr
592 choose_vm(char **vm_name, virConnectPtr conn, GError **error)
592 choose_vm(GtkWindow *main_window,
593 char **vm_name,
594 virConnectPtr conn,
595 GError **error)
593596 {
594597 GtkListStore *model;
595598 GtkTreeIter iter;
610613 }
611614 free(domains);
612615
613 *vm_name = virt_viewer_vm_connection_choose_name_dialog(GTK_TREE_MODEL(model), error);
616 *vm_name = virt_viewer_vm_connection_choose_name_dialog(main_window,
617 GTK_TREE_MODEL(model),
618 error);
614619 g_object_unref(G_OBJECT(model));
615620 if (*vm_name == NULL)
616621 return NULL;
660665 virt_viewer_app_show_status(app, _("Waiting for guest domain to be created"));
661666 goto wait;
662667 } else {
663 dom = choose_vm(&priv->domkey, priv->conn, &err);
668 VirtViewerWindow *main_window = virt_viewer_app_get_main_window(app);
669 dom = choose_vm(virt_viewer_window_get_window(main_window),
670 &priv->domkey,
671 priv->conn,
672 &err);
664673 if (dom == NULL && err != NULL) {
665674 goto cleanup;
666675 }