summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Northover <steve>2002-08-23 14:09:32 +0000
committerSteve Northover <steve>2002-08-23 14:09:32 +0000
commit41dec2f3eec3ed9fd8b0476cb17c5316d2f374c0 (patch)
treecb76c8fa9627ce9d8420c22756bf538b494d6e34
parente623fd32c8b3f3d7fd6b35f3eb9586fefed449e5 (diff)
downloadeclipse.platform.swt-41dec2f3eec3ed9fd8b0476cb17c5316d2f374c0.tar.gz
eclipse.platform.swt-41dec2f3eec3ed9fd8b0476cb17c5316d2f374c0.tar.xz
eclipse.platform.swt-41dec2f3eec3ed9fd8b0476cb17c5316d2f374c0.zip
22721
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Table.java12
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Tree.java15
2 files changed, 24 insertions, 3 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Table.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Table.java
index 3d87bf2966..8de863123e 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Table.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Table.java
@@ -881,10 +881,20 @@ int processKeyDown (int callData, int arg1, int int2) {
case OS.GDK_space: {
int focus_row = OS.GTK_CLIST_FOCUS_ROW (handle);
if (focus_row != -1) {
+ TableItem item = items [focus_row];
+ if (key == OS.GDK_space && (style & SWT.CHECK) != 0) {
+ if (item != null) item.setChecked (!item.getChecked ());
+ }
Event event = new Event ();
- event.item = items [focus_row];
+ event.item = item;
int type = key == OS.GDK_space ? SWT.Selection : SWT.DefaultSelection;
postEvent (type, event);
+ if (key == OS.GDK_space && (style & SWT.CHECK) != 0) {
+ event = new Event ();
+ event.item = item;
+ event.detail = SWT.CHECK;
+ postEvent (SWT.Selection, event);
+ }
}
break;
}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Tree.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Tree.java
index 3477a178d0..b2b69a44f0 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Tree.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Tree.java
@@ -622,14 +622,25 @@ int processKeyDown (int callData, int arg1, int int2) {
case OS.GDK_space: {
int focus_row = OS.GTK_CLIST_FOCUS_ROW (handle);
if (focus_row != -1) {
- Event event = new Event ();
int focus = OS.gtk_ctree_node_nth (handle, focus_row);
+ TreeItem item = null;
if (focus != 0) {
int index = OS.gtk_ctree_node_get_row_data (handle, focus) - 1;
- event.item = items [index];
+ item = items [index];
+ }
+ if (key == OS.GDK_space && (style & SWT.CHECK) != 0) {
+ if (item != null) item.setChecked (!item.getChecked ());
}
+ Event event = new Event ();
+ event.item = item;
int type = key == OS.GDK_space ? SWT.Selection : SWT.DefaultSelection;
postEvent (type, event);
+ if (key == OS.GDK_space && (style & SWT.CHECK) != 0) {
+ event = new Event ();
+ event.item = item;
+ event.detail = SWT.CHECK;
+ postEvent (SWT.Selection, event);
+ }
}
break;
}