#1365431 (toshihiro) - PHP Editor crashes Windows with JavaScript 'windows.close()'
[phpeclipse.git] / net.sourceforge.phpeclipse.webbrowser / src / net / sourceforge / phpeclipse / webbrowser / views / BrowserView.java
index db5d321..04a4cb7 100644 (file)
@@ -14,9 +14,11 @@ 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.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;
@@ -26,7 +28,7 @@ import org.eclipse.ui.part.ViewPart;
  * <code>BrowserView</code> is a simple demonstration of the SWT Browser
  * widget. It consists of a workbench view and tab folder where each tab in the
  * folder allows the user to interact with a control.
- *
+ * 
  * @see ViewPart
  */
 public class BrowserView extends ViewPart implements IShowInTarget {
@@ -38,13 +40,22 @@ public class BrowserView extends ViewPart implements IShowInTarget {
 
        /**
         * Create the example
-        *
+        * 
         * @see ViewPart#createPartControl
         */
        public void createPartControl(Composite frame) {
                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;
@@ -53,7 +64,7 @@ public class BrowserView extends ViewPart implements IShowInTarget {
 
        /**
         * Called when we must grab focus.
-        *
+        * 
         * @see org.eclipse.ui.part.ViewPart#setFocus
         */
        public void setFocus() {