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;
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;
// }
// }, null);
// } catch (CoreException e) {
- // // TODO Auto-generated catch block
+ // // TO DO Auto-generated catch block
// e.printStackTrace();
// }
}
// }
// }, 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);
+ }
}
}
}