mirror of
https://github.com/greenshot/greenshot
synced 2025-08-22 14:24:43 -07:00
Fixes
This commit is contained in:
parent
0d15124cae
commit
aac7354a6e
3 changed files with 79 additions and 71 deletions
|
@ -33,6 +33,7 @@ Source: {#ReleaseDir}\Newtonsoft.Json.dll; DestDir: {app}; Components: greenshot
|
||||||
Source: {#ReleaseDir}\Emoji.Wpf.dll; DestDir: {app}; Components: greenshot; Flags: overwritereadonly ignoreversion replacesameversion
|
Source: {#ReleaseDir}\Emoji.Wpf.dll; DestDir: {app}; Components: greenshot; Flags: overwritereadonly ignoreversion replacesameversion
|
||||||
Source: {#ReleaseDir}\Typography.GlyphLayout.dll; DestDir: {app}; Components: greenshot; Flags: overwritereadonly ignoreversion replacesameversion
|
Source: {#ReleaseDir}\Typography.GlyphLayout.dll; DestDir: {app}; Components: greenshot; Flags: overwritereadonly ignoreversion replacesameversion
|
||||||
Source: {#ReleaseDir}\Typography.OpenFont.dll; DestDir: {app}; Components: greenshot; Flags: overwritereadonly ignoreversion replacesameversion
|
Source: {#ReleaseDir}\Typography.OpenFont.dll; DestDir: {app}; Components: greenshot; Flags: overwritereadonly ignoreversion replacesameversion
|
||||||
|
Source: {#ReleaseDir}\Stfu.dll; DestDir: {app}; Components: greenshot; Flags: overwritereadonly ignoreversion replacesameversion
|
||||||
Source: {#GreenshotProjectDir}\log4net.xml; DestDir: {app}; Components: greenshot; Flags: overwritereadonly ignoreversion
|
Source: {#GreenshotProjectDir}\log4net.xml; DestDir: {app}; Components: greenshot; Flags: overwritereadonly ignoreversion
|
||||||
Source: {#ReleaseDir}\checksum.SHA256; DestDir: {app}; Components: greenshot; Flags: overwritereadonly ignoreversion replacesameversion
|
Source: {#ReleaseDir}\checksum.SHA256; DestDir: {app}; Components: greenshot; Flags: overwritereadonly ignoreversion replacesameversion
|
||||||
;Source: ..\greenshot-defaults.ini; DestDir: {app}; Flags: overwritereadonly ignoreversion replacesameversion
|
;Source: ..\greenshot-defaults.ini; DestDir: {app}; Flags: overwritereadonly ignoreversion replacesameversion
|
||||||
|
|
|
@ -44,8 +44,11 @@ namespace Greenshot.Editor.Drawing
|
||||||
{
|
{
|
||||||
private static readonly ILog Log = LogManager.GetLogger(typeof(IconContainer));
|
private static readonly ILog Log = LogManager.GetLogger(typeof(IconContainer));
|
||||||
|
|
||||||
|
[NonSerialized] private static EmojiContainer _currentContainer;
|
||||||
|
[NonSerialized] private static ElementHost _emojiPickerHost;
|
||||||
|
[NonSerialized] private static Emoji.Wpf.Picker _emojiPicker;
|
||||||
|
|
||||||
[NonSerialized] private System.Windows.Controls.Image _image;
|
[NonSerialized] private System.Windows.Controls.Image _image;
|
||||||
[NonSerialized] private ElementHost _emojiPicker;
|
|
||||||
[NonSerialized] private bool _firstSelection = true;
|
[NonSerialized] private bool _firstSelection = true;
|
||||||
|
|
||||||
private string _emoji;
|
private string _emoji;
|
||||||
|
@ -82,44 +85,45 @@ namespace Greenshot.Editor.Drawing
|
||||||
|
|
||||||
private void ShowEmojiPicker()
|
private void ShowEmojiPicker()
|
||||||
{
|
{
|
||||||
if (_emojiPicker == null)
|
_currentContainer = this;
|
||||||
{
|
|
||||||
var picker = new Emoji.Wpf.Picker();
|
|
||||||
picker.Picked += (_, args) =>
|
|
||||||
{
|
|
||||||
Emoji = args.Emoji;
|
|
||||||
Invalidate();
|
|
||||||
};
|
|
||||||
|
|
||||||
_emojiPicker = new ElementHost();
|
CreatePickerControl();
|
||||||
_emojiPicker.Dock = DockStyle.None;
|
|
||||||
_emojiPicker.Child = picker;
|
|
||||||
}
|
|
||||||
|
|
||||||
var emojiPickerChild = ((Emoji.Wpf.Picker)_emojiPicker.Child);
|
|
||||||
emojiPickerChild.Selection = Emoji;
|
|
||||||
|
|
||||||
var absRectangle = GuiRectangle.GetGuiRectangle(Left, Top, Width, Height);
|
var absRectangle = GuiRectangle.GetGuiRectangle(Left, Top, Width, Height);
|
||||||
var displayRectangle = Parent.ToSurfaceCoordinates(absRectangle);
|
var displayRectangle = Parent.ToSurfaceCoordinates(absRectangle);
|
||||||
_emojiPicker.Width = 0; // Trick to hide the picker's button
|
_emojiPickerHost.Width = 0; // Trick to hide the picker's button
|
||||||
_emojiPicker.Height = displayRectangle.Height;
|
_emojiPickerHost.Height = displayRectangle.Height;
|
||||||
_emojiPicker.Left = displayRectangle.Left;
|
_emojiPickerHost.Left = displayRectangle.Left;
|
||||||
_emojiPicker.Top = displayRectangle.Top;
|
_emojiPickerHost.Top = displayRectangle.Top;
|
||||||
|
|
||||||
if (_parent != null)
|
_emojiPicker.Selection = Emoji;
|
||||||
{
|
_emojiPicker.ShowPopup = true;
|
||||||
_parent.KeysLocked = true;
|
|
||||||
_parent.Controls.Add(_emojiPicker);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
emojiPickerChild.ShowPopup = true;
|
private void CreatePickerControl()
|
||||||
|
{
|
||||||
|
if (_emojiPickerHost == null)
|
||||||
|
{
|
||||||
|
_emojiPicker = new Emoji.Wpf.Picker();
|
||||||
|
_emojiPicker.Picked += (_, args) =>
|
||||||
|
{
|
||||||
|
_currentContainer.Emoji = args.Emoji;
|
||||||
|
_currentContainer.Invalidate();
|
||||||
|
};
|
||||||
|
|
||||||
|
_emojiPickerHost = new ElementHost();
|
||||||
|
_emojiPickerHost.Dock = DockStyle.None;
|
||||||
|
_emojiPickerHost.Child = _emojiPicker;
|
||||||
|
|
||||||
|
_parent.Controls.Add(_emojiPickerHost);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void HideEmojiPicker()
|
private void HideEmojiPicker()
|
||||||
{
|
{
|
||||||
if (_parent != null && _emojiPicker != null)
|
if (_emojiPicker != null)
|
||||||
{
|
{
|
||||||
_parent.Controls.Remove(_emojiPicker);
|
_emojiPicker.ShowPopup = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -579,6 +579,9 @@ namespace Greenshot.Editor.Forms
|
||||||
case DrawingModes.Path:
|
case DrawingModes.Path:
|
||||||
SetButtonChecked(btnFreehand);
|
SetButtonChecked(btnFreehand);
|
||||||
break;
|
break;
|
||||||
|
case DrawingModes.Emoji:
|
||||||
|
SetButtonChecked(btnEmoji);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue