diff options
author | Steve Northover | 2006-01-16 17:43:12 +0000 |
---|---|---|
committer | Steve Northover | 2006-01-16 17:43:12 +0000 |
commit | b4742817124583c5ceea3d03da298f34d02c4944 (patch) | |
tree | 0691c3be739eee4545064de37a5480e134f5a25a /bundles/org.eclipse.swt/Eclipse SWT AWT/win32 | |
parent | 4d4c8f126aa79df26892b3bdd7e8dd3fdcaa1ffb (diff) | |
download | eclipse.platform.swt-b4742817124583c5ceea3d03da298f34d02c4944.tar.gz eclipse.platform.swt-b4742817124583c5ceea3d03da298f34d02c4944.tar.xz eclipse.platform.swt-b4742817124583c5ceea3d03da298f34d02c4944.zip |
123933 - SWT_AWT embedded frame doesn't get iconify/decionify events
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT AWT/win32')
-rw-r--r-- | bundles/org.eclipse.swt/Eclipse SWT AWT/win32/org/eclipse/swt/awt/SWT_AWT.java | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT AWT/win32/org/eclipse/swt/awt/SWT_AWT.java b/bundles/org.eclipse.swt/Eclipse SWT AWT/win32/org/eclipse/swt/awt/SWT_AWT.java index c973160f2c..7baa322441 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT AWT/win32/org/eclipse/swt/awt/SWT_AWT.java +++ b/bundles/org.eclipse.swt/Eclipse SWT AWT/win32/org/eclipse/swt/awt/SWT_AWT.java @@ -175,6 +175,31 @@ public static Frame new_Frame (final Composite parent) { */ frame.addNotify(); + /* Forward the iconify and deiconify events */ + final Listener shellListener = new Listener () { + public void handleEvent (Event e) { + switch (e.type) { + case SWT.Deiconify: + EventQueue.invokeLater(new Runnable () { + public void run () { + frame.dispatchEvent (new WindowEvent (frame, WindowEvent.WINDOW_DEICONIFIED)); + } + }); + break; + case SWT.Iconify: + EventQueue.invokeLater(new Runnable () { + public void run () { + frame.dispatchEvent (new WindowEvent (frame, WindowEvent.WINDOW_ICONIFIED)); + } + }); + break; + } + } + }; + Shell shell = parent.getShell (); + shell.addListener (SWT.Deiconify, shellListener); + shell.addListener (SWT.Iconify, shellListener); + /* * Generate the appropriate events to activate and deactivate * the embedded frame. This is needed in order to make keyboard @@ -184,6 +209,9 @@ public static Frame new_Frame (final Composite parent) { public void handleEvent (Event e) { switch (e.type) { case SWT.Dispose: + Shell shell = parent.getShell (); + shell.removeListener (SWT.Deiconify, shellListener); + shell.removeListener (SWT.Iconify, shellListener); parent.setVisible(false); EventQueue.invokeLater(new Runnable () { public void run () { |