Skip to content

Commit abef175

Browse files
committed
SetForegroundWindow(WindowFromPoint(MouseLocation))
1 parent baa87d7 commit abef175

File tree

3 files changed

+22
-28
lines changed

3 files changed

+22
-28
lines changed

IconPopup.xaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
<Window x:Name="render" x:Class="CopyPlusPlus.IconPopup"
1+
<Window x:Class="CopyPlusPlus.IconPopup"
22
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
33
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
44
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
55
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
66
mc:Ignorable="d"
7-
Title="IconPopup" Opacity="1" Background="Transparent" AllowsTransparency="True" WindowStyle="None" ShowInTaskbar="False" Topmost="True" ResizeMode="NoResize" Width="33" Height="32" Closed="OnClosed">
7+
Title="IconPopup" Opacity="1" Background="Transparent" AllowsTransparency="True" WindowStyle="None" ResizeMode="NoResize" Width="33" Height="32" Closed="OnClosed" Focusable="False" Topmost="True" ShowActivated="False" ShowInTaskbar="False">
88
<Grid MouseEnter="Icon_OnMouseEnter" MouseLeave="Icon_OnMouseLeave">
9-
<Image x:Name="Icon" Source="/images/icon-circle.png" Cursor="Hand" HorizontalAlignment="Center" Margin="2,2,2,2" RenderOptions.BitmapScalingMode="HighQuality" MouseLeftButtonDown="OnLeftMouseDown" VerticalAlignment="Center" />
9+
<Image x:Name="Icon" Source="/images/icon-circle.png" Cursor="Hand" HorizontalAlignment="Center" Margin="2,2,2,2" RenderOptions.BitmapScalingMode="HighQuality" MouseLeftButtonDown="OnLeftMouseDown" VerticalAlignment="Center" />
1010
<!--<Image x:Name="Image2" Source="/images/translate-circle.png" Cursor="Hand" HorizontalAlignment="Right" Margin="0,2,2,2" RenderOptions.BitmapScalingMode="HighQuality" MouseLeftButtonUp="OnTranslateClick" />-->
1111
</Grid>
1212
</Window>

IconPopup.xaml.cs

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
using System;
22
using System.Linq;
33
using System.Runtime.InteropServices;
4-
using System.Threading;
54
using System.Threading.Tasks;
65
using System.Timers;
76
using System.Windows;
8-
using System.Windows.Automation;
97
using System.Windows.Forms;
108
using System.Windows.Input;
9+
using ControlzEx.Standard;
1110
using Application = System.Windows.Application;
1211
using Clipboard = System.Windows.Clipboard;
1312
using MouseEventArgs = System.Windows.Input.MouseEventArgs;
@@ -30,9 +29,10 @@ public partial class IconPopup
3029

3130
private double _opacity = 1;
3231

33-
public IntPtr mouseLocation;
3432
public string CopiedText;
3533

34+
[Obsolete] public POINT MouseLocation;
35+
3636
public IconPopup()
3737
{
3838
InitializeComponent();
@@ -55,30 +55,23 @@ public IconPopup()
5555
public static extern int SetForegroundWindow(IntPtr hwnd);
5656

5757
[DllImport("user32.dll")]
58-
private static extern IntPtr WindowFromPoint(Point point);
58+
[Obsolete]
59+
private static extern IntPtr WindowFromPoint(POINT point);
5960

61+
[Obsolete]
6062
private async void OnLeftMouseDown(object sender, MouseButtonEventArgs e)
6163
{
62-
Point a = PointToScreen(Mouse.GetPosition(this));
6364
Hide();
64-
await Task.Delay(10);
65-
66-
var b = WindowFromPoint(a);
67-
68-
//var a = WindowFromPoint();
69-
SetForegroundWindow(b);
7065

71-
//AutomationElement element = AutomationElement.FromHandle(WindowFromPoint(mouseLocation));
72-
//if (element != null)
73-
//{
74-
// element.SetFocus();
75-
//}
66+
SetForegroundWindow(WindowFromPoint(MouseLocation));
7667

77-
await Task.Delay(10);
68+
//await Task.Delay(10);
7869

7970
SendKeys.SendWait("^c");
71+
8072
await Task.Delay(666);
8173
//Thread.Sleep(1111);
74+
8275
_mainWindow.ProcessText(Clipboard.GetText());
8376
}
8477

MainWindow.xaml.cs

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,20 +16,15 @@
1616
using System.Web;
1717
using System.Windows;
1818
using System.Windows.Controls;
19-
using System.Windows.Forms;
2019
using System.Windows.Input;
20+
using ControlzEx.Standard;
2121
using CopyPlusPlus.Languages;
2222
using CopyPlusPlus.Properties;
2323
using Gma.System.MouseKeyHook;
2424
using GoogleTranslateFreeApi;
2525
using Hardcodet.Wpf.TaskbarNotification;
2626
using Microsoft.Win32;
2727
using Newtonsoft.Json;
28-
using Application = System.Windows.Application;
29-
using Clipboard = System.Windows.Clipboard;
30-
using Cursors = System.Windows.Forms.Cursors;
31-
using DataFormats = System.Windows.DataFormats;
32-
using MessageBox = System.Windows.MessageBox;
3328
using MouseEventArgs = System.Windows.Forms.MouseEventArgs;
3429

3530
namespace CopyPlusPlus
@@ -135,6 +130,11 @@ private static void OnMouseWheel(object sender, MouseEventArgs e)
135130
.LastOrDefault(window => window is IconPopup)?.Close();
136131
}
137132

133+
[DllImport("user32.dll")]
134+
[Obsolete]
135+
private static extern bool GetCursorPos(out POINT lpPoint);
136+
137+
[Obsolete]
138138
private void OnMouseDragFinished(object sender, MouseEventArgs e)
139139
{
140140
if (!GlobalSwitch) return;
@@ -154,6 +154,8 @@ private void OnMouseDragFinished(object sender, MouseEventArgs e)
154154

155155
//if (Clipboard.ContainsText())
156156

157+
GetCursorPos(out var p);
158+
157159
try
158160
{
159161
var transform = PresentationSource.FromVisual(this).CompositionTarget.TransformFromDevice;
@@ -162,8 +164,7 @@ private void OnMouseDragFinished(object sender, MouseEventArgs e)
162164
{
163165
Left = mouse.X + IconPopupX,
164166
Top = mouse.Y + IconPopupY,
165-
ShowActivated = false,
166-
Focusable = false,
167+
MouseLocation = p
167168
//CopiedText = Clipboard.GetText()
168169
};
169170
iconPopup.Show();

0 commit comments

Comments
 (0)