double click maximizes
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/CTabFolder2.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/CTabFolder2.java
index c7d65f1..6b5075e 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/CTabFolder2.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/CTabFolder2.java
@@ -1702,10 +1702,38 @@
}
return false;
}
-void onMouseDoubleClick(Event event) {
+void onMouseDoubleClick(Event event) {
+ int x = event.x, y = event.y;
+ if (minRect.contains(x, y)) return;
+ if (maxRect.contains(x, y)) return;
+ if (chevronRect.contains(x, y)) return;
+
+ if (showMax) {
+ CTabFolderEvent e = new CTabFolderEvent(this);
+ e.widget = this;
+ e.time = event.time;
+ e.doit = true;
+ boolean restore = maximized;
+ for (int i = 0; i < minmaxListeners.length; i++) {
+ if (restore) {
+ minmaxListeners[i].restore(e);
+ } else {
+ minmaxListeners[i].maximize(e);
+ }
+ }
+ if (e.doit) {
+ maximized = !restore;
+ redraw(maxRect.x, maxRect.y, maxRect.width, maxRect.height, false);
+ update();
+ }
+ }
+
+
Event e = new Event();
e.item = getItem(new Point(event.x, event.y));
- notifyListeners(SWT.DefaultSelection, e);
+ if (e.item != null) {
+ notifyListeners(SWT.DefaultSelection, e);
+ }
}
void onMouseHover(Event event) {
if (tipShowing) return;