diff options
author | Anatoly Spektor <aspektor@redhat.com> | 2013-05-20 18:06:15 -0400 |
---|---|---|
committer | Anatoly Spektor <aspektor@redhat.com> | 2013-05-20 18:06:15 -0400 |
commit | 7a6302745ea3f07c4d4670a0297a2eaa7a2348ae (patch) | |
tree | ca56aae3c3cb25b45df60fb016c0119e80ac2d80 | |
parent | 0868ccd3e5bd81cb6504eaaabcb61f640db08a4a (diff) | |
download | eclipse.platform.swt-gsignal_.tar.gz eclipse.platform.swt-gsignal_.tar.xz eclipse.platform.swt-gsignal_.zip |
Solves gsinal invalidation errors when run ControlExample with GLIB 2.36 gsignal_
18 files changed, 110 insertions, 105 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Button.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Button.java index 9f92a459f6..28d47a5b1f 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Button.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Button.java @@ -529,10 +529,10 @@ long /*int*/ gtk_key_press_event (long /*int*/ widget, long /*int*/ event) { void hookEvents () { super.hookEvents(); if (NEW_CLOSURES) { - OS.g_signal_connect_closure (handle, OS.clicked, getClosure(CLICKED, display.windowProc2, Widget.CLICKED), false); + OS.g_signal_connect_closure (handle, OS.clicked, getClosure(CLICKED, display.windowProc2), false); if (labelHandle != 0) { - OS.g_signal_connect_closure_by_id (labelHandle, display.signalIds [MNEMONIC_ACTIVATE], 0, getClosure(MNEMONIC_ACTIVATE, display.windowProc3, Widget.MNEMONIC_ACTIVATE), false); + OS.g_signal_connect_closure_by_id (labelHandle, display.signalIds [MNEMONIC_ACTIVATE], 0, getClosure(MNEMONIC_ACTIVATE, display.windowProc3), false); } } else { OS.g_signal_connect_closure (handle, OS.clicked, display.closures [CLICKED], false); diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Combo.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Combo.java index 7e57a841ad..0cabb683d7 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Combo.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Combo.java @@ -666,9 +666,9 @@ void hookEvents(long /*int*/ [] handles) { /* Connect the mouse signals */ OS.gtk_widget_add_events (eventHandle, eventMask); if (NEW_CLOSURES){ - OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [BUTTON_PRESS_EVENT], 0, getClosure(BUTTON_PRESS_EVENT, display.windowProc3, Widget.BUTTON_PRESS_EVENT), false); - OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [BUTTON_RELEASE_EVENT], 0, getClosure(BUTTON_RELEASE_EVENT, display.windowProc3, Widget.BUTTON_RELEASE_EVENT), false); - OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [MOTION_NOTIFY_EVENT], 0, getClosure(MOTION_NOTIFY_EVENT, display.windowProc3, Widget.MOTION_NOTIFY_EVENT), false); + OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [BUTTON_PRESS_EVENT], 0, getClosure(BUTTON_PRESS_EVENT, display.windowProc3), false); + OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [BUTTON_RELEASE_EVENT], 0, getClosure(BUTTON_RELEASE_EVENT, display.windowProc3), false); + OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [MOTION_NOTIFY_EVENT], 0, getClosure(MOTION_NOTIFY_EVENT, display.windowProc3), false); /* * Feature in GTK. Events such as mouse move are propagated up * the widget hierarchy and are seen by the parent. This is the @@ -676,16 +676,16 @@ void hookEvents(long /*int*/ [] handles) { * hook a signal after and stop the propagation using a negative * event number to distinguish this case. */ - OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [BUTTON_PRESS_EVENT], 0, getClosure(BUTTON_PRESS_EVENT_INVERSE, display.windowProc3, Widget.BUTTON_PRESS_EVENT_INVERSE), true); - OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [BUTTON_RELEASE_EVENT], 0, getClosure(BUTTON_RELEASE_EVENT_INVERSE, display.windowProc3, Widget.BUTTON_RELEASE_EVENT_INVERSE), true); - OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [MOTION_NOTIFY_EVENT], 0, getClosure(MOTION_NOTIFY_EVENT_INVERSE, display.windowProc3, Widget.MOTION_NOTIFY_EVENT_INVERSE), true); + OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [BUTTON_PRESS_EVENT], 0, getClosure(BUTTON_PRESS_EVENT_INVERSE, display.windowProc3), true); + OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [BUTTON_RELEASE_EVENT], 0, getClosure(BUTTON_RELEASE_EVENT_INVERSE, display.windowProc3), true); + OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [MOTION_NOTIFY_EVENT], 0, getClosure(MOTION_NOTIFY_EVENT_INVERSE, display.windowProc3), true); /* Connect the event_after signal for both key and mouse */ if (eventHandle != focusHandle ()) { - OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [EVENT_AFTER], 0, getClosure(EVENT_AFTER, display.windowProc3, Widget.EVENT_AFTER), false); + OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [EVENT_AFTER], 0, getClosure(EVENT_AFTER, display.windowProc3), false); } if (OS.G_OBJECT_TYPE (eventHandle) == OS.GTK_TYPE_MENU ()) { - OS.g_signal_connect_closure(eventHandle, OS.selection_done, getClosure(SELECTION_DONE, display.windowProc2, Widget.SELECTION_DONE), true); + OS.g_signal_connect_closure(eventHandle, OS.selection_done, getClosure(SELECTION_DONE, display.windowProc2), true); } } else { OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [BUTTON_PRESS_EVENT], 0, display.closures [BUTTON_PRESS_EVENT], false); diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java index d0605f394b..b51f34e929 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java @@ -284,29 +284,29 @@ void hookEvents () { long /*int*/ focusHandle = focusHandle (); int focusMask = OS.GDK_KEY_PRESS_MASK | OS.GDK_KEY_RELEASE_MASK | OS.GDK_FOCUS_CHANGE_MASK; OS.gtk_widget_add_events (focusHandle, focusMask); - OS.g_signal_connect_closure_by_id (focusHandle, display.signalIds [POPUP_MENU], 0, getClosure(POPUP_MENU, display.windowProc2, Widget.POPUP_MENU), false); - OS.g_signal_connect_closure_by_id (focusHandle, display.signalIds [SHOW_HELP], 0, getClosure(SHOW_HELP, display.windowProc3, Widget.SHOW_HELP), false); - OS.g_signal_connect_closure_by_id (focusHandle, display.signalIds [KEY_PRESS_EVENT], 0, getClosure(KEY_PRESS_EVENT, display.windowProc3, Widget.KEY_PRESS_EVENT), false); - OS.g_signal_connect_closure_by_id (focusHandle, display.signalIds [KEY_RELEASE_EVENT], 0, getClosure(KEY_RELEASE_EVENT, display.windowProc3, Widget.KEY_RELEASE_EVENT), false); - OS.g_signal_connect_closure_by_id (focusHandle, display.signalIds [FOCUS], 0, getClosure(FOCUS, display.windowProc3, Widget.FOCUS), false); - OS.g_signal_connect_closure_by_id (focusHandle, display.signalIds [FOCUS_IN_EVENT], 0, getClosure(FOCUS_IN_EVENT, display.windowProc3, Widget.FOCUS_IN_EVENT), false); - OS.g_signal_connect_closure_by_id (focusHandle, display.signalIds [FOCUS_OUT_EVENT], 0, getClosure(FOCUS_OUT_EVENT, display.windowProc3, Widget.FOCUS_OUT_EVENT), false); + OS.g_signal_connect_closure_by_id (focusHandle, display.signalIds [POPUP_MENU], 0, getClosure(POPUP_MENU, display.windowProc2), false); + OS.g_signal_connect_closure_by_id (focusHandle, display.signalIds [SHOW_HELP], 0, getClosure(SHOW_HELP, display.windowProc3), false); + OS.g_signal_connect_closure_by_id (focusHandle, display.signalIds [KEY_PRESS_EVENT], 0, getClosure(KEY_PRESS_EVENT, display.windowProc3), false); + OS.g_signal_connect_closure_by_id (focusHandle, display.signalIds [KEY_RELEASE_EVENT], 0, getClosure(KEY_RELEASE_EVENT, display.windowProc3), false); + OS.g_signal_connect_closure_by_id (focusHandle, display.signalIds [FOCUS], 0, getClosure(FOCUS, display.windowProc3), false); + OS.g_signal_connect_closure_by_id (focusHandle, display.signalIds [FOCUS_IN_EVENT], 0, getClosure(FOCUS_IN_EVENT, display.windowProc3), false); + OS.g_signal_connect_closure_by_id (focusHandle, display.signalIds [FOCUS_OUT_EVENT], 0, getClosure(FOCUS_OUT_EVENT, display.windowProc3), false); /* Connect the mouse signals */ long /*int*/ eventHandle = eventHandle (); int eventMask = OS.GDK_POINTER_MOTION_MASK | OS.GDK_BUTTON_PRESS_MASK | OS.GDK_BUTTON_RELEASE_MASK | OS.GDK_SCROLL_MASK | OS.GDK_SMOOTH_SCROLL_MASK; OS.gtk_widget_add_events (eventHandle, eventMask); - OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [BUTTON_PRESS_EVENT], 0, getClosure(BUTTON_PRESS_EVENT, display.windowProc3, Widget.BUTTON_PRESS_EVENT), false); - OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [BUTTON_RELEASE_EVENT], 0, getClosure(BUTTON_RELEASE_EVENT, display.windowProc3, Widget.BUTTON_RELEASE_EVENT), false); - OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [MOTION_NOTIFY_EVENT], 0, getClosure(MOTION_NOTIFY_EVENT, display.windowProc3, Widget.MOTION_NOTIFY_EVENT), false); - OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [SCROLL_EVENT], 0, getClosure(SCROLL_EVENT, display.windowProc3, Widget.SCROLL_EVENT), false); + OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [BUTTON_PRESS_EVENT], 0, getClosure(BUTTON_PRESS_EVENT, display.windowProc3), false); + OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [BUTTON_RELEASE_EVENT], 0, getClosure(BUTTON_RELEASE_EVENT, display.windowProc3), false); + OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [MOTION_NOTIFY_EVENT], 0, getClosure(MOTION_NOTIFY_EVENT, display.windowProc3), false); + OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [SCROLL_EVENT], 0, getClosure(SCROLL_EVENT, display.windowProc3), false); /* Connect enter/exit signals */ long /*int*/ enterExitHandle = enterExitHandle (); int enterExitMask = OS.GDK_ENTER_NOTIFY_MASK | OS.GDK_LEAVE_NOTIFY_MASK; OS.gtk_widget_add_events (enterExitHandle, enterExitMask); - OS.g_signal_connect_closure_by_id (enterExitHandle, display.signalIds [ENTER_NOTIFY_EVENT], 0, getClosure(ENTER_NOTIFY_EVENT, display.windowProc3, Widget.ENTER_NOTIFY_EVENT), false); - OS.g_signal_connect_closure_by_id (enterExitHandle, display.signalIds [LEAVE_NOTIFY_EVENT], 0, getClosure(LEAVE_NOTIFY_EVENT, display.windowProc3, Widget.LEAVE_NOTIFY_EVENT), false); + OS.g_signal_connect_closure_by_id (enterExitHandle, display.signalIds [ENTER_NOTIFY_EVENT], 0, getClosure(ENTER_NOTIFY_EVENT, display.windowProc3), false); + OS.g_signal_connect_closure_by_id (enterExitHandle, display.signalIds [LEAVE_NOTIFY_EVENT], 0, getClosure(LEAVE_NOTIFY_EVENT, display.windowProc3), false); /* * Feature in GTK. Events such as mouse move are propagate up @@ -319,14 +319,14 @@ void hookEvents () { * lightweight widgets. */ long /*int*/ blockHandle = fixedHandle != 0 ? fixedHandle : eventHandle; - OS.g_signal_connect_closure_by_id (blockHandle, display.signalIds [BUTTON_PRESS_EVENT], 0, getClosure(BUTTON_PRESS_EVENT_INVERSE, display.windowProc3, Widget.BUTTON_PRESS_EVENT_INVERSE), true); - OS.g_signal_connect_closure_by_id (blockHandle, display.signalIds [BUTTON_RELEASE_EVENT], 0, getClosure(BUTTON_RELEASE_EVENT_INVERSE, display.windowProc3, Widget.BUTTON_RELEASE_EVENT_INVERSE), true); - OS.g_signal_connect_closure_by_id (blockHandle, display.signalIds [MOTION_NOTIFY_EVENT], 0, getClosure(MOTION_NOTIFY_EVENT_INVERSE, display.windowProc3, Widget.MOTION_NOTIFY_EVENT_INVERSE), true); + OS.g_signal_connect_closure_by_id (blockHandle, display.signalIds [BUTTON_PRESS_EVENT], 0, getClosure(BUTTON_PRESS_EVENT_INVERSE, display.windowProc3), true); + OS.g_signal_connect_closure_by_id (blockHandle, display.signalIds [BUTTON_RELEASE_EVENT], 0, getClosure(BUTTON_RELEASE_EVENT_INVERSE, display.windowProc3), true); + OS.g_signal_connect_closure_by_id (blockHandle, display.signalIds [MOTION_NOTIFY_EVENT], 0, getClosure(MOTION_NOTIFY_EVENT_INVERSE, display.windowProc3), true); /* Connect the event_after signal for both key and mouse */ - OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [EVENT_AFTER], 0, getClosure(EVENT_AFTER, display.windowProc3, Widget.EVENT_AFTER), false); + OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [EVENT_AFTER], 0, getClosure(EVENT_AFTER, display.windowProc3), false); if (focusHandle != eventHandle) { - OS.g_signal_connect_closure_by_id (focusHandle, display.signalIds [EVENT_AFTER], 0, getClosure(EVENT_AFTER, display.windowProc3, Widget.EVENT_AFTER), false); + OS.g_signal_connect_closure_by_id (focusHandle, display.signalIds [EVENT_AFTER], 0, getClosure(EVENT_AFTER, display.windowProc3), false); } /* Connect the paint signal */ @@ -334,30 +334,30 @@ void hookEvents () { int paintMask = OS.GDK_EXPOSURE_MASK | OS.GDK_VISIBILITY_NOTIFY_MASK; OS.gtk_widget_add_events (paintHandle, paintMask); - OS.g_signal_connect_closure_by_id (paintHandle, display.signalIds [EXPOSE_EVENT], 0, getClosure(EXPOSE_EVENT_INVERSE, display.windowProc3, Widget.EXPOSE_EVENT_INVERSE), false); + OS.g_signal_connect_closure_by_id (paintHandle, display.signalIds [EXPOSE_EVENT], 0, getClosure(EXPOSE_EVENT_INVERSE, display.windowProc3), false); /* * As of GTK 2.17.11, obscured controls no longer send expose * events. It is no longer necessary to track visiblity notify * events. */ if (OS.GTK_VERSION < OS.VERSION (2, 17, 11)) { - OS.g_signal_connect_closure_by_id (paintHandle, display.signalIds [VISIBILITY_NOTIFY_EVENT], 0, getClosure(VISIBILITY_NOTIFY_EVENT, display.windowProc3, Widget.VISIBILITY_NOTIFY_EVENT), false); + OS.g_signal_connect_closure_by_id (paintHandle, display.signalIds [VISIBILITY_NOTIFY_EVENT], 0, getClosure(VISIBILITY_NOTIFY_EVENT, display.windowProc3), false); } - OS.g_signal_connect_closure_by_id (paintHandle, display.signalIds [EXPOSE_EVENT], 0, getClosure(EXPOSE_EVENT, display.windowProc3, Widget.EXPOSE_EVENT), true); + OS.g_signal_connect_closure_by_id (paintHandle, display.signalIds [EXPOSE_EVENT], 0, getClosure(EXPOSE_EVENT, display.windowProc3), true); /* Connect the Input Method signals */ - OS.g_signal_connect_closure_by_id (handle, display.signalIds [REALIZE], 0, getClosure(REALIZE, display.windowProc2, Widget.REALIZE), true); - OS.g_signal_connect_closure_by_id (handle, display.signalIds [UNREALIZE], 0, getClosure(UNREALIZE, display.windowProc2, Widget.UNREALIZE), false); + OS.g_signal_connect_closure_by_id (handle, display.signalIds [REALIZE], 0, getClosure(REALIZE, display.windowProc2), true); + OS.g_signal_connect_closure_by_id (handle, display.signalIds [UNREALIZE], 0, getClosure(UNREALIZE, display.windowProc2), false); long /*int*/ imHandle = imHandle (); if (imHandle != 0) { - OS.g_signal_connect_closure (imHandle, OS.commit, getClosure(COMMIT, display.windowProc3, Widget.COMMIT), false); - OS.g_signal_connect_closure (imHandle, OS.preedit_changed, getClosure(PREEDIT_CHANGED, display.windowProc2, Widget.PREEDIT_CHANGED), false); + OS.g_signal_connect_closure (imHandle, OS.commit, getClosure(COMMIT, display.windowProc3), false); + OS.g_signal_connect_closure (imHandle, OS.preedit_changed, getClosure(PREEDIT_CHANGED, display.windowProc2), false); } - OS.g_signal_connect_closure_by_id (paintHandle, display.signalIds [STYLE_SET], 0, getClosure(STYLE_SET, display.windowProc3, Widget.STYLE_SET), false); + OS.g_signal_connect_closure_by_id (paintHandle, display.signalIds [STYLE_SET], 0, getClosure(STYLE_SET, display.windowProc3), false); long /*int*/ topHandle = topHandle (); - OS.g_signal_connect_closure_by_id (topHandle, display.signalIds [MAP], 0, getClosure(MAP, display.windowProc2, Widget.MAP), true); + OS.g_signal_connect_closure_by_id (topHandle, display.signalIds [MAP], 0, getClosure(MAP, display.windowProc2), true); } else { /* Connect the keyboard signals */ long /*int*/ focusHandle = focusHandle (); diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Display.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Display.java index 810e919914..fe73bb0240 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Display.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Display.java @@ -11,6 +11,9 @@ package org.eclipse.swt.widgets; +import java.util.HashMap; +import java.util.Map; + import org.eclipse.swt.*; import org.eclipse.swt.internal.*; import org.eclipse.swt.internal.cairo.*; @@ -152,7 +155,10 @@ public class Display extends Device { boolean ignoreActivate, ignoreFocus; Tracker tracker; - + + Map closure_map = new HashMap (); + Integer n_notifier = new Integer(0); + /* Input method resources */ Control imControl; long /*int*/ preeditWindow, preeditLabel; @@ -3493,11 +3499,12 @@ void releaseDisplay () { caretCallback = null; /* Release closures */ - for (int i = 0; i < Widget.LAST_SIGNAL; i++) { - if (closures [i] != 0) OS.g_closure_unref (closures [i]); + if (OS.GLIB_VERSION < OS.VERSION(2, 36, 0)){ + for (int i = 0; i < Widget.LAST_SIGNAL; i++) { + if (closures [i] != 0) OS.g_closure_unref (closures [i]); + } + if (shellMapProcClosure != 0) OS.g_closure_unref (shellMapProcClosure); } - if (shellMapProcClosure != 0) OS.g_closure_unref (shellMapProcClosure); - /* Dispose the timer callback */ if (timerIds != null) { for (int i=0; i<timerIds.length; i++) { diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ExpandItem.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ExpandItem.java index b353b387ab..be38762f5e 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ExpandItem.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ExpandItem.java @@ -347,12 +347,12 @@ boolean hasFocus () { void hookEvents () { super.hookEvents (); if (NEW_CLOSURES){ - OS.g_signal_connect_closure (handle, OS.activate, getClosure(ACTIVATE, display.windowProc2, Widget.ACTIVATE), false); - OS.g_signal_connect_closure (handle, OS.activate, getClosure(ACTIVATE_INVERSE, display.windowProc2, Widget.ACTIVATE_INVERSE), true); - OS.g_signal_connect_closure_by_id (handle, display.signalIds [BUTTON_PRESS_EVENT], 0, getClosure(BUTTON_PRESS_EVENT, display.windowProc3, Widget.BUTTON_PRESS_EVENT), false); - OS.g_signal_connect_closure_by_id (handle, display.signalIds [FOCUS_OUT_EVENT], 0, getClosure(FOCUS_OUT_EVENT, display.windowProc3, Widget.FOCUS_OUT_EVENT), false); - OS.g_signal_connect_closure (clientHandle, OS.size_allocate, getClosure(SIZE_ALLOCATE, display.windowProc3, Widget.SIZE_ALLOCATE), true); - OS.g_signal_connect_closure_by_id (handle, display.signalIds [ENTER_NOTIFY_EVENT], 0, getClosure(ENTER_NOTIFY_EVENT, display.windowProc3, Widget.ENTER_NOTIFY_EVENT), false); + OS.g_signal_connect_closure (handle, OS.activate, getClosure(ACTIVATE, display.windowProc2), false); + OS.g_signal_connect_closure (handle, OS.activate, getClosure(ACTIVATE_INVERSE, display.windowProc2), true); + OS.g_signal_connect_closure_by_id (handle, display.signalIds [BUTTON_PRESS_EVENT], 0, getClosure(BUTTON_PRESS_EVENT, display.windowProc3), false); + OS.g_signal_connect_closure_by_id (handle, display.signalIds [FOCUS_OUT_EVENT], 0, getClosure(FOCUS_OUT_EVENT, display.windowProc3), false); + OS.g_signal_connect_closure (clientHandle, OS.size_allocate, getClosure(SIZE_ALLOCATE, display.windowProc3), true); + OS.g_signal_connect_closure_by_id (handle, display.signalIds [ENTER_NOTIFY_EVENT], 0, getClosure(ENTER_NOTIFY_EVENT, display.windowProc3), false); } else { OS.g_signal_connect_closure (handle, OS.activate, display.closures [ACTIVATE], false); OS.g_signal_connect_closure (handle, OS.activate, display.closures [ACTIVATE_INVERSE], true); diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Group.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Group.java index cc710a6caf..977dd3021f 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Group.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Group.java @@ -194,7 +194,7 @@ void hookEvents () { super.hookEvents(); if(NEW_CLOSURES){ if (labelHandle != 0) { - OS.g_signal_connect_closure_by_id (labelHandle, display.signalIds [MNEMONIC_ACTIVATE], 0, getClosure(MNEMONIC_ACTIVATE, display.windowProc3, Widget.MNEMONIC_ACTIVATE), false); + OS.g_signal_connect_closure_by_id (labelHandle, display.signalIds [MNEMONIC_ACTIVATE], 0, getClosure(MNEMONIC_ACTIVATE, display.windowProc3), false); } }else { if (labelHandle != 0) { diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Label.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Label.java index 7d8031c511..c7fa4c1be3 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Label.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Label.java @@ -329,7 +329,7 @@ void hookEvents () { super.hookEvents(); if(NEW_CLOSURES){ if (labelHandle != 0) { - OS.g_signal_connect_closure_by_id (labelHandle, display.signalIds [MNEMONIC_ACTIVATE], 0, getClosure(MNEMONIC_ACTIVATE, display.windowProc3, Widget.MNEMONIC_ACTIVATE), false); + OS.g_signal_connect_closure_by_id (labelHandle, display.signalIds [MNEMONIC_ACTIVATE], 0, getClosure(MNEMONIC_ACTIVATE, display.windowProc3), false); } }else { if (labelHandle != 0) { diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Menu.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Menu.java index 6217fa928d..13b6ed81a7 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Menu.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Menu.java @@ -687,9 +687,9 @@ long /*int*/ gtk_show_help (long /*int*/ widget, long /*int*/ helpType) { void hookEvents () { super.hookEvents (); if (NEW_CLOSURES){ - OS.g_signal_connect_closure_by_id (handle, display.signalIds [SHOW], 0, getClosure(SHOW, display.windowProc2, Widget.SHOW), false); - OS.g_signal_connect_closure_by_id (handle, display.signalIds [HIDE], 0, getClosure(HIDE, display.windowProc2, Widget.HIDE), false); - OS.g_signal_connect_closure_by_id (handle, display.signalIds [SHOW_HELP], 0, getClosure(SHOW_HELP, display.windowProc3, Widget.SHOW_HELP), false); + OS.g_signal_connect_closure_by_id (handle, display.signalIds [SHOW], 0, getClosure(SHOW, display.windowProc2), false); + OS.g_signal_connect_closure_by_id (handle, display.signalIds [HIDE], 0, getClosure(HIDE, display.windowProc2), false); + OS.g_signal_connect_closure_by_id (handle, display.signalIds [SHOW_HELP], 0, getClosure(SHOW_HELP, display.windowProc3), false); } else { OS.g_signal_connect_closure_by_id (handle, display.signalIds [SHOW], 0, display.closures [SHOW], false); OS.g_signal_connect_closure_by_id (handle, display.signalIds [HIDE], 0, display.closures [HIDE], false); diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/MenuItem.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/MenuItem.java index 2449b79fda..a53eb461b8 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/MenuItem.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/MenuItem.java @@ -469,9 +469,9 @@ long /*int*/ gtk_show_help (long /*int*/ widget, long /*int*/ helpType) { void hookEvents () { super.hookEvents (); if(NEW_CLOSURES){ - OS.g_signal_connect_closure (handle, OS.activate, getClosure(ACTIVATE, display.windowProc2, Widget.ACTIVATE), false); - OS.g_signal_connect_closure (handle, OS.select, getClosure(SELECT, display.windowProc2, Widget.SELECT), false); - OS.g_signal_connect_closure_by_id (handle, display.signalIds [SHOW_HELP], 0, getClosure(SHOW_HELP, display.windowProc3, Widget.SHOW_HELP), false); + OS.g_signal_connect_closure (handle, OS.activate, getClosure(ACTIVATE, display.windowProc2), false); + OS.g_signal_connect_closure (handle, OS.select, getClosure(SELECT, display.windowProc2), false); + OS.g_signal_connect_closure_by_id (handle, display.signalIds [SHOW_HELP], 0, getClosure(SHOW_HELP, display.windowProc3), false); } else { OS.g_signal_connect_closure (handle, OS.activate, display.closures [ACTIVATE], false); OS.g_signal_connect_closure (handle, OS.select, display.closures [SELECT], false); diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ScrollBar.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ScrollBar.java index 4e8ba780d1..8bcdda30aa 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ScrollBar.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ScrollBar.java @@ -532,10 +532,10 @@ long /*int*/ gtk_event_after (long /*int*/ widget, long /*int*/ gdkEvent) { void hookEvents () { super.hookEvents (); if(NEW_CLOSURES) { - OS.g_signal_connect_closure (handle, OS.change_value, getClosure(CHANGE_VALUE, display.windowProc5, Widget.CHANGE_VALUE), false); - OS.g_signal_connect_closure (adjustmentHandle, OS.value_changed, getClosure(VALUE_CHANGED, display.windowProc2, Widget.VALUE_CHANGED), false); - OS.g_signal_connect_closure_by_id (handle, display.signalIds [EVENT_AFTER], 0, getClosure(EVENT_AFTER, display.windowProc3, Widget.EVENT_AFTER), false); - OS.g_signal_connect_closure_by_id (handle, display.signalIds [BUTTON_PRESS_EVENT], 0, getClosure(BUTTON_PRESS_EVENT, display.windowProc3, Widget.BUTTON_PRESS_EVENT), false); + OS.g_signal_connect_closure (handle, OS.change_value, getClosure(CHANGE_VALUE, display.windowProc5), false); + OS.g_signal_connect_closure (adjustmentHandle, OS.value_changed, getClosure(VALUE_CHANGED, display.windowProc2), false); + OS.g_signal_connect_closure_by_id (handle, display.signalIds [EVENT_AFTER], 0, getClosure(EVENT_AFTER, display.windowProc3), false); + OS.g_signal_connect_closure_by_id (handle, display.signalIds [BUTTON_PRESS_EVENT], 0, getClosure(BUTTON_PRESS_EVENT, display.windowProc3), false); } else { OS.g_signal_connect_closure (handle, OS.change_value, display.closures [CHANGE_VALUE], false); OS.g_signal_connect_closure (adjustmentHandle, OS.value_changed, display.closures [VALUE_CHANGED], false); diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Shell.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Shell.java index 01546e3172..458ac6415a 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Shell.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Shell.java @@ -825,14 +825,14 @@ boolean hasBorder () { void hookEvents () { super.hookEvents (); if (NEW_CLOSURES) { - OS.g_signal_connect_closure_by_id (shellHandle, display.signalIds [KEY_PRESS_EVENT], 0, getClosure(KEY_PRESS_EVENT, display.windowProc3, Widget.KEY_PRESS_EVENT), false); - OS.g_signal_connect_closure_by_id (shellHandle, display.signalIds [WINDOW_STATE_EVENT], 0, getClosure(WINDOW_STATE_EVENT, display.windowProc3, Widget.WINDOW_STATE_EVENT), false); - OS.g_signal_connect_closure_by_id (shellHandle, display.signalIds [SIZE_ALLOCATE], 0, getClosure(SIZE_ALLOCATE, display.windowProc3, Widget.SIZE_ALLOCATE), false); - OS.g_signal_connect_closure_by_id (shellHandle, display.signalIds [CONFIGURE_EVENT], 0, getClosure(CONFIGURE_EVENT, display.windowProc3, Widget.CONFIGURE_EVENT), false); - OS.g_signal_connect_closure_by_id (shellHandle, display.signalIds [DELETE_EVENT], 0, getClosure(DELETE_EVENT, display.windowProc3, Widget.DELETE_EVENT), false); + OS.g_signal_connect_closure_by_id (shellHandle, display.signalIds [KEY_PRESS_EVENT], 0, getClosure(KEY_PRESS_EVENT, display.windowProc3), false); + OS.g_signal_connect_closure_by_id (shellHandle, display.signalIds [WINDOW_STATE_EVENT], 0, getClosure(WINDOW_STATE_EVENT, display.windowProc3), false); + OS.g_signal_connect_closure_by_id (shellHandle, display.signalIds [SIZE_ALLOCATE], 0, getClosure(SIZE_ALLOCATE, display.windowProc3), false); + OS.g_signal_connect_closure_by_id (shellHandle, display.signalIds [CONFIGURE_EVENT], 0, getClosure(CONFIGURE_EVENT, display.windowProc3), false); + OS.g_signal_connect_closure_by_id (shellHandle, display.signalIds [DELETE_EVENT], 0, getClosure(DELETE_EVENT, display.windowProc3), false); OS.g_signal_connect_closure_by_id (shellHandle, display.signalIds [MAP_EVENT], 0, display.shellMapProcClosure, false); - OS.g_signal_connect_closure_by_id (shellHandle, display.signalIds [ENTER_NOTIFY_EVENT], 0, getClosure(ENTER_NOTIFY_EVENT, display.windowProc3, Widget.ENTER_NOTIFY_EVENT), false); - OS.g_signal_connect_closure (shellHandle, OS.move_focus, getClosure(MOVE_FOCUS, display.windowProc3, Widget.MOVE_FOCUS), false); + OS.g_signal_connect_closure_by_id (shellHandle, display.signalIds [ENTER_NOTIFY_EVENT], 0, getClosure(ENTER_NOTIFY_EVENT, display.windowProc3), false); + OS.g_signal_connect_closure (shellHandle, OS.move_focus, getClosure(MOVE_FOCUS, display.windowProc3), false); } else { OS.g_signal_connect_closure_by_id (shellHandle, display.signalIds [KEY_PRESS_EVENT], 0, display.closures [KEY_PRESS_EVENT], false); OS.g_signal_connect_closure_by_id (shellHandle, display.signalIds [WINDOW_STATE_EVENT], 0, display.closures [WINDOW_STATE_EVENT], false); diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TabItem.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TabItem.java index 46d4dc96fd..15dc942923 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TabItem.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TabItem.java @@ -220,8 +220,8 @@ long /*int*/ gtk_mnemonic_activate (long /*int*/ widget, long /*int*/ arg1) { void hookEvents () { super.hookEvents (); if (NEW_CLOSURES) { - if (labelHandle != 0) OS.g_signal_connect_closure_by_id (labelHandle, display.signalIds [MNEMONIC_ACTIVATE], 0, getClosure(MNEMONIC_ACTIVATE, display.windowProc3, Widget.MNEMONIC_ACTIVATE), false); - OS.g_signal_connect_closure_by_id (handle, display.signalIds [ENTER_NOTIFY_EVENT], 0, getClosure(ENTER_NOTIFY_EVENT, display.windowProc3, Widget.ENTER_NOTIFY_EVENT), false); + if (labelHandle != 0) OS.g_signal_connect_closure_by_id (labelHandle, display.signalIds [MNEMONIC_ACTIVATE], 0, getClosure(MNEMONIC_ACTIVATE, display.windowProc3), false); + OS.g_signal_connect_closure_by_id (handle, display.signalIds [ENTER_NOTIFY_EVENT], 0, getClosure(ENTER_NOTIFY_EVENT, display.windowProc3), false); } else { if (labelHandle != 0) OS.g_signal_connect_closure_by_id (labelHandle, display.signalIds [MNEMONIC_ACTIVATE], 0, display.closures [MNEMONIC_ACTIVATE], false); OS.g_signal_connect_closure_by_id (handle, display.signalIds [ENTER_NOTIFY_EVENT], 0, display.closures [ENTER_NOTIFY_EVENT], false); diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TableColumn.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TableColumn.java index 3a04f9533e..746a1eb210 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TableColumn.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TableColumn.java @@ -398,9 +398,9 @@ void hookEvents () { OS.g_signal_connect_closure (handle, OS.clicked, display.closures [CLICKED], false); if (buttonHandle != 0) { if (NEW_CLOSURES) { - OS.g_signal_connect_closure_by_id (buttonHandle, display.signalIds [SIZE_ALLOCATE], 0, getClosure(SIZE_ALLOCATE, display.windowProc3, Widget.SIZE_ALLOCATE), false); - OS.g_signal_connect_closure_by_id (buttonHandle, display.signalIds [EVENT_AFTER], 0, getClosure(EVENT_AFTER, display.windowProc3, Widget.EVENT_AFTER), false); - if (labelHandle != 0) OS.g_signal_connect_closure_by_id (labelHandle, display.signalIds [MNEMONIC_ACTIVATE], 0, getClosure(MNEMONIC_ACTIVATE, display.windowProc3, Widget.MNEMONIC_ACTIVATE), false); + OS.g_signal_connect_closure_by_id (buttonHandle, display.signalIds [SIZE_ALLOCATE], 0, getClosure(SIZE_ALLOCATE, display.windowProc3), false); + OS.g_signal_connect_closure_by_id (buttonHandle, display.signalIds [EVENT_AFTER], 0, getClosure(EVENT_AFTER, display.windowProc3), false); + if (labelHandle != 0) OS.g_signal_connect_closure_by_id (labelHandle, display.signalIds [MNEMONIC_ACTIVATE], 0, getClosure(MNEMONIC_ACTIVATE, display.windowProc3), false); } else { OS.g_signal_connect_closure_by_id (buttonHandle, display.signalIds [SIZE_ALLOCATE], 0, display.closures [SIZE_ALLOCATE], false); OS.g_signal_connect_closure_by_id (buttonHandle, display.signalIds [EVENT_AFTER], 0, display.closures [EVENT_AFTER], false); diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ToolItem.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ToolItem.java index 839d683ff5..1a3c5d5aeb 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ToolItem.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ToolItem.java @@ -673,7 +673,7 @@ void hookEvents () { super.hookEvents (); if ((style & SWT.SEPARATOR) != 0) return; if (NEW_CLOSURES) { - OS.g_signal_connect_closure (handle, OS.clicked, getClosure(CLICKED, display.windowProc2, Widget.CLICKED), false); + OS.g_signal_connect_closure (handle, OS.clicked, getClosure(CLICKED, display.windowProc2), false); /* * Feature in GTK. GtkToolItem does not respond to basic listeners * such as button-press, enter-notify to it. The fix is to assign @@ -683,14 +683,14 @@ void hookEvents () { if ((style & SWT.DROP_DOWN) != 0) { long /*int*/ list = OS.gtk_container_get_children(eventHandle); eventHandle = OS.g_list_nth_data(list, 0); - if (arrowHandle != 0) OS.g_signal_connect_closure (arrowHandle, OS.clicked, getClosure(CLICKED, display.windowProc2, Widget.CLICKED), false); + if (arrowHandle != 0) OS.g_signal_connect_closure (arrowHandle, OS.clicked, getClosure(CLICKED, display.windowProc2), false); } - OS.g_signal_connect_closure (handle, OS.create_menu_proxy, getClosure(CREATE_MENU_PROXY, display.windowProc2, Widget.CREATE_MENU_PROXY), false); + OS.g_signal_connect_closure (handle, OS.create_menu_proxy, getClosure(CREATE_MENU_PROXY, display.windowProc2), false); - OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [ENTER_NOTIFY_EVENT], 0, getClosure(ENTER_NOTIFY_EVENT, display.windowProc3, Widget.ENTER_NOTIFY_EVENT), false); - OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [LEAVE_NOTIFY_EVENT], 0, getClosure(LEAVE_NOTIFY_EVENT, display.windowProc3, Widget.LEAVE_NOTIFY_EVENT), false); - OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [FOCUS_IN_EVENT], 0, getClosure(FOCUS_IN_EVENT, display.windowProc3, Widget.FOCUS_IN_EVENT), false); - OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [FOCUS_OUT_EVENT], 0, getClosure(FOCUS_OUT_EVENT, display.windowProc3, Widget.FOCUS_OUT_EVENT), false); + OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [ENTER_NOTIFY_EVENT], 0, getClosure(ENTER_NOTIFY_EVENT, display.windowProc3), false); + OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [LEAVE_NOTIFY_EVENT], 0, getClosure(LEAVE_NOTIFY_EVENT, display.windowProc3), false); + OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [FOCUS_IN_EVENT], 0, getClosure(FOCUS_IN_EVENT, display.windowProc3), false); + OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [FOCUS_OUT_EVENT], 0, getClosure(FOCUS_OUT_EVENT, display.windowProc3), false); /* * Feature in GTK. Usually, GTK widgets propagate all events to their * parent when they are done their own processing. However, in contrast @@ -706,9 +706,9 @@ void hookEvents () { OS.GDK_KEY_PRESS_MASK | OS.GDK_KEY_RELEASE_MASK | OS.GDK_FOCUS_CHANGE_MASK; OS.gtk_widget_add_events (eventHandle, mask); - OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [BUTTON_PRESS_EVENT], 0, getClosure(BUTTON_PRESS_EVENT, display.windowProc3, Widget.BUTTON_PRESS_EVENT), false); - OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [BUTTON_RELEASE_EVENT], 0, getClosure(BUTTON_RELEASE_EVENT, display.windowProc3, Widget.BUTTON_RELEASE_EVENT), false); - OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [EVENT_AFTER], 0, getClosure(EVENT_AFTER, display.windowProc3, Widget.EVENT_AFTER), false); + OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [BUTTON_PRESS_EVENT], 0, getClosure(BUTTON_PRESS_EVENT, display.windowProc3), false); + OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [BUTTON_RELEASE_EVENT], 0, getClosure(BUTTON_RELEASE_EVENT, display.windowProc3), false); + OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [EVENT_AFTER], 0, getClosure(EVENT_AFTER, display.windowProc3), false); long /*int*/ topHandle = topHandle (); OS.g_signal_connect_closure_by_id (topHandle, display.signalIds [MAP], 0, display.closures [MAP], true); diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ToolTip.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ToolTip.java index 984dad1437..b871526e32 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ToolTip.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ToolTip.java @@ -620,16 +620,16 @@ long /*int*/ gtk_size_allocate (long /*int*/ widget, long /*int*/ allocation) { void hookEvents () { if (NEW_CLOSURES) { if ((style & SWT.BALLOON) != 0) { - OS.g_signal_connect_closure_by_id (handle, display.signalIds [EXPOSE_EVENT], 0, getClosure(EXPOSE_EVENT, display.windowProc3, Widget.EXPOSE_EVENT), true); + OS.g_signal_connect_closure_by_id (handle, display.signalIds [EXPOSE_EVENT], 0, getClosure(EXPOSE_EVENT, display.windowProc3), true); OS.gtk_widget_add_events (handle, OS.GDK_BUTTON_PRESS_MASK); - OS.g_signal_connect_closure (handle, OS.button_press_event, getClosure(BUTTON_PRESS_EVENT, display.windowProc3, Widget.BUTTON_PRESS_EVENT), false); + OS.g_signal_connect_closure (handle, OS.button_press_event, getClosure(BUTTON_PRESS_EVENT, display.windowProc3), false); } else { if (OS.GTK_VERSION < OS.VERSION (2, 12, 0)) { long /*int*/ tipWindow = OS.GTK_TOOLTIPS_TIP_WINDOW (handle); if (tipWindow != 0) { - OS.g_signal_connect_closure (tipWindow, OS.size_allocate, getClosure(SIZE_ALLOCATE, display.windowProc3, Widget.SIZE_ALLOCATE), false); + OS.g_signal_connect_closure (tipWindow, OS.size_allocate, getClosure(SIZE_ALLOCATE, display.windowProc3), false); OS.gtk_widget_add_events (tipWindow, OS.GDK_BUTTON_PRESS_MASK); - OS.g_signal_connect_closure (tipWindow, OS.button_press_event, getClosure(BUTTON_PRESS_EVENT, display.windowProc3, Widget.BUTTON_PRESS_EVENT), false); + OS.g_signal_connect_closure (tipWindow, OS.button_press_event, getClosure(BUTTON_PRESS_EVENT, display.windowProc3), false); } } } diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TrayItem.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TrayItem.java index fd6ad5a7af..a372fd5a41 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TrayItem.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TrayItem.java @@ -365,13 +365,13 @@ long /*int*/ gtk_status_icon_popup_menu (long /*int*/ widget, long /*int*/ butto void hookEvents () { if (NEW_CLOSURES) { if (OS.GTK_VERSION >= OS.VERSION (2, 10, 0)) { - OS.g_signal_connect_closure (handle, OS.activate, getClosure(ACTIVATE, display.windowProc2, Widget.ACTIVATE), false); - OS.g_signal_connect_closure (handle, OS.popup_menu, getClosure(STATUS_ICON_POPUP_MENU, display.windowProc4, Widget.STATUS_ICON_POPUP_MENU), false); + OS.g_signal_connect_closure (handle, OS.activate, getClosure(ACTIVATE, display.windowProc2), false); + OS.g_signal_connect_closure (handle, OS.popup_menu, getClosure(STATUS_ICON_POPUP_MENU, display.windowProc4), false); } else { int eventMask = OS.GDK_BUTTON_PRESS_MASK; OS.gtk_widget_add_events (handle, eventMask); - OS.g_signal_connect_closure_by_id (handle, display.signalIds [BUTTON_PRESS_EVENT], 0, getClosure(BUTTON_PRESS_EVENT, display.windowProc3, Widget.BUTTON_PRESS_EVENT), false); - OS.g_signal_connect_closure_by_id (imageHandle, display.signalIds [SIZE_ALLOCATE], 0, getClosure(SIZE_ALLOCATE, display.windowProc3, Widget.SIZE_ALLOCATE), false); + OS.g_signal_connect_closure_by_id (handle, display.signalIds [BUTTON_PRESS_EVENT], 0, getClosure(BUTTON_PRESS_EVENT, display.windowProc3), false); + OS.g_signal_connect_closure_by_id (imageHandle, display.signalIds [SIZE_ALLOCATE], 0, getClosure(SIZE_ALLOCATE, display.windowProc3), false); } } else { if (OS.GTK_VERSION >= OS.VERSION (2, 10, 0)) { diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TreeColumn.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TreeColumn.java index 54f447e266..4d81a1df96 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TreeColumn.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TreeColumn.java @@ -398,12 +398,12 @@ long /*int*/ gtk_size_allocate (long /*int*/ widget, long /*int*/ allocation) { void hookEvents () { super.hookEvents (); if (NEW_CLOSURES) { - OS.g_signal_connect_closure (handle, OS.clicked, getClosure(CLICKED, display.windowProc2, Widget.CLICKED), false); + OS.g_signal_connect_closure (handle, OS.clicked, getClosure(CLICKED, display.windowProc2), false); if (buttonHandle != 0) { - OS.g_signal_connect_closure_by_id (buttonHandle, display.signalIds [SIZE_ALLOCATE], 0, getClosure(SIZE_ALLOCATE, display.windowProc3, Widget.SIZE_ALLOCATE), false); - OS.g_signal_connect_closure_by_id (buttonHandle, display.signalIds [EVENT_AFTER], 0, getClosure(EVENT_AFTER, display.windowProc3, Widget.EVENT_AFTER), false); + OS.g_signal_connect_closure_by_id (buttonHandle, display.signalIds [SIZE_ALLOCATE], 0, getClosure(SIZE_ALLOCATE, display.windowProc3), false); + OS.g_signal_connect_closure_by_id (buttonHandle, display.signalIds [EVENT_AFTER], 0, getClosure(EVENT_AFTER, display.windowProc3), false); } - if (labelHandle != 0) OS.g_signal_connect_closure_by_id (labelHandle, display.signalIds [MNEMONIC_ACTIVATE], 0, getClosure(MNEMONIC_ACTIVATE, display.windowProc3, Widget.MNEMONIC_ACTIVATE), false); + if (labelHandle != 0) OS.g_signal_connect_closure_by_id (labelHandle, display.signalIds [MNEMONIC_ACTIVATE], 0, getClosure(MNEMONIC_ACTIVATE, display.windowProc3), false); } else { OS.g_signal_connect_closure (handle, OS.clicked, display.closures [CLICKED], false); if (buttonHandle != 0) { diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Widget.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Widget.java index aa401418d4..c9f22dc83f 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Widget.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Widget.java @@ -2188,24 +2188,22 @@ void gtk_widget_get_preferred_size (long /*int*/ widget, GtkRequisition requisit } public boolean NEW_CLOSURES = true; -Map closure_map = new HashMap (); -Integer n_notifier = new Integer(0); -long /*int*/ getClosure(int closure_id, long windowProcNum, int closure) { + +long /*int*/ getClosure(int closure, long windowProcNum) { - Integer closureId = new Integer(closure_id); + Integer closureId = new Integer(closure); - if (closure_map.containsKey(closureId)){ - n_notifier = Integer.valueOf(n_notifier.intValue() + 1); + if (display.closure_map.containsKey(closureId)){ + display.n_notifier = Integer.valueOf(display.n_notifier.intValue() + 1); } - closure_map.put(closureId, n_notifier); + display.closure_map.put(closureId, display.n_notifier); - if (closure == 0 || n_notifier.intValue() > 255) { - display.closures[closure_id] = OS.g_cclosure_new (windowProcNum, closure, 0); - System.out.println("ATTENTION: "+n_notifier.intValue()); + if (closure == 0 || display.n_notifier.intValue() > 255) { + display.closures[closure] = OS.g_cclosure_new (windowProcNum, closure, 0); } - return display.closures [closure_id]; + return display.closures [closure]; } } |