|
From: <dos...@us...> - 2014-09-22 21:28:56
|
Revision: 4881
http://sourceforge.net/p/mp-plugins/code/4881
Author: doskabouter
Date: 2014-09-22 21:28:48 +0000 (Mon, 22 Sep 2014)
Log Message:
-----------
Fixed focus issues
Modified Paths:
--------------
trunk/plugins/BrowseTheWeb/Source/BrowseTheWeb/GUIPlugin.cs
Modified: trunk/plugins/BrowseTheWeb/Source/BrowseTheWeb/GUIPlugin.cs
===================================================================
--- trunk/plugins/BrowseTheWeb/Source/BrowseTheWeb/GUIPlugin.cs 2014-09-22 21:21:23 UTC (rev 4880)
+++ trunk/plugins/BrowseTheWeb/Source/BrowseTheWeb/GUIPlugin.cs 2014-09-22 21:28:48 UTC (rev 4881)
@@ -91,6 +91,7 @@
private string linkId = string.Empty;
private int linkTime = 0;
private Timer timer = new Timer();
+ private Timer restoreClickTimer = new Timer();
private string lastDomain = string.Empty;
private float zoom = Settings.Instance.DefaultZoom;
@@ -360,6 +361,10 @@
timer.Tick += new EventHandler(timer_Tick);
timer.Start();
+ restoreClickTimer.Enabled = false;
+ restoreClickTimer.Interval = 500;
+ restoreClickTimer.Tick += new EventHandler(restoreClickTimer_Tick);
+
if (settings.UseMouse)
webBrowser.Select();
}
@@ -397,10 +402,14 @@
timer.Tick -= timer_Tick;
timer.Stop();
+ restoreClickTimer.Stop();
+ restoreClickTimer.Tick -= restoreClickTimer_Tick;
if (settings.UseMouse)
{
Cursor.Hide();
GUIGraphicsContext.MouseSupport = originalMouseSupport;
+ FieldInfo fi = GUIGraphicsContext.form.GetType().GetField("AutoHideMouse", BindingFlags.NonPublic | BindingFlags.Instance);
+ fi.SetValue(GUIGraphicsContext.form, originalMouseAutoHide);
}
base.OnPageDestroy(new_windowId);
}
@@ -684,16 +693,27 @@
}
}
+
+ void ResetFocus()
+ {
+ clickFromPlugin = false;
+ restoreClickTimer.Stop();
+
+ webBrowser.Enabled = false;
+ GUIGraphicsContext.form.Focus();
+ }
+
void webBrowser_DomClick(object sender, DomEventArgs e)
{
if (clickFromPlugin) // click succeeded, so focus can safely be reset
- {
- clickFromPlugin = false;
- webBrowser.Enabled = false;
- GUIGraphicsContext.form.Focus();
- }
+ ResetFocus();
}
+ void restoreClickTimer_Tick(object sender, EventArgs e)
+ {
+ ResetFocus();
+ }
+
private void OnEnterNewLink()
{
webBrowser.Visible = false;
@@ -1000,6 +1020,7 @@
ips[1].Mouse.Flags = MOUSEEVENTF_LEFTUP;
clickFromPlugin = true;
+ restoreClickTimer.Start();
if (SendInput(2, ips, Marshal.SizeOf(typeof(INPUT))) == 0)
MyLog.debug("Error sendinput");
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|