diff options
3 files changed, 21 insertions, 3 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DefaultWorkbench.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DefaultWorkbench.cs index d547fa9259..9eda07b1a9 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DefaultWorkbench.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DefaultWorkbench.cs @@ -150,7 +150,9 @@ namespace MonoDevelop.Ide.Gui public bool FullScreen { get { - return DesktopService.GetIsFullscreen (this); + if (Visible) + return DesktopService.GetIsFullscreen (this); + return fullScreenState ?? false; } set { // If this window is not visible, don't set full screen mode diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MonoDevelopWorkspace.MetadataReferenceHandler.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MonoDevelopWorkspace.MetadataReferenceHandler.cs index a310c17129..c7ef9d7d0b 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MonoDevelopWorkspace.MetadataReferenceHandler.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MonoDevelopWorkspace.MetadataReferenceHandler.cs @@ -109,8 +109,14 @@ namespace MonoDevelop.Ide.TypeSystem try { var referencedAssemblies = await data.Project.GetReferencedAssemblies (data.ConfigurationSelector, false).ConfigureAwait (false); foreach (var file in referencedAssemblies) { - if (file.IsProjectReference) - continue; + if (file.IsProjectReference) { + var referencedItem = file.GetReferencedItem (data.Project.ParentSolution); + if (!(referencedItem is MonoDevelop.Projects.DotNetProject referencedProject)) + continue; + + if (!TypeSystemService.IsOutputTrackedProject (referencedProject)) + continue; + } if (data.Token.IsCancellationRequested) return false; diff --git a/main/tests/Ide.Tests/MonoDevelop.Ide/TypeSystemServiceTests.cs b/main/tests/Ide.Tests/MonoDevelop.Ide/TypeSystemServiceTests.cs index dc65094cbf..b91c344b11 100644 --- a/main/tests/Ide.Tests/MonoDevelop.Ide/TypeSystemServiceTests.cs +++ b/main/tests/Ide.Tests/MonoDevelop.Ide/TypeSystemServiceTests.cs @@ -26,6 +26,7 @@ using System; using NUnit.Framework; +using NUnit.Framework.Constraints; using System.Collections.Generic; using UnitTests; using Mono.Addins; @@ -94,8 +95,17 @@ namespace MonoDevelop.Ide { string solFile = Util.GetSampleProject("csharp-app-fsharp-lib", "csappfslib.sln"); using (Solution sol = (Solution)await Services.ProjectService.ReadWorkspaceItem (Util.GetMonitor (), solFile)) { + var csharpApp = sol.Items.FirstOrDefault (pr => pr.Name == "csappfslib") as DotNetProject; var fsharpLibrary = sol.Items.FirstOrDefault (pr => pr.Name == "fslib") as DotNetProject; Assert.IsTrue (TypeSystemService.IsOutputTrackedProject (fsharpLibrary)); + + using (var workspace = await TypeSystemServiceTestExtensions.LoadSolution (sol)) { + var projectId = workspace.GetProjectId (csharpApp); + + var analysisProject = workspace.CurrentSolution.GetProject (projectId); + var refs = analysisProject.MetadataReferences.Select (r => new FilePath(r.Display).FileName); + Assert.That (refs, Contains.Item ("fslib.dll")); + } } } |