Updated Dapplo.Windows and Dapplo.CaliburnMicro, this commit fixes the breaking changes.

This commit is contained in:
Robin 2018-12-05 13:22:20 +01:00
commit a9b3a221ab
54 changed files with 203 additions and 207 deletions

View file

@ -44,12 +44,12 @@
<ItemGroup>
<PackageReference Include="AutoProperties.Fody" Version="1.19.0" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.10" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.10" />
<PackageReference Include="Dapplo.HttpExtensions" Version="0.9.18" />
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
<PackageReference Include="Dapplo.HttpExtensions.JsonNet" Version="0.9.18" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.7.26" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.3" />
<PackageReference Include="Fody" Version="3.3.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>

View file

@ -51,11 +51,11 @@
<ItemGroup>
<PackageReference Include="AutoProperties.Fody" Version="1.19.0" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.10" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.10" />
<PackageReference Include="Dapplo.HttpExtensions.JsonNet" Version="0.9.18" />
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.7.26" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.3" />
<PackageReference Include="Dapplo.Confluence" Version="0.8.16" />
<PackageReference Include="Fody" Version="3.3.2">
<PrivateAssets>all</PrivateAssets>

View file

@ -46,12 +46,12 @@
<ItemGroup>
<PackageReference Include="AutoProperties.Fody" Version="1.19.0" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.10" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.10" />
<PackageReference Include="Dapplo.HttpExtensions" Version="0.9.18" />
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
<PackageReference Include="Dapplo.HttpExtensions.JsonNet" Version="0.9.18" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.7.26" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.3" />
<PackageReference Include="Fody" Version="3.3.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>

View file

@ -38,9 +38,9 @@
<ItemGroup>
<PackageReference Include="AutoProperties.Fody" Version="1.19.0" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.7" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.7.26" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.10" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.10" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.3" />
<PackageReference Include="CliWrap" Version="2.1.0" />
<PackageReference Include="Fody" Version="3.3.2">
<PrivateAssets>all</PrivateAssets>

View file

@ -46,10 +46,10 @@
<ItemGroup>
<PackageReference Include="AutoProperties.Fody" Version="1.19.0" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.10" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.10" />
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.7.26" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.3" />
<PackageReference Include="Fody" Version="3.3.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>

View file

@ -46,10 +46,10 @@
<ItemGroup>
<PackageReference Include="AutoProperties.Fody" Version="1.19.0" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.10" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.10" />
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.7.26" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.3" />
<PackageReference Include="Fody" Version="3.3.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>

View file

@ -46,11 +46,11 @@
<ItemGroup>
<PackageReference Include="AutoProperties.Fody" Version="1.19.0" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.10" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.10" />
<PackageReference Include="Dapplo.HttpExtensions.JsonNet" Version="0.9.18" />
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.7.26" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.3" />
<PackageReference Include="Fody" Version="3.3.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>

View file

@ -62,8 +62,7 @@ namespace Greenshot.Addon.InternetExplorer
{
get
{
int num;
var res = GetAccessibleChildren(accessible, out num);
var res = GetAccessibleChildren(accessible, out _);
if (res == null)
{
return new Accessible[0];
@ -72,24 +71,18 @@ namespace Greenshot.Addon.InternetExplorer
var list = new List<Accessible>(res.Length);
foreach (var obj in res)
{
if (obj is IAccessible accessible)
if (obj is IAccessible localAccessible)
{
list.Add(new Accessible(accessible));
list.Add(new Accessible(localAccessible));
}
}
return list.ToArray();
}
}
private string Name
{
get { return accessible.get_accName(CHILDID_SELF); }
}
private string Name => accessible.get_accName(CHILDID_SELF);
private int ChildCount
{
get { return accessible.accChildCount; }
}
private int ChildCount => accessible.accChildCount;
/// <summary>
/// Returns the URL for the active tab
@ -106,12 +99,18 @@ namespace Greenshot.Addon.InternetExplorer
{
var tabIndex = tab.accessible.get_accState(CHILDID_SELF);
if ((int) tabIndex == IE_ACTIVE_TAB)
if ((int) tabIndex != IE_ACTIVE_TAB)
{
continue;
}
var description = tab.accessible.get_accDescription(CHILDID_SELF);
if (!string.IsNullOrEmpty(description))
if (string.IsNullOrEmpty(description))
{
continue;
}
if (description.Contains(Environment.NewLine))
{
var url = description.Substring(description.IndexOf(Environment.NewLine)).Trim();
@ -120,8 +119,6 @@ namespace Greenshot.Addon.InternetExplorer
}
}
}
}
}
return string.Empty;
}
}
@ -225,10 +222,16 @@ namespace Greenshot.Addon.InternetExplorer
{
var tabIndex = tab.accessible.get_accState(CHILDID_SELF);
var description = tab.accessible.get_accDescription(CHILDID_SELF);
if (!string.IsNullOrEmpty(description))
if (string.IsNullOrEmpty(description))
{
if (description.Contains(Environment.NewLine))
continue;
}
if (!description.Contains(Environment.NewLine))
{
continue;
}
var url = description.Substring(description.IndexOf(Environment.NewLine)).Trim();
yield return url;
}
@ -236,8 +239,6 @@ namespace Greenshot.Addon.InternetExplorer
}
}
}
}
}
/// <summary>
/// Count the tabs
@ -272,15 +273,17 @@ namespace Greenshot.Addon.InternetExplorer
{
foreach (var tab in child.Children)
{
if (tab.Name == tabCaptionToActivate)
if (tab.Name != tabCaptionToActivate)
{
continue;
}
tab.Activate();
return;
}
}
}
}
}
/// <summary>
/// Close the specified tabs
@ -294,8 +297,11 @@ namespace Greenshot.Addon.InternetExplorer
{
foreach (var tab in child.Children)
{
if (tab.Name == tabCaptionToClose)
if (tab.Name != tabCaptionToClose)
{
continue;
}
foreach (var CloseTab in tab.Children)
{
CloseTab.Activate();
@ -305,7 +311,6 @@ namespace Greenshot.Addon.InternetExplorer
}
}
}
}
/// <summary>
/// Active the IE tab

View file

@ -30,10 +30,10 @@
<ItemGroup>
<PackageReference Include="Dapplo.Windows">
<Version>0.7.26</Version>
<Version>0.8.3</Version>
</PackageReference>
<PackageReference Include="Dapplo.Windows.Com">
<Version>0.7.26</Version>
<Version>0.8.3</Version>
</PackageReference>
<PackageReference Include="Unofficial.Microsoft.mshtml" Version="7.0.3300" />
</ItemGroup>

View file

@ -48,12 +48,12 @@
<ItemGroup>
<PackageReference Include="AutoProperties.Fody" Version="1.19.0" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.10" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.10" />
<PackageReference Include="Dapplo.HttpExtensions.JsonNet" Version="0.9.18" />
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
<PackageReference Include="Dapplo.Utils" Version="1.1.9" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.7.26" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.3" />
<PackageReference Include="Dapplo.Jira" Version="0.8.9" />
<PackageReference Include="Fody" Version="3.3.2">
<PrivateAssets>all</PrivateAssets>

View file

@ -24,7 +24,6 @@
#region Usings
using System;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
using Dapplo.Windows.Common.Structs;

View file

@ -21,7 +21,6 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Linq;
@ -29,7 +28,6 @@ using System.Threading;
using System.Windows.Forms;
using Dapplo.Windows.Common.Extensions;
using Dapplo.Windows.Common.Structs;
using Greenshot.Addon.LegacyEditor.Forms;
using Greenshot.Addon.LegacyEditor.Memento;
using Greenshot.Addons.Core;
using Greenshot.Addons.Interfaces;

View file

@ -101,8 +101,10 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
Add(blurFilter);
break;
case PreparedFilter.GRAYSCALE:
AbstractFilter f = new GrayscaleFilter(this);
f.Invert = true;
AbstractFilter f = new GrayscaleFilter(this)
{
Invert = true
};
Add(f);
break;
case PreparedFilter.MAGNIFICATION:

View file

@ -21,7 +21,6 @@
using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Text;

View file

@ -123,7 +123,7 @@ namespace Greenshot.Addon.LegacyEditor.Forms
// Make sure the editor is placed on the same location as the last editor was on close
// But only if this still exists, else it will be reset (BUG-1812)
var editorWindowPlacement = _editorConfiguration.GetEditorPlacement();
var screenbounds = WindowCapture.GetScreenBounds();
var screenbounds = DisplayInfo.ScreenBounds;
if (!screenbounds.Contains(editorWindowPlacement.NormalPosition))
{
_editorConfiguration.ResetEditorPlacement();

View file

@ -133,11 +133,11 @@
<ItemGroup>
<PackageReference Include="AutoProperties.Fody" Version="1.19.0" />
<PackageReference Include="CommonServiceLocator" Version="2.0.4" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.10" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.10" />
<PackageReference Include="Dapplo.HttpExtensions" Version="0.9.18" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.7.26" />
<PackageReference Include="Dapplo.Windows.Icons" Version="0.7.26" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.3" />
<PackageReference Include="Dapplo.Windows.Icons" Version="0.8.3" />
<PackageReference Include="Fody" Version="3.3.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>

View file

@ -46,11 +46,11 @@
<ItemGroup>
<PackageReference Include="AutoProperties.Fody" Version="1.19.0" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.10" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.10" />
<PackageReference Include="Dapplo.HttpExtensions.JsonNet" Version="0.9.18" />
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.7.26" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.3" />
<PackageReference Include="MahApps.Metro" Version="2.0.0-alpha0121" />
<PackageReference Include="Fody" Version="3.3.2">
<PrivateAssets>all</PrivateAssets>

View file

@ -38,9 +38,9 @@
<ItemGroup>
<PackageReference Include="AutoProperties.Fody" Version="1.19.0" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.7" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.7.26" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.10" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.10" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.3" />
<PackageReference Include="Fody" Version="3.3.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>

View file

@ -25,7 +25,6 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using Greenshot.Addon.OcrCommand.Modi;

View file

@ -45,9 +45,9 @@
<ItemGroup>
<PackageReference Include="AutoProperties.Fody" Version="1.19.0" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.7" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.7.26" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.10" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.10" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.3" />
<PackageReference Include="Interop.Microsoft.Office.Interop.OneNote" Version="1.1.0" />
<PackageReference Include="Microsoft.Office.Interop.Excel" Version="15.0.4795.1000" />
<PackageReference Include="Microsoft.Office.Interop.Outlook" Version="15.0.4797.1003" />

View file

@ -26,7 +26,6 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Runtime.InteropServices;
using Dapplo.Log;
using Dapplo.Windows.Com;
using Dapplo.Windows.Desktop;

View file

@ -26,7 +26,6 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Runtime.InteropServices;
using Dapplo.Log;
using Dapplo.Windows.Com;
using Greenshot.Addon.Office.Configuration;

View file

@ -46,11 +46,11 @@
<ItemGroup>
<PackageReference Include="AutoProperties.Fody" Version="1.19.0" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.10" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.10" />
<PackageReference Include="Dapplo.HttpExtensions.JsonNet" Version="0.9.18" />
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.7.26" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.3" />
<PackageReference Include="MahApps.Metro" Version="2.0.0-alpha0121" />
<PackageReference Include="Fody" Version="3.3.2">
<PrivateAssets>all</PrivateAssets>

View file

@ -46,10 +46,10 @@
<ItemGroup>
<PackageReference Include="AutoProperties.Fody" Version="1.19.0" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.10" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.10" />
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.7.26" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.3" />
<PackageReference Include="Fody" Version="3.3.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>

View file

@ -46,11 +46,11 @@
<ItemGroup>
<PackageReference Include="AutoProperties.Fody" Version="1.19.0" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.10" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.10" />
<PackageReference Include="Dapplo.HttpExtensions.JsonNet" Version="0.9.18" />
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.7.26" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.3" />
<PackageReference Include="MahApps.Metro" Version="2.0.0-alpha0121" />
<PackageReference Include="Fody" Version="3.3.2">
<PrivateAssets>all</PrivateAssets>

View file

@ -28,7 +28,6 @@ using System.Linq;
using System.Net.Http;
using System.Threading.Tasks;
using Dapplo.HttpExtensions;
using Dapplo.HttpExtensions.ContentConverter;
using Dapplo.HttpExtensions.Factory;
using Dapplo.HttpExtensions.JsonNet;
using Greenshot.Addon.Tfs.Entities;

View file

@ -57,8 +57,8 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.7" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.7.26" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.10" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.10" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.3" />
</ItemGroup>
</Project>

View file

@ -27,7 +27,6 @@ using System;
using System.Drawing;
using System.Threading;
using System.Windows.Forms;
using Greenshot.Addons.Core;
using Greenshot.Addons.Resources;
#endregion

View file

@ -37,7 +37,6 @@ using Dapplo.Utils;
using Dapplo.Windows.Desktop;
using Dapplo.Windows.Dpi;
using Dapplo.Windows.Dpi.Forms;
using Greenshot.Addons.Core;
using Greenshot.Addons.Resources;
using Greenshot.Gfx;

View file

@ -28,7 +28,6 @@ using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using Dapplo.Log;
using Greenshot.Addons.Core;
using Greenshot.Addons.Resources;
#endregion

View file

@ -53,6 +53,9 @@ namespace Greenshot.Addons.Controls
private IntPtr _thumbnailHandle = IntPtr.Zero;
/// <summary>
/// Constructor for the Thumbnail form
/// </summary>
public ThumbnailForm()
{
ShowInTaskbar = false;
@ -139,9 +142,13 @@ namespace Greenshot.Addons.Controls
}
}
/// <summary>
/// Aligns the thumbnail form to the specified control
/// </summary>
/// <param name="alignTo"></param>
public void AlignToControl(Control alignTo)
{
var screenBounds = WindowCapture.GetScreenBounds();
var screenBounds = DisplayInfo.ScreenBounds;
if (screenBounds.Contains(alignTo.Left, alignTo.Top - Height))
{
Location = new Point(alignTo.Left + alignTo.Width / 2 - Width / 2, alignTo.Top - Height);

View file

@ -37,6 +37,7 @@ using Dapplo.Windows.Common.Structs;
using Dapplo.Windows.Dpi;
using Dapplo.Windows.Dpi.Forms;
using Dapplo.Windows.Extensions;
using Dapplo.Windows.User32;
using Greenshot.Addons.Components;
using Greenshot.Addons.Extensions;
using Greenshot.Addons.Interfaces;
@ -422,7 +423,7 @@ namespace Greenshot.Addons.Core
{
// find a suitable location
var location = Cursor.Position;
var menuRectangle = new NativeRect(location, menu.Size).Intersect(WindowCapture.GetScreenBounds());
var menuRectangle = new NativeRect(location, menu.Size).Intersect(DisplayInfo.ScreenBounds);
if (menuRectangle.Height < menu.Height)
{
location.Offset(-40, -(menuRectangle.Height - menu.Height));

View file

@ -29,6 +29,7 @@ using System.Drawing.Imaging;
using Dapplo.Log;
using Dapplo.Windows.Common.Extensions;
using Dapplo.Windows.Common.Structs;
using Dapplo.Windows.User32;
using Greenshot.Addons.Interfaces;
using Greenshot.Gfx;
@ -59,7 +60,7 @@ namespace Greenshot.Addons.Core
/// </summary>
public Capture()
{
_screenBounds = WindowCapture.GetScreenBounds();
_screenBounds = DisplayInfo.ScreenBounds;
_captureDetails = new CaptureDetails();
}
@ -82,7 +83,7 @@ namespace Greenshot.Addons.Core
{
if (_screenBounds == NativeRect.Empty)
{
_screenBounds = WindowCapture.GetScreenBounds();
_screenBounds = DisplayInfo.ScreenBounds;
}
return _screenBounds;
}

View file

@ -26,7 +26,6 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using Dapplo.CaliburnMicro.Configuration;
using Dapplo.Config.Attributes;
using Dapplo.Config.Ini;

View file

@ -59,34 +59,6 @@ namespace Greenshot.Addons.Core
// TODO: Solve, was static reference!
private static readonly ICoreConfiguration Configuration = new CoreConfigurationImpl();
/// <summary>
/// Used to cleanup the unmanged resource in the iconInfo for the CaptureCursor method
/// </summary>
/// <param name="hObject"></param>
/// <returns></returns>
[DllImport("gdi32", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool DeleteObject(IntPtr hObject);
/// <summary>
/// Get the bounds of all screens combined.
/// </summary>
/// <returns>A NativeRect of the bounds of the entire display area.</returns>
public static NativeRect GetScreenBounds()
{
int left = 0, top = 0, bottom = 0, right = 0;
foreach (var screen in Screen.AllScreens)
{
left = Math.Min(left, screen.Bounds.X);
top = Math.Min(top, screen.Bounds.Y);
var screenAbsRight = screen.Bounds.X + screen.Bounds.Width;
var screenAbsBottom = screen.Bounds.Y + screen.Bounds.Height;
right = Math.Max(right, screenAbsRight);
bottom = Math.Max(bottom, screenAbsBottom);
}
return new NativeRect(left, top, right, bottom);
}
/// <summary>
/// Retrieves the cursor location safely, accounting for DPI settings in Vista/Windows 7. This implementation
/// can conveniently be used when the cursor location is needed to deal with a fullscreen bitmap.
@ -102,14 +74,14 @@ namespace Greenshot.Addons.Core
/// <summary>
/// Converts locationRelativeToScreenOrigin to be relative to top left corner of all screen bounds, which might
/// be different in multiscreen setups. This implementation
/// be different in multi screen setups. This implementation
/// can conveniently be used when the cursor location is needed to deal with a fullscreen bitmap.
/// </summary>
/// <param name="locationRelativeToScreenOrigin">NativePoint</param>
/// <returns>NativePoint</returns>
public static NativePoint GetLocationRelativeToScreenBounds(NativePoint locationRelativeToScreenOrigin)
{
var bounds = GetScreenBounds();
var bounds = DisplayInfo.ScreenBounds;
return locationRelativeToScreenOrigin.Offset(-bounds.X, -bounds.Y);
}
@ -144,7 +116,7 @@ namespace Greenshot.Addons.Core
using (iconInfo.ColorBitmapHandle)
{
var cursorLocation = User32Api.GetCursorLocation();
// Allign cursor location to Bitmap coordinates (instead of Screen coordinates)
// Align cursor location to Bitmap coordinates (instead of Screen coordinates)
var x = cursorLocation.X - iconInfo.Hotspot.X - capture.ScreenBounds.X;
var y = cursorLocation.Y - iconInfo.Hotspot.Y - capture.ScreenBounds.Y;
// Set the location
@ -160,10 +132,10 @@ namespace Greenshot.Addons.Core
}
/// <summary>
/// This method will call the CaptureRectangle with the screenbounds, therefor Capturing the whole screen.
/// This method will call the CaptureRectangle with the screen bounds, therefor Capturing the whole screen.
/// </summary>
/// <returns>A Capture Object with the Screen as an Image</returns>
public static ICapture CaptureScreen(ICapture capture)
public static ICapture CaptureScreen(ICapture capture = null)
{
if (capture == null)
{
@ -350,7 +322,7 @@ namespace Greenshot.Addons.Core
// throw exception
throw exceptionToThrow;
}
// Create BITMAPINFOHEADER for CreateDIBSection
// Create BitmapInfoHeader for CreateDIBSection
var bmi = BitmapInfoHeader.Create(captureBounds.Width, captureBounds.Height, 24);
// TODO: Enable when the function is available again
@ -358,9 +330,8 @@ namespace Greenshot.Addons.Core
Win32.SetLastError(0);
// create a bitmap we can copy it to, using GetDeviceCaps to get the width/height
IntPtr bits0; // not used for our purposes. It returns a pointer to the raw bits that make up the bitmap.
// TODO: Change the usage to an enum?
using (var safeDibSectionHandle = Gdi32Api.CreateDIBSection(desktopDcHandle, ref bmi, 0, out bits0, IntPtr.Zero, 0))
// the returned (out) IntPtr _ is not used for our purposes. It returns a pointer to the raw bits that make up the bitmap.
using (var safeDibSectionHandle = Gdi32Api.CreateDIBSection(desktopDcHandle, ref bmi, DibColors.PalColors, out _, IntPtr.Zero, 0))
{
if (safeDibSectionHandle.IsInvalid)
{
@ -375,7 +346,7 @@ namespace Greenshot.Addons.Core
// select the bitmap object and store the old handle
using (safeCompatibleDcHandle.SelectObject(safeDibSectionHandle))
{
// bitblt over (make copy)
// bit-blt over (make copy)
// ReSharper disable once BitwiseOperatorOnEnumWithoutFlags
Gdi32Api.BitBlt(safeCompatibleDcHandle, 0, 0, captureBounds.Width, captureBounds.Height, desktopDcHandle, captureBounds.X, captureBounds.Y,
RasterOperations.SourceCopy | RasterOperations.CaptureBlt);
@ -427,7 +398,7 @@ namespace Greenshot.Addons.Core
// For all screens copy the content to the new bitmap
foreach (var screen in Screen.AllScreens)
{
// Make sure the bounds are offsetted to the capture bounds
// Make sure the bounds are with an offset to the capture bounds
var screenBounds = screen.Bounds;
screenBounds.Offset(-captureBounds.X, -captureBounds.Y);
graphics.DrawImage(tmpBitmap, screenBounds, screenBounds.X, screenBounds.Y, screenBounds.Width, screenBounds.Height, GraphicsUnit.Pixel);

View file

@ -44,13 +44,13 @@
<ItemGroup>
<PackageReference Include="AutoProperties.Fody" Version="1.19.0" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration">
<Version>1.2.7</Version>
<Version>1.2.10</Version>
</PackageReference>
<PackageReference Include="Dapplo.CaliburnMicro.Toasts">
<Version>1.2.7</Version>
<Version>1.2.10</Version>
</PackageReference>
<PackageReference Include="Dapplo.CaliburnMicro.Translations">
<Version>1.2.7</Version>
<Version>1.2.10</Version>
</PackageReference>
<PackageReference Include="Dapplo.HttpExtensions">
<Version>0.9.18</Version>
@ -62,10 +62,10 @@
<Version>0.9.18</Version>
</PackageReference>
<PackageReference Include="Dapplo.Windows.Clipboard">
<Version>0.7.26</Version>
<Version>0.8.3</Version>
</PackageReference>
<PackageReference Include="Dapplo.Windows.Icons">
<Version>0.7.26</Version>
<Version>0.8.3</Version>
</PackageReference>
<PackageReference Include="Fody" Version="3.3.2">
<PrivateAssets>all</PrivateAssets>

View file

@ -40,7 +40,6 @@ using Dapplo.Windows.DesktopWindowsManager;
using Dapplo.Windows.DesktopWindowsManager.Structs;
using Dapplo.Windows.Gdi32;
using Dapplo.Windows.User32;
using Dapplo.Windows.User32.Structs;
using Greenshot.Core.Configuration;
using Greenshot.Core.Enums;
using Greenshot.Core.Interfaces;
@ -178,7 +177,7 @@ namespace Greenshot.Core.Extensions
using (var workingArea = new Region())
{
// Find the screen where the window is and check if it fits
foreach (var displayInfo in User32Api.AllDisplays())
foreach (var displayInfo in DisplayInfo.AllDisplayInfos)
{
workingArea.Union(displayInfo.WorkingArea);
}
@ -187,7 +186,7 @@ namespace Greenshot.Core.Extensions
if (!workingArea.AreRectangleCornersVisisble(windowRectangle))
{
// If none found we find the biggest screen
foreach (var displayInfo in User32Api.AllDisplays())
foreach (var displayInfo in DisplayInfo.AllDisplayInfos)
{
var newWindowRectangle = new NativeRect(displayInfo.WorkingArea.Location, windowRectangle.Size);
if (!workingArea.AreRectangleCornersVisisble(newWindowRectangle))
@ -261,7 +260,7 @@ namespace Greenshot.Core.Extensions
tempFormShown = true;
// Intersect with screen
captureRectangle = captureRectangle.Intersect(DisplayInfo.GetAllScreenBounds());
captureRectangle = captureRectangle.Intersect(DisplayInfo.ScreenBounds);
// Check if we make a transparent capture
if (captureConfiguration.WindowCaptureMode == WindowCaptureModes.AeroTransparent)

View file

@ -29,7 +29,7 @@
<ItemGroup>
<PackageReference Include="Dapplo.Windows.Icons">
<Version>0.7.26</Version>
<Version>0.8.3</Version>
</PackageReference>
</ItemGroup>

View file

@ -38,7 +38,6 @@ using Dapplo.Windows.Gdi32.Enums;
using Dapplo.Windows.Gdi32.SafeHandles;
using Dapplo.Windows.Gdi32.Structs;
using Dapplo.Windows.User32;
using Dapplo.Windows.User32.Structs;
using Greenshot.Core.Enums;
using Greenshot.Core.Interfaces;
using Greenshot.Gfx.Extensions;
@ -52,7 +51,7 @@ namespace Greenshot.Core.Sources
{
public ValueTask<ICaptureElement<BitmapSource>> Import(CancellationToken cancellationToken = default)
{
var screenbounds = DisplayInfo.GetAllScreenBounds();
var screenbounds = DisplayInfo.ScreenBounds;
var result = CaptureRectangle(screenbounds);
return new ValueTask<ICaptureElement<BitmapSource>>(result);
}
@ -145,7 +144,7 @@ namespace Greenshot.Core.Sources
// Collect all screens inside this capture
var displaysInsideCapture = new List<DisplayInfo>();
foreach (var displayInfo in User32Api.AllDisplays())
foreach (var displayInfo in DisplayInfo.AllDisplayInfos)
{
if (displayInfo.Bounds.IntersectsWith(captureBounds))
{
@ -171,7 +170,7 @@ namespace Greenshot.Core.Sources
if (offscreenContent)
{
var modifiedImage = new WriteableBitmap(capturedBitmapSource.PixelWidth, capturedBitmapSource.PixelHeight, capturedBitmapSource.DpiX, capturedBitmapSource.DpiY, PixelFormats.Bgr32, capturedBitmapSource.Palette);
foreach (var displayInfo in User32Api.AllDisplays())
foreach (var displayInfo in DisplayInfo.AllDisplayInfos)
{
modifiedImage.CopyPixels(capturedBitmapSource, displayInfo.Bounds);
}

View file

@ -29,7 +29,7 @@
<ItemGroup>
<PackageReference Include="Dapplo.CaliburnMicro.Translations">
<Version>1.2.7</Version>
<Version>1.2.10</Version>
</PackageReference>
<PackageReference Include="Svg">
<Version>2.3.0</Version>

View file

@ -0,0 +1,29 @@
using System;
using BenchmarkDotNet.Attributes;
using Greenshot.Addons.Core;
namespace Greenshot.PerformanceTests
{
/// <summary>
/// This defines the benchmarks which can be done
/// </summary>
[MinColumn, MaxColumn, MemoryDiagnoser]
public class CapturePerformance
{
[Benchmark]
public void Capture()
{
using (var capture = WindowCapture.CaptureScreen())
{
if (capture.Bitmap == null)
{
throw new NotSupportedException();
}
if (capture.Bitmap.Width <= 0 || capture.Bitmap.Height <= 0)
{
throw new NotSupportedException();
}
}
}
}
}

View file

@ -16,7 +16,8 @@ namespace Greenshot.PerformanceTests
{
var job = Job.Default.With(Platform.X64);
var config = DefaultConfig.Instance.With(job).KeepBenchmarkFiles(true);
BenchmarkRunner.Run<GfxPerformanceShort>(config);
//BenchmarkRunner.Run<GfxPerformanceShort>(config);
BenchmarkRunner.Run<CapturePerformance>(config);
Console.ReadLine();
}
}

View file

@ -69,7 +69,7 @@
<ItemGroup>
<PackageReference Include="BenchmarkDotNet" Version="0.11.3" />
<PackageReference Include="CommandLineParser" Version="2.3.0" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.10" />
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
<PackageReference Include="Dapplo.Log.XUnit" Version="1.3.11" />
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="2.6.2">

View file

@ -22,7 +22,6 @@
#endregion
using System.ComponentModel;
using Dapplo.CaliburnMicro.Metro;
using Dapplo.CaliburnMicro.Metro.Configuration;
using Dapplo.Config.Ini;

View file

@ -21,7 +21,7 @@
#endregion
using Dapplo.CaliburnMicro.Metro;
using Dapplo.CaliburnMicro.Metro.Configuration;
using Dapplo.Config.Ini;
namespace Greenshot.Configuration.Impl

View file

@ -39,7 +39,6 @@ using Dapplo.Windows.Common.Extensions;
using Dapplo.Windows.Common.Structs;
using Dapplo.Windows.User32;
using Dapplo.Windows.User32.Enums;
using Dapplo.Windows.User32.Structs;
using Greenshot.Addons.Animation;
using Greenshot.Addons.Controls;
using Greenshot.Addons.Core;
@ -639,7 +638,7 @@ namespace Greenshot.Forms
}
else if (UsedCaptureMode != CaptureMode.Window)
{
var allScreenBounds = WindowCapture.GetScreenBounds();
var allScreenBounds = DisplayInfo.ScreenBounds;
allScreenBounds = allScreenBounds.MoveTo(WindowCapture.GetLocationRelativeToScreenBounds(allScreenBounds.Location));
if (verticalMove)

View file

@ -24,11 +24,9 @@
#region Usings
using System;
using System.Linq;
using System.Threading;
using System.Windows.Forms;
using Dapplo.Log;
using Greenshot.Addons.Core;
using Greenshot.Addons.Resources;
#endregion

View file

@ -60,7 +60,7 @@ using Greenshot.Ui.Configuration.ViewModels;
using Message = System.Windows.Forms.Message;
using Screen = System.Windows.Forms.Screen;
using Dapplo.Config.Ini;
using Dapplo.Addons;
using Dapplo.Windows.User32;
using Greenshot.Addons.Resources;
#endregion
@ -457,7 +457,7 @@ namespace Greenshot.Forms
}
}
private void CaptureIE()
private void CaptureIe()
{
if (_coreConfiguration.IECapture)
{
@ -597,28 +597,28 @@ namespace Greenshot.Forms
{
return;
}
var allScreensBounds = WindowCapture.GetScreenBounds();
var allScreensBounds = DisplayInfo.ScreenBounds;
var captureScreenItem = new ToolStripMenuItem(_greenshotLanguage.ContextmenuCapturefullscreenAll);
captureScreenItem.Click += (o, args) => BeginInvoke((MethodInvoker) (() => CaptureHelper.CaptureFullscreen(false, ScreenCaptureMode.FullScreen)));
captureScreenMenuItem.DropDownItems.Add(captureScreenItem);
foreach (var screen in Screen.AllScreens)
foreach (var displayInfo in DisplayInfo.AllDisplayInfos)
{
var screenToCapture = screen;
var screenToCapture = displayInfo;
var deviceAlignment = "";
if (screen.Bounds.Top == allScreensBounds.Top && screen.Bounds.Bottom != allScreensBounds.Bottom)
if (displayInfo.Bounds.Top == allScreensBounds.Top && displayInfo.Bounds.Bottom != allScreensBounds.Bottom)
{
deviceAlignment += " " + _greenshotLanguage.ContextmenuCapturefullscreenTop;
}
else if (screen.Bounds.Top != allScreensBounds.Top && screen.Bounds.Bottom == allScreensBounds.Bottom)
else if (displayInfo.Bounds.Top != allScreensBounds.Top && displayInfo.Bounds.Bottom == allScreensBounds.Bottom)
{
deviceAlignment += " " + _greenshotLanguage.ContextmenuCapturefullscreenBottom;
}
if (screen.Bounds.Left == allScreensBounds.Left && screen.Bounds.Right != allScreensBounds.Right)
if (displayInfo.Bounds.Left == allScreensBounds.Left && displayInfo.Bounds.Right != allScreensBounds.Right)
{
deviceAlignment += " " + _greenshotLanguage.ContextmenuCapturefullscreenLeft;
}
else if (screen.Bounds.Left != allScreensBounds.Left && screen.Bounds.Right == allScreensBounds.Right)
else if (displayInfo.Bounds.Left != allScreensBounds.Left && displayInfo.Bounds.Right == allScreensBounds.Right)
{
deviceAlignment += " " + _greenshotLanguage.ContextmenuCapturefullscreenRight;
}
@ -765,7 +765,7 @@ namespace Greenshot.Forms
private void Contextmenu_captureie_Click(object sender, EventArgs e)
{
CaptureIE();
CaptureIe();
}
private void Contextmenu_captureiefromlist_Click(object sender, EventArgs e)

View file

@ -79,18 +79,18 @@
<PackageReference Include="AutoProperties.Fody" Version="1.19.0" />
<PackageReference Include="CommandLineParser" Version="2.3.0" />
<PackageReference Include="CommonServiceLocator" Version="2.0.4" />
<PackageReference Include="Dapplo.CaliburnMicro.Dapp" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Metro" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Toasts" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Dapp" Version="1.2.10" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.10" />
<PackageReference Include="Dapplo.CaliburnMicro.Metro" Version="1.2.10" />
<PackageReference Include="Dapplo.CaliburnMicro.Toasts" Version="1.2.10" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.10" />
<PackageReference Include="Dapplo.HttpExtensions.JsonNet" Version="0.9.18" />
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
<PackageReference Include="Dapplo.Log.LogFile" Version="1.3.11" />
<PackageReference Include="Dapplo.Log.Loggers" Version="1.3.11" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.7.26" />
<PackageReference Include="Dapplo.Windows.Icons" Version="0.7.26" />
<PackageReference Include="Dapplo.Windows.Multimedia" Version="0.7.26" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.3" />
<PackageReference Include="Dapplo.Windows.Icons" Version="0.8.3" />
<PackageReference Include="Dapplo.Windows.Multimedia" Version="0.8.3" />
<PackageReference Include="Fody" Version="3.3.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>

View file

@ -28,7 +28,6 @@ using System.Diagnostics;
using System.Net;
using Dapplo.HttpExtensions;
using Dapplo.Log;
using Greenshot.Addons.Core;
#endregion

View file

@ -369,13 +369,15 @@ namespace Greenshot.Helpers
var mouseLocation = User32Api.GetCursorLocation();
foreach (var screen in Screen.AllScreens)
{
if (screen.Bounds.Contains(mouseLocation))
if (!screen.Bounds.Contains(mouseLocation))
{
continue;
}
_capture = WindowCapture.CaptureRectangle(_capture, screen.Bounds);
captureTaken = true;
break;
}
}
break;
case ScreenCaptureMode.Fixed:
if (CoreConfig.ScreenToCapture > 0 && CoreConfig.ScreenToCapture <= Screen.AllScreens.Length)

View file

@ -34,14 +34,11 @@ using Dapplo.Addons.Bootstrapper;
using Dapplo.CaliburnMicro.Dapp;
using Dapplo.Config.Ini.Converters;
using Dapplo.Config.Language;
using Dapplo.Log;
using Dapplo.Log.Loggers;
using Dapplo.Utils;
using Dapplo.Windows.Common.Structs;
using Dapplo.Windows.Dpi.Forms;
using Dapplo.Windows.Kernel32;
using Greenshot.Addons;
using Greenshot.Addons.Core;
using Greenshot.Addons.Resources;
using Greenshot.Ui.Misc.ViewModels;

View file

@ -26,10 +26,10 @@ using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Reactive.Disposables;
using Caliburn.Micro;
using Dapplo.CaliburnMicro.Configuration;
using Dapplo.CaliburnMicro.Extensions;
using Dapplo.CaliburnMicro.Metro;
using Dapplo.CaliburnMicro.Metro.Configuration;
using Dapplo.Utils.Extensions;
using Greenshot.Addons;
using Greenshot.Addons.Core;

View file

@ -27,7 +27,6 @@ using System.Windows.Media;
using Dapplo.CaliburnMicro.Toasts.ViewModels;
using Dapplo.Log;
using Greenshot.Addons;
using Greenshot.Addons.Core;
using Greenshot.Addons.Resources;
namespace Greenshot.Ui.Notifications.ViewModels