Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelipe Heidrich2009-02-23 19:59:36 +0000
committerFelipe Heidrich2009-02-23 19:59:36 +0000
commit202915b4e0c2a8401f55d01a3e78d0175ca8da7d (patch)
tree826a149a32612e786e6436f1cc5e416f2a64941e
parent31f3bac92f47f0e977cf9f95b4070908e4797b9c (diff)
downloadeclipse.platform.swt-202915b4e0c2a8401f55d01a3e78d0175ca8da7d.tar.gz
eclipse.platform.swt-202915b4e0c2a8401f55d01a3e78d0175ca8da7d.tar.xz
eclipse.platform.swt-202915b4e0c2a8401f55d01a3e78d0175ca8da7d.zip
Bug 23103: [DCR]TableColumn doesnt support popup menus
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TableColumn.java21
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TreeColumn.java21
2 files changed, 40 insertions, 2 deletions
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 5eacbd59ab..5adaae3e75 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
@@ -365,6 +365,22 @@ int /*long*/ gtk_clicked (int /*long*/ widget) {
return 0;
}
+int /*long*/ gtk_event_after (int /*long*/ widget, int /*long*/ gdkEvent) {
+ GdkEvent event = new GdkEvent ();
+ OS.memmove (event, gdkEvent, GdkEvent.sizeof);
+ switch (event.type) {
+ case OS.GDK_BUTTON_PRESS: {
+ GdkEventButton gdkEventButton = new GdkEventButton ();
+ OS.memmove (gdkEventButton, gdkEvent, GdkEventButton.sizeof);
+ if (gdkEventButton.button == 3) {
+ parent.showMenu ((int) gdkEventButton.x_root, (int) gdkEventButton.y_root);
+ }
+ break;
+ }
+ }
+ return 0;
+}
+
int /*long*/ gtk_mnemonic_activate (int /*long*/ widget, int /*long*/ arg1) {
return parent.gtk_mnemonic_activate (widget, arg1);
}
@@ -387,7 +403,10 @@ int /*long*/ gtk_size_allocate (int /*long*/ widget, int /*long*/ allocation) {
void hookEvents () {
super.hookEvents ();
OS.g_signal_connect_closure (handle, OS.clicked, display.closures [CLICKED], false);
- if (buttonHandle != 0) OS.g_signal_connect_closure_by_id (buttonHandle, display.signalIds [SIZE_ALLOCATE], 0, display.closures [SIZE_ALLOCATE], false);
+ if (buttonHandle != 0) {
+ 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);
+ }
if (labelHandle != 0) OS.g_signal_connect_closure_by_id (labelHandle, display.signalIds [MNEMONIC_ACTIVATE], 0, display.closures [MNEMONIC_ACTIVATE], false);
}
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 60502365f9..9720924b84 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
@@ -367,6 +367,22 @@ int /*long*/ gtk_clicked (int /*long*/ widget) {
return 0;
}
+int /*long*/ gtk_event_after (int /*long*/ widget, int /*long*/ gdkEvent) {
+ GdkEvent event = new GdkEvent ();
+ OS.memmove (event, gdkEvent, GdkEvent.sizeof);
+ switch (event.type) {
+ case OS.GDK_BUTTON_PRESS: {
+ GdkEventButton gdkEventButton = new GdkEventButton ();
+ OS.memmove (gdkEventButton, gdkEvent, GdkEventButton.sizeof);
+ if (gdkEventButton.button == 3) {
+ parent.showMenu ((int) gdkEventButton.x_root, (int) gdkEventButton.y_root);
+ }
+ break;
+ }
+ }
+ return 0;
+}
+
int /*long*/ gtk_mnemonic_activate (int /*long*/ widget, int /*long*/ arg1) {
return parent.gtk_mnemonic_activate (widget, arg1);
}
@@ -389,7 +405,10 @@ int /*long*/ gtk_size_allocate (int /*long*/ widget, int /*long*/ allocation) {
void hookEvents () {
super.hookEvents ();
OS.g_signal_connect_closure (handle, OS.clicked, display.closures [CLICKED], false);
- if (buttonHandle != 0) OS.g_signal_connect_closure_by_id (buttonHandle, display.signalIds [SIZE_ALLOCATE], 0, display.closures [SIZE_ALLOCATE], false);
+ if (buttonHandle != 0) {
+ 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);
+ }
if (labelHandle != 0) OS.g_signal_connect_closure_by_id (labelHandle, display.signalIds [MNEMONIC_ACTIVATE], 0, display.closures [MNEMONIC_ACTIVATE], false);
}

Back to the top