Author: carlosg Date: Sat Feb 16 19:53:26 2008 New Revision: 4158 URL: http://svn.gnome.org/viewvc/gnome-system-tools?rev=4158&view=rev
Log: 2008-02-16 Carlos Garnacho <[EMAIL PROTECTED]> * gst-dialog.[ch] (gst_dialog_get_topmost_edit_dialog): Added. * gst-tool.[ch] (configuration_object_changed): Use topmost edit dialog as the parent for the "configuration changed" dialog. Also, do not show another of these dialogs if there's already one present. Modified: trunk/src/common/ChangeLog trunk/src/common/gst-dialog.c trunk/src/common/gst-dialog.h trunk/src/common/gst-tool.c trunk/src/common/gst-tool.h Modified: trunk/src/common/gst-dialog.c ============================================================================== --- trunk/src/common/gst-dialog.c (original) +++ trunk/src/common/gst-dialog.c Sat Feb 16 19:53:26 2008 @@ -650,6 +650,19 @@ return (priv->edit_dialogs != NULL); } +GtkWidget * +gst_dialog_get_topmost_edit_dialog (GstDialog *dialog) +{ + GstDialogPrivate *priv; + + priv = GST_DIALOG_GET_PRIVATE (dialog); + + if (!priv->edit_dialogs) + return NULL; + + return GTK_WIDGET (priv->edit_dialogs->data); +} + void gst_dialog_add_edit_dialog (GstDialog *dialog, GtkWidget *edit_dialog) Modified: trunk/src/common/gst-dialog.h ============================================================================== --- trunk/src/common/gst-dialog.h (original) +++ trunk/src/common/gst-dialog.h Sat Feb 16 19:53:26 2008 @@ -86,6 +86,7 @@ GtkWidget *edit_dialog); void gst_dialog_stop_editing (GstDialog *dialog); gboolean gst_dialog_get_editing (GstDialog *dialog); +GtkWidget * gst_dialog_get_topmost_edit_dialog (GstDialog *dialog); G_END_DECLS Modified: trunk/src/common/gst-tool.c ============================================================================== --- trunk/src/common/gst-tool.c (original) +++ trunk/src/common/gst-tool.c Sat Feb 16 19:53:26 2008 @@ -567,19 +567,27 @@ gboolean do_update = TRUE; if (gst_dialog_get_editing (tool->main_dialog)) { - GtkWidget *dialog; + GtkWidget *parent, *dialog; gint response; - dialog = gtk_message_dialog_new (GTK_WINDOW (tool->main_dialog), + if (tool->configuration_changed_dialog) + return; + + parent = gst_dialog_get_topmost_edit_dialog (tool->main_dialog); + dialog = gtk_message_dialog_new (GTK_WINDOW (parent), GTK_DIALOG_MODAL, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, _("The system configuration has potentially changed.")); gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), _("Update content? This will lose any modification in course.")); + tool->configuration_changed_dialog = dialog; + response = gtk_dialog_run (GTK_DIALOG (dialog)); do_update = (response == GTK_RESPONSE_YES); - gtk_widget_hide (dialog); + + gtk_widget_destroy (dialog); + tool->configuration_changed_dialog = NULL; } if (do_update) { Modified: trunk/src/common/gst-tool.h ============================================================================== --- trunk/src/common/gst-tool.h (original) +++ trunk/src/common/gst-tool.h Sat Feb 16 19:53:26 2008 @@ -58,6 +58,7 @@ GtkIconTheme *icon_theme; GstDialog *main_dialog; + GtkWidget *configuration_changed_dialog; /* Progress report widgets */ GtkWidget *report_window; _______________________________________________ SVN-commits-list mailing list (read only) http://mail.gnome.org/mailman/listinfo/svn-commits-list Want to limit the commits to a few modules? Go to above URL, log in to edit your options and select the modules ('topics') you want. Module maintainer? It is possible to set the reply-to to your development mailing list. Email [EMAIL PROTECTED] if interested.