Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Northover2006-01-16 17:43:12 +0000
committerSteve Northover2006-01-16 17:43:12 +0000
commitb4742817124583c5ceea3d03da298f34d02c4944 (patch)
tree0691c3be739eee4545064de37a5480e134f5a25a /bundles/org.eclipse.swt/Eclipse SWT AWT
parent4d4c8f126aa79df26892b3bdd7e8dd3fdcaa1ffb (diff)
downloadeclipse.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')
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT AWT/win32/org/eclipse/swt/awt/SWT_AWT.java28
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 () {

Back to the top