public void ForceSynchronize() { Browser.Visible = CurrentModel.Mode == Model.WorkMode.Browse || !IsBusy; Browser.IsWebBrowserContextMenuEnabled = CurrentModel.Mode == Model.WorkMode.Browse; progressBar.Visible = IsBusy; Browser.AllowNavigation = CurrentModel.Mode == Model.WorkMode.Browse || IsBusy; toolStrip1.Enabled = CurrentModel.Mode == Model.WorkMode.Browse; Browser.AllowWebBrowserDrop = CurrentModel.Mode == Model.WorkMode.Browse; if (/*!IsBusy && */!WebPosition.Equals(cachedPosition, Position)) { if (!Uri.Equals(cachedPosition, Position.Persist)) { Browser.AllowNavigation = true; //Browser.Navigate(Position.Url.AbsoluteUri); Browser.Navigate(Position.Url); Console.WriteLine("Navigate {0}", Position.Url); urlComboBox.Text = Position.Url.AbsoluteUri; } cachedPosition = Position.Persist; } if (CurrentModel.Mode == Model.WorkMode.Browse) { backButton.Enabled = Browser.CanGoBack; forwardButton.Enabled = Browser.CanGoForward; if (!IsBusy && Browser.Url != null && !Uri.Equals(Position.Url, Browser.Url)) { Position.Set(WebPosition.Parse(Browser.Url.AbsoluteUri)); cachedPosition = Position.Persist; urlComboBox.Text = cachedPosition.Url; } } if (CurrentModel.Mode == Model.WorkMode.Parse) { if (Browser.Focused && Browser.Document != null && Browser.Document.DomDocument != null) { mshtml.HTMLDocumentClass nativeDoc = Browser.Document.DomDocument as mshtml.HTMLDocumentClass; if (nativeDoc != null && nativeDoc.selection != null && nativeDoc.selection.type != "None") nativeDoc.selection.empty(); } if (!IsBusy && Browser.Document != null) { if (!WebPosition.Equals(lastParsedDocument.Key, cachedPosition)) { if (lastParsedDocument.Value != null) DeinitDocument(lastParsedDocument.Value); lastParsedDocument = new KeyValuePair<WebPosition.PersistStruct, HtmlDocument>(cachedPosition, Browser.Document); InitDocument(Browser.Document); } } if (!contextMenuStrip1.Visible) //Browser.Focused SetLastPointedElement(CurrentPointedElement); } }
public RequestState(WebPosition.PersistStruct pos, WebRequest request) { this.Request = request; this.Position = pos; }
private void SetPosition(string adress) { cachedPosition = WebPosition.EmptyPosition.Persist; WebPosition pos = WebPosition.Parse(adress); if (pos != null) { Position.Set(pos); } }