X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse.webbrowser/src/net/sourceforge/phpeclipse/webbrowser/views/BrowserView.java b/net.sourceforge.phpeclipse.webbrowser/src/net/sourceforge/phpeclipse/webbrowser/views/BrowserView.java index 92face4..52f6ab4 100644 --- a/net.sourceforge.phpeclipse.webbrowser/src/net/sourceforge/phpeclipse/webbrowser/views/BrowserView.java +++ b/net.sourceforge.phpeclipse.webbrowser/src/net/sourceforge/phpeclipse/webbrowser/views/BrowserView.java @@ -14,9 +14,12 @@ import net.sourceforge.phpeclipse.webbrowser.internal.WebBrowser; import net.sourceforge.phpeclipse.webbrowser.internal.WebBrowserUtil; import org.eclipse.core.resources.IFile; +import org.eclipse.swt.browser.Browser; +import org.eclipse.swt.browser.CloseWindowListener; import org.eclipse.swt.browser.ProgressListener; import org.eclipse.swt.browser.StatusTextListener; import org.eclipse.swt.browser.TitleListener; +import org.eclipse.swt.browser.WindowEvent; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.part.IShowInTarget; import org.eclipse.ui.part.ShowInContext; @@ -45,6 +48,15 @@ public class BrowserView extends ViewPart implements IShowInTarget { try { if (WebBrowserUtil.isInternalBrowserOperational()) { fInstance = new WebBrowser(frame, true, true); + // #1365431 (toshihiro) start + fInstance.getBrowser().addCloseWindowListener( + new CloseWindowListener() { + public void close(WindowEvent event) { + getViewSite().getPage().hideView( + BrowserView.this); + } + }); + // #1365431 (toshihiro) end } } catch (Exception e) { fInstance = null; @@ -84,7 +96,7 @@ public class BrowserView extends ViewPart implements IShowInTarget { // } // }, null); // } catch (CoreException e) { - // // TODO Auto-generated catch block + // // TO DO Auto-generated catch block // e.printStackTrace(); // } } @@ -100,18 +112,21 @@ public class BrowserView extends ViewPart implements IShowInTarget { // } // }, null); // } catch (CoreException e) { - // // TODO Auto-generated catch block + // // TO DO Auto-generated catch block // e.printStackTrace(); // } } } public void refresh(String url) { - if (fInstance != null) { - if (fUrl == null || !fUrl.equals(url)) { + if (fInstance != null && url != null) { + if (fUrl == null) { setUrl(url); } else { - refresh(); + Browser browser = fInstance.getBrowser(); + if (browser != null && !browser.getUrl().equals(url)) { + setUrl(url); + } } } }