Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/SelectableItemWidget.java')
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/SelectableItemWidget.java14
1 files changed, 13 insertions, 1 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/SelectableItemWidget.java b/bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/SelectableItemWidget.java
index 010e596927..74bbb36dee 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/SelectableItemWidget.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/SelectableItemWidget.java
@@ -700,6 +700,7 @@ void doPageUp(int keyMask) {
void doSpace(int keyMask) {
SelectableItem item = getLastFocus();
+ if (item == null) return;
int itemIndex = getVisibleIndex(item);
if (keyMask == SWT.NULL && item.isSelected() == false) { // do simple space select in SINGLE and MULTI mode
@@ -707,7 +708,7 @@ void doSpace(int keyMask) {
selectNotify(item);
return;
}
- if (isMultiSelect() == false || item == null) {
+ if (isMultiSelect() == false) {
return;
}
if (keyMask == SWT.CTRL) {
@@ -1149,6 +1150,16 @@ void handleEvents(Event event) {
break;
case SWT.FocusIn:
focusIn(event);
+ break;
+ case SWT.Traverse:
+ switch (event.detail) {
+ case SWT.TRAVERSE_ESCAPE:
+ case SWT.TRAVERSE_RETURN:
+ case SWT.TRAVERSE_TAB_NEXT:
+ case SWT.TRAVERSE_TAB_PREVIOUS:
+ event.doit = true;
+ break;
+ }
break;
}
}
@@ -1215,6 +1226,7 @@ void installListeners() {
addListener(SWT.KeyDown, listener);
addListener(SWT.FocusOut, listener);
addListener(SWT.FocusIn, listener);
+ addListener(SWT.Traverse, listener);
getVerticalBar().addListener(SWT.Selection, listener);
getHorizontalBar().addListener(SWT.Selection, listener);

Back to the top