Fixed: 1760857 - Avoid refreshing the preview when phpeditor got focus.
[phpeclipse.git] / net.sourceforge.phpeclipse.webbrowser / src / net / sourceforge / phpeclipse / webbrowser / views / BrowserView.java
index 92face4..52f6ab4 100644 (file)
@@ -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);
+                               }
                        }
                }
        }