diff options
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Shell.java')
-rw-r--r-- | bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Shell.java | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Shell.java b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Shell.java index 976fab44c5..c0532c70b8 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Shell.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Shell.java @@ -1413,6 +1413,10 @@ public void setActive () { } void setActiveControl (Control control) { + setActiveControl (control, SWT.None); +} + +void setActiveControl (Control control, int type) { if (control != null && control.isDisposed ()) control = null; if (lastActive != null && lastActive.isDisposed ()) lastActive = null; if (lastActive == control) return; @@ -1444,7 +1448,9 @@ void setActiveControl (Control control) { } for (int i=activate.length-1; i>=index; --i) { if (!activate [i].isDisposed ()) { - activate [i].sendEvent (SWT.Activate); + Event event = new Event (); + event.detail = type; + activate [i].sendEvent (SWT.Activate, event); } } } @@ -2325,7 +2331,7 @@ LRESULT WM_MOUSEACTIVATE (long /*int*/ wParam, long /*int*/ lParam) { } long /*int*/ code = callWindowProc (handle, OS.WM_MOUSEACTIVATE, wParam, lParam); - setActiveControl (control); + setActiveControl (control, SWT.MouseDown); return new LRESULT (code); } |