public MultiTaskDialogProgressMonitor(bool showProgress, bool allowCancel, bool showDetails, IDictionary <string, string> taskLabelAliases) : base(Runtime.MainSynchronizationContext) { if (showProgress) { var parent = DesktopService.GetParentForModalWindow(); dialog = new MultiTaskProgressDialog(allowCancel, showDetails, taskLabelAliases) { DestroyWithParent = true, Modal = true, TransientFor = parent, }; MessageService.PlaceDialog(dialog, parent); GtkWorkarounds.PresentWindowWithNotification(dialog); dialog.CancellationTokenSource = CancellationTokenSource; DispatchService.RunPendingEvents(); this.showDetails = showDetails; } }