On Fri, Dec 19, 2014 at 3:46 PM, Pavel Grunt <pgrunt@xxxxxxxxxx> wrote: > Silence the Gtk 3.14 message: > "GtkDialog mapped without a transient parent. This is discouraged." > --- > The message shows up in Fedora 21 when running remote-viewer without arguments. > --- > src/remote-viewer.c | 21 +++++++++++++-------- > src/virt-viewer-vm-connection.c | 4 +++- > src/virt-viewer-vm-connection.h | 3 ++- > src/virt-viewer.c | 8 +++++--- > 4 files changed, 23 insertions(+), 13 deletions(-) > > diff --git a/src/remote-viewer.c b/src/remote-viewer.c > index 818c421..4564e28 100644 > --- a/src/remote-viewer.c > +++ b/src/remote-viewer.c > @@ -76,7 +76,8 @@ enum { > }; > > #ifdef HAVE_OVIRT > -static OvirtVm * choose_vm(char **vm_name, OvirtCollection *vms, GError **error); > +static OvirtVm * choose_vm(GtkWindow *main_window, char **vm_name, OvirtCollection *vms, > + GError **error); > #endif > > static gboolean remote_viewer_start(VirtViewerApp *self); > @@ -84,7 +85,7 @@ static gboolean remote_viewer_start(VirtViewerApp *self); > static gboolean remote_viewer_activate(VirtViewerApp *self, GError **error); > static void remote_viewer_window_added(VirtViewerApp *self, VirtViewerWindow *win); > static void spice_foreign_menu_updated(RemoteViewer *self); > -static gint connect_dialog(gchar **uri); > +static gint connect_dialog(GtkWindow *main_window, gchar **uri); > #endif > > static void > @@ -865,7 +866,8 @@ create_ovirt_session(VirtViewerApp *app, const char *uri, GError **err) > } > if (vm_name == NULL || > (vm = OVIRT_VM(ovirt_collection_lookup_resource(vms, vm_name))) == NULL) { > - vm = choose_vm(&vm_name, vms, &error); > + VirtViewerWindow *main_window = virt_viewer_app_get_main_window(app); Please, declare VirtViewerWindow as the first thing in the block. > + vm = choose_vm(virt_viewer_window_get_window(main_window), &vm_name, vms, &error); > if (vm == NULL) { > goto error; > } > @@ -1048,7 +1050,7 @@ static void make_label_bold(GtkLabel* label) > } > > static gint > -connect_dialog(gchar **uri) > +connect_dialog(GtkWindow *main_window, gchar **uri) > { > GtkWidget *dialog, *area, *box, *label, *entry, *recent; > #if !GTK_CHECK_VERSION(3, 0, 0) > @@ -1059,7 +1061,7 @@ connect_dialog(gchar **uri) > > /* Create the widgets */ > dialog = gtk_dialog_new_with_buttons(_("Connection details"), > - NULL, > + main_window, > GTK_DIALOG_DESTROY_WITH_PARENT, > GTK_STOCK_CANCEL, > GTK_RESPONSE_REJECT, > @@ -1138,7 +1140,7 @@ connect_dialog(gchar **uri) > > #ifdef HAVE_OVIRT > static OvirtVm * > -choose_vm(char **vm_name, OvirtCollection *vms_collection, GError **error) > +choose_vm(GtkWindow *main_window, char **vm_name, OvirtCollection *vms_collection, GError **error) > { > GtkListStore *model; > GtkTreeIter iter; > @@ -1162,7 +1164,8 @@ choose_vm(char **vm_name, OvirtCollection *vms_collection, GError **error) > } > } > > - *vm_name = virt_viewer_vm_connection_choose_name_dialog(GTK_TREE_MODEL(model), error); > + *vm_name = virt_viewer_vm_connection_choose_name_dialog(main_window, GTK_TREE_MODEL(model), > + error); Hmm. Please, if the error doesn't fit in the same line, align GTK_TREE_MODEL and error to main_window (in a new line for each). > g_object_unref(model); > if (*vm_name == NULL) > return NULL; > @@ -1180,6 +1183,7 @@ remote_viewer_start(VirtViewerApp *app) > > RemoteViewer *self = REMOTE_VIEWER(app); > RemoteViewerPrivate *priv = self->priv; > + VirtViewerWindow *main_window; > GFile *file = NULL; > VirtViewerFile *vvfile = NULL; > gboolean ret = FALSE; > @@ -1210,8 +1214,9 @@ remote_viewer_start(VirtViewerApp *app) > } else { > #endif > retry_dialog: > + main_window = virt_viewer_app_get_main_window(app); > if (priv->open_recent_dialog) { > - if (connect_dialog(&guri) != 0) > + if (connect_dialog(virt_viewer_window_get_window(main_window), &guri) != 0) > return FALSE; > g_object_set(app, "guri", guri, NULL); > } else > diff --git a/src/virt-viewer-vm-connection.c b/src/virt-viewer-vm-connection.c > index 4a3feba..222c738 100644 > --- a/src/virt-viewer-vm-connection.c > +++ b/src/virt-viewer-vm-connection.c > @@ -43,7 +43,8 @@ treeselection_changed_cb(GtkTreeSelection *selection, gpointer userdata) > } > > gchar* > -virt_viewer_vm_connection_choose_name_dialog(GtkTreeModel *model, GError **error) > +virt_viewer_vm_connection_choose_name_dialog(GtkWindow *main_window, GtkTreeModel *model, > + GError **error) Same here ... > { > GtkBuilder *vm_connection; > GtkWidget *dialog; > @@ -67,6 +68,7 @@ virt_viewer_vm_connection_choose_name_dialog(GtkTreeModel *model, GError **error > g_return_val_if_fail(vm_connection != NULL, NULL); > > dialog = GTK_WIDGET(gtk_builder_get_object(vm_connection, "vm-connection-dialog")); > + gtk_window_set_transient_for(GTK_WINDOW(dialog), main_window); > button_connect = GTK_BUTTON(gtk_builder_get_object(vm_connection, "button-connect")); > treeview = GTK_TREE_VIEW(gtk_builder_get_object(vm_connection, "treeview")); > selection = GTK_TREE_SELECTION(gtk_builder_get_object(vm_connection, "treeview-selection")); > diff --git a/src/virt-viewer-vm-connection.h b/src/virt-viewer-vm-connection.h > index d198c89..78e03b6 100644 > --- a/src/virt-viewer-vm-connection.h > +++ b/src/virt-viewer-vm-connection.h > @@ -24,7 +24,8 @@ > #include <glib.h> > #include <gtk/gtk.h> > > -gchar* virt_viewer_vm_connection_choose_name_dialog(GtkTreeModel *model, GError **error); > +gchar* virt_viewer_vm_connection_choose_name_dialog(GtkWindow *main_window, GtkTreeModel *model, > + GError **error); Same here ... > > #endif > /* > diff --git a/src/virt-viewer.c b/src/virt-viewer.c > index 193ef3a..04a91cc 100644 > --- a/src/virt-viewer.c > +++ b/src/virt-viewer.c > @@ -590,7 +590,7 @@ virt_viewer_dispose (GObject *object) > } > > static virDomainPtr > -choose_vm(char **vm_name, virConnectPtr conn, GError **error) > +choose_vm(GtkWindow *main_window, char **vm_name, virConnectPtr conn, GError **error) > { > GtkListStore *model; > GtkTreeIter iter; > @@ -611,7 +611,8 @@ choose_vm(char **vm_name, virConnectPtr conn, GError **error) > } > free(domains); > > - *vm_name = virt_viewer_vm_connection_choose_name_dialog(GTK_TREE_MODEL(model), error); > + *vm_name = virt_viewer_vm_connection_choose_name_dialog(main_window, GTK_TREE_MODEL(model), > + error); Same here ... > g_object_unref(G_OBJECT(model)); > if (*vm_name == NULL) > return NULL; > @@ -661,7 +662,8 @@ virt_viewer_initial_connect(VirtViewerApp *app, GError **error) > virt_viewer_app_show_status(app, _("Waiting for guest domain to be created")); > goto wait; > } else { > - dom = choose_vm(&priv->domkey, priv->conn, &err); > + VirtViewerWindow *main_window = virt_viewer_app_get_main_window(app); Please declare VirtViewerWindow as the first thing in the block. > + dom = choose_vm(virt_viewer_window_get_window(main_window), &priv->domkey, priv->conn, &err); > if (dom == NULL && err != NULL) { > goto cleanup; > } > -- > 1.9.3 > > _______________________________________________ > virt-tools-list mailing list > virt-tools-list@xxxxxxxxxx > https://www.redhat.com/mailman/listinfo/virt-tools-list Best Regards, -- Fabiano Fidêncio _______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list