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. |