[empathy: 24/26] irc-network-chooser-dialog: make it transient and modal



commit 3ba9a682ce49528af7db7a6d7e5b5baddd475618
Author: Guillaume Desmottes <guillaume desmottes collabora co uk>
Date:   Thu Aug 26 13:54:01 2010 +0200

    irc-network-chooser-dialog: make it transient and modal

 .../empathy-irc-network-chooser-dialog.c           |    6 +++++-
 .../empathy-irc-network-chooser-dialog.h           |    3 ++-
 libempathy-gtk/empathy-irc-network-chooser.c       |    5 ++++-
 3 files changed, 11 insertions(+), 3 deletions(-)
---
diff --git a/libempathy-gtk/empathy-irc-network-chooser-dialog.c b/libempathy-gtk/empathy-irc-network-chooser-dialog.c
index b4483df..06d9e59 100644
--- a/libempathy-gtk/empathy-irc-network-chooser-dialog.c
+++ b/libempathy-gtk/empathy-irc-network-chooser-dialog.c
@@ -534,6 +534,8 @@ empathy_irc_network_chooser_dialog_constructed (GObject *object)
 
   /* Request a side ensuring to display at least some networks */
   gtk_widget_set_size_request (GTK_WIDGET (self), -1, 300);
+
+  gtk_window_set_modal (GTK_WINDOW (self), TRUE);
 }
 
 static void
@@ -594,11 +596,13 @@ empathy_irc_network_chooser_dialog_init (EmpathyIrcNetworkChooserDialog *self)
 
 GtkWidget *
 empathy_irc_network_chooser_dialog_new (EmpathyAccountSettings *settings,
-    EmpathyIrcNetwork *network)
+    EmpathyIrcNetwork *network,
+    GtkWindow *parent)
 {
   return g_object_new (EMPATHY_TYPE_IRC_NETWORK_CHOOSER_DIALOG,
       "settings", settings,
       "network", network,
+      "transient-for", parent,
       NULL);
 }
 
diff --git a/libempathy-gtk/empathy-irc-network-chooser-dialog.h b/libempathy-gtk/empathy-irc-network-chooser-dialog.h
index 1c9d3fa..0d4f24e 100644
--- a/libempathy-gtk/empathy-irc-network-chooser-dialog.h
+++ b/libempathy-gtk/empathy-irc-network-chooser-dialog.h
@@ -57,7 +57,8 @@ GType empathy_irc_network_chooser_dialog_get_type (void) G_GNUC_CONST;
 
 GtkWidget * empathy_irc_network_chooser_dialog_new (
     EmpathyAccountSettings *settings,
-    EmpathyIrcNetwork *network);
+    EmpathyIrcNetwork *network,
+    GtkWindow *parent);
 
 EmpathyIrcNetwork * empathy_irc_network_chooser_dialog_get_network (
     EmpathyIrcNetworkChooserDialog *self);
diff --git a/libempathy-gtk/empathy-irc-network-chooser.c b/libempathy-gtk/empathy-irc-network-chooser.c
index 6d41ae2..55a90fd 100644
--- a/libempathy-gtk/empathy-irc-network-chooser.c
+++ b/libempathy-gtk/empathy-irc-network-chooser.c
@@ -264,12 +264,15 @@ clicked_cb (GtkButton *button,
     gpointer user_data)
 {
   EmpathyIrcNetworkChooserPriv *priv = GET_PRIV (button);
+  GtkWindow *window;
 
   if (priv->dialog != NULL)
     goto out;
 
+  window = empathy_get_toplevel_window (GTK_WIDGET (button));
+
   priv->dialog = empathy_irc_network_chooser_dialog_new (priv->settings,
-      priv->network);
+      priv->network, window);
   gtk_widget_show_all (priv->dialog);
 
   tp_g_signal_connect_object (priv->dialog, "response",



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]