Browse Source

WpfWorkbench.OnDrop: don't show dialogs during the drop event; use Dispatcher.BeginInvoke instead.

pull/403/head
Daniel Grunwald 11 years ago
parent
commit
a441bb9f9f
  1. 3
      src/Libraries/NRefactory/ICSharpCode.NRefactory.CSharp/Resolver/CSharpResolver.cs
  2. 2
      src/Main/Core/Project/Src/Services/FileUtility/FileUtility.cs
  3. 15
      src/Main/SharpDevelop/Workbench/WpfWorkbench.cs

3
src/Libraries/NRefactory/ICSharpCode.NRefactory.CSharp/Resolver/CSharpResolver.cs

@ -1694,8 +1694,7 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver @@ -1694,8 +1694,7 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver
case NameLookupMode.Type:
case NameLookupMode.TypeInUsingDeclaration:
case NameLookupMode.BaseTypeReference:
result = lookup.LookupType(target.Type, identifier, typeArguments, parameterizeResultType);
break;
return lookup.LookupType(target.Type, identifier, typeArguments, parameterizeResultType);
default:
throw new NotSupportedException("Invalid value for NameLookupMode");
}

2
src/Main/Core/Project/Src/Services/FileUtility/FileUtility.cs

@ -648,6 +648,7 @@ namespace ICSharpCode.Core @@ -648,6 +648,7 @@ namespace ICSharpCode.Core
static FileOperationResult ObservedSaveHandleError(Exception e, NamedFileOperationDelegate saveFileAs, FileName fileName, string message, FileErrorPolicy policy)
{
message = message + Environment.NewLine + Environment.NewLine + e.Message;
var messageService = ServiceSingleton.GetRequiredService<IMessageService>();
switch (policy) {
case FileErrorPolicy.Inform:
@ -693,6 +694,7 @@ namespace ICSharpCode.Core @@ -693,6 +694,7 @@ namespace ICSharpCode.Core
static FileOperationResult ObservedLoadHandleException(Exception e, FileOperationDelegate loadFile, FileName fileName, string message, FileErrorPolicy policy)
{
message = message + Environment.NewLine + Environment.NewLine + e.Message;
var messageService = ServiceSingleton.GetRequiredService<IMessageService>();
switch (policy) {
case FileErrorPolicy.Inform:

15
src/Main/SharpDevelop/Workbench/WpfWorkbench.cs

@ -671,6 +671,17 @@ namespace ICSharpCode.SharpDevelop.Workbench @@ -671,6 +671,17 @@ namespace ICSharpCode.SharpDevelop.Workbench
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
if (files == null)
return;
// Handle opening the files outside the drop event, so that the drag source doesn't think
// the operation is still in progress while we're showing a "file cannot be opened" error message.
Dispatcher.BeginInvoke(DispatcherPriority.Normal, new Action<string[]>(HandleDrop), files);
}
} catch (Exception ex) {
MessageService.ShowException(ex);
}
}
void HandleDrop(string[] files)
{
foreach (string file in files) {
if (File.Exists(file)) {
var fileName = FileName.Create(file);
@ -682,10 +693,6 @@ namespace ICSharpCode.SharpDevelop.Workbench @@ -682,10 +693,6 @@ namespace ICSharpCode.SharpDevelop.Workbench
}
}
}
} catch (Exception ex) {
MessageService.ShowException(ex);
}
}
void InitFocusTrackingEvents()
{

Loading…
Cancel
Save