diff --git a/org.eclipse.nebula.widgets.nattable.extension.nebula/src/org/eclipse/nebula/widgets/nattable/extension/nebula/cdatetime/CDateTimeCellEditor.java b/org.eclipse.nebula.widgets.nattable.extension.nebula/src/org/eclipse/nebula/widgets/nattable/extension/nebula/cdatetime/CDateTimeCellEditor.java index cbf094d..e51e599 100644 --- a/org.eclipse.nebula.widgets.nattable.extension.nebula/src/org/eclipse/nebula/widgets/nattable/extension/nebula/cdatetime/CDateTimeCellEditor.java +++ b/org.eclipse.nebula.widgets.nattable.extension.nebula/src/org/eclipse/nebula/widgets/nattable/extension/nebula/cdatetime/CDateTimeCellEditor.java @@ -176,8 +176,33 @@ } @Override + protected void postClose(Shell popup) { + if (CDateTimeCellEditor.this.focusListener instanceof InlineFocusListener) { + ((InlineFocusListener) CDateTimeCellEditor.this.focusListener).handleFocusChanges = true; + } + super.postClose(popup); + } + + @Override + public void setOpen(boolean open) { + if (CDateTimeCellEditor.this.focusListener instanceof InlineFocusListener) { + ((InlineFocusListener) CDateTimeCellEditor.this.focusListener).handleFocusChanges = false; + } + super.setOpen(open); + } + + @Override + public void setOpen(boolean open, Runnable callback) { + if (CDateTimeCellEditor.this.focusListener instanceof InlineFocusListener) { + ((InlineFocusListener) CDateTimeCellEditor.this.focusListener).handleFocusChanges = false; + } + super.setOpen(open, callback); + } + + @Override protected void addTextListener() { super.addTextListener(); + this.text.getControl().addTraverseListener(event -> { boolean committed = false; if (event.keyCode == SWT.TAB && event.stateMask == SWT.MOD2) {