From 3ba9a682ce49528af7db7a6d7e5b5baddd475618 Mon Sep 17 00:00:00 2001 From: Guillaume Desmottes Date: Thu, 26 Aug 2010 13:54:01 +0200 Subject: irc-network-chooser-dialog: make it transient and modal --- libempathy-gtk/empathy-irc-network-chooser-dialog.c | 6 +++++- libempathy-gtk/empathy-irc-network-chooser-dialog.h | 3 ++- libempathy-gtk/empathy-irc-network-chooser.c | 5 ++++- 3 files changed, 11 insertions(+), 3 deletions(-) (limited to 'libempathy-gtk') diff --git a/libempathy-gtk/empathy-irc-network-chooser-dialog.c b/libempathy-gtk/empathy-irc-network-chooser-dialog.c index b4483df1e..06d9e59a4 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 1c9d3fabd..0d4f24e7f 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 6d41ae224..55a90fd0c 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", -- cgit v1.2.3