+ /* If a pointer grab is in effect, then the combination of that, and
+ a modal dialog box, will cause an impossible situation.
+ So don't pop it up just yet.
+ */
+ if ( gdk_display_pointer_is_grabbed (gtk_widget_get_display (message_dialog)))
+ {
+ ds_destroy (&lead);
+ ds_destroy (&msg);
+ gdk_threads_leave ();
+ return TRUE;
+ }
+
+ /* Compose the lead-in. */
+ message_cnt = error_cnt + warning_cnt + note_cnt;
+ if (dropped_messages == 0)
+ ds_put_format (
+ &lead,
+ ngettext ("The PSPP processing engine reported the following message:",
+ "The PSPP processing engine reported the following messages:",
+ message_cnt));
+ else
+ {
+ ds_put_format (
+ &lead,
+ ngettext ("The PSPP processing engine reported %d message.",
+ "The PSPP processing engine reported %d messages.",
+ message_cnt),
+ message_cnt);
+ ds_put_cstr (&lead, " ");
+ ds_put_format (
+ &lead,
+ ngettext ("%d of these messages are displayed below.",
+ "%d of these messages are displayed below.",
+ MAX_EARLY_MESSAGES + MAX_LATE_MESSAGES),
+ MAX_EARLY_MESSAGES + MAX_LATE_MESSAGES);
+ }