ef89aa1
From d6e5ef02ebdc059e2412d429c23a39f6171a4851 Mon Sep 17 00:00:00 2001
ef89aa1
From: Matthias Clasen <mclasen@redhat.com>
ef89aa1
Date: Wed, 8 Jan 2014 18:51:53 -0500
ef89aa1
Subject: [PATCH 1/2] Be more careful with XIDs
ef89aa1
ef89aa1
When an invalid XID is specified, we end up calling
ef89aa1
gdk_window_set_transient_for with a NULL window. This leads
ef89aa1
to a crash, so don't do it, and instead silently ignore
ef89aa1
the invalid XID.
ef89aa1
ef89aa1
https://bugzilla.gnome.org/show_bug.cgi?id=721278
ef89aa1
---
ef89aa1
 src/disks/gduformatvolumedialog.c | 3 ++-
ef89aa1
 1 file changed, 2 insertions(+), 1 deletion(-)
ef89aa1
ef89aa1
diff --git a/src/disks/gduformatvolumedialog.c b/src/disks/gduformatvolumedialog.c
ef89aa1
index c737cb0..f741ade 100644
ef89aa1
--- a/src/disks/gduformatvolumedialog.c
ef89aa1
+++ b/src/disks/gduformatvolumedialog.c
ef89aa1
@@ -181,7 +181,8 @@ gdu_format_volume_dialog_show_internal (UDisksClient *client,
ef89aa1
       GdkWindow *foreign_window = gdk_x11_window_foreign_new_for_display (gdk_display_get_default (), parent_xid);
ef89aa1
       if (!gtk_widget_get_realized (data->dialog))
ef89aa1
           gtk_widget_realize (data->dialog);
ef89aa1
-      gdk_window_set_transient_for (gtk_widget_get_window (data->dialog), foreign_window);
ef89aa1
+      if (foreign_window != NULL)
ef89aa1
+        gdk_window_set_transient_for (gtk_widget_get_window (data->dialog), foreign_window);
ef89aa1
     }
ef89aa1
 
ef89aa1
   gtk_dialog_set_default_response (GTK_DIALOG (data->dialog), GTK_RESPONSE_OK);
ef89aa1
-- 
ef89aa1
1.8.4.2
ef89aa1