diff --git a/src/AddIns/DisplayBindings/IconEditor/IconEditorAddIn/IconEditorAddIn.addin b/src/AddIns/DisplayBindings/IconEditor/IconEditorAddIn/IconEditorAddIn.addin index 9853eab72a..40d7cb7c55 100644 --- a/src/AddIns/DisplayBindings/IconEditor/IconEditorAddIn/IconEditorAddIn.addin +++ b/src/AddIns/DisplayBindings/IconEditor/IconEditorAddIn/IconEditorAddIn.addin @@ -1,7 +1,7 @@ - + description = "Allows viewing .ico files inside SharpDevelop"> diff --git a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/Selection/DefaultSelection.cs b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/Selection/DefaultSelection.cs index b1bc5c1c6b..de818b7822 100644 --- a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/Selection/DefaultSelection.cs +++ b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/Selection/DefaultSelection.cs @@ -15,10 +15,10 @@ namespace ICSharpCode.TextEditor.Document /// public class DefaultSelection : ISelection { - IDocument document = null; - bool isRectangularSelection = false; - Point startPosition = new Point(-1, -1); - Point endPosition = new Point(-1, -1); + IDocument document; + bool isRectangularSelection; + Point startPosition; + Point endPosition; public Point StartPosition { get { @@ -95,7 +95,7 @@ namespace ICSharpCode.TextEditor.Document /// /// Creates a new instance of - /// + /// public DefaultSelection(IDocument document, Point startPosition, Point endPosition) { this.document = document; @@ -112,9 +112,11 @@ namespace ICSharpCode.TextEditor.Document } public bool ContainsPosition(Point position) { + if (this.IsEmpty) + return false; return startPosition.Y < position.Y && position.Y < endPosition.Y || - startPosition.Y == position.Y && startPosition.X <= position.X && (startPosition.Y != endPosition.Y || position.X <= endPosition.X) || - endPosition.Y == position.Y && startPosition.Y != endPosition.Y && position.X <= endPosition.X; + startPosition.Y == position.Y && startPosition.X <= position.X && (startPosition.Y != endPosition.Y || position.X <= endPosition.X) || + endPosition.Y == position.Y && startPosition.Y != endPosition.Y && position.X <= endPosition.X; } public bool ContainsOffset(int offset) diff --git a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Implementations/CompoundClass.cs b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Implementations/CompoundClass.cs index b4537b0a84..f557b30bd7 100644 --- a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Implementations/CompoundClass.cs +++ b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Implementations/CompoundClass.cs @@ -49,11 +49,16 @@ namespace ICSharpCode.SharpDevelop.Dom this.Region = parts[0].Region; ModifierEnum modifier = ModifierEnum.None; + const ModifierEnum defaultClassVisibility = ModifierEnum.Internal; this.BaseTypes.Clear(); this.TypeParameters.Clear(); this.Attributes.Clear(); foreach (IClass part in parts) { - modifier |= part.Modifiers; + if ((part.Modifiers & ModifierEnum.VisibilityMask) != defaultClassVisibility) { + modifier |= part.Modifiers; + } else { + modifier |= part.Modifiers &~ ModifierEnum.VisibilityMask; + } foreach (IReturnType rt in part.BaseTypes) { if (!rt.IsDefaultReturnType || rt.FullyQualifiedName != "System.Object") { this.BaseTypes.Add(rt); @@ -66,6 +71,9 @@ namespace ICSharpCode.SharpDevelop.Dom this.Attributes.Add(attribute); } } + if ((modifier & ModifierEnum.VisibilityMask) == ModifierEnum.None) { + modifier |= defaultClassVisibility; + } this.Modifiers = modifier; } diff --git a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/ProjectContent/DefaultProjectContent.cs b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/ProjectContent/DefaultProjectContent.cs index 009bac360b..ca1f0f706a 100644 --- a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/ProjectContent/DefaultProjectContent.cs +++ b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/ProjectContent/DefaultProjectContent.cs @@ -620,7 +620,7 @@ namespace ICSharpCode.SharpDevelop.Dom NamespaceStruct ns = dict[nameSpace]; int newCapacity = list.Count + ns.Classes.Count + ns.SubNamespaces.Count; if (list.Capacity < newCapacity) - list.Capacity = newCapacity; + list.Capacity = Math.Max(list.Count * 2, newCapacity); foreach (IClass c in ns.Classes) { if (c is GenericClassContainer) { foreach (IClass realClass in ((GenericClassContainer)c).RealClasses) {