Mercurial > projects > dwt-addons
diff dwtx/jface/viewers/SWTFocusCellManager.d @ 70:46a6e0e6ccd4
Merge with d-fied sources of 3.4M7
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Thu, 22 May 2008 01:36:46 +0200 |
parents | b6c35faf97c8 |
children | 5df4896124c7 |
line wrap: on
line diff
--- a/dwtx/jface/viewers/SWTFocusCellManager.d Mon May 19 13:41:06 2008 +0200 +++ b/dwtx/jface/viewers/SWTFocusCellManager.d Thu May 22 01:36:46 2008 +0200 @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007 IBM Corporation and others. + * Copyright (c) 2007, 2008 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -8,10 +8,10 @@ * Contributors: * IBM Corporation - initial API and implementation * Tom Schindl <tom.schindl@bestsolution.at> - initial API and implementation - * - bug fix for bug 187189 + * - bug fix for bug 187189, 182800, 215069 * Port to the D programming language: * Frank Benoit <benoit@tionex.de> - ******************************************************************************/ + *******************************************************************************/ module dwtx.jface.viewers.SWTFocusCellManager; @@ -52,6 +52,7 @@ private DisposeListener itemDeletionListener; + /** * @param viewer * @param focusDrawingDelegate @@ -114,8 +115,8 @@ } private void handleSelection(Event event) { - if (focusCell !is null && focusCell.getItem() !is event.item - && event.item !is null) { + if ((event.detail & DWT.CHECK) is 0 && focusCell !is null && focusCell.getItem() !is event.item + && event.item !is null ) { ViewerRow row = viewer.getViewerRowFromItem_package(event.item); Assert .isNotNull(row, @@ -180,6 +181,8 @@ } void setFocusCell(ViewerCell focusCell) { + ViewerCell oldCell = this.focusCell; + if( this.focusCell !is null && ! this.focusCell.getItem().isDisposed() ) { this.focusCell.getItem().removeDisposeListener(itemDeletionListener); } @@ -190,7 +193,7 @@ this.focusCell.getItem().addDisposeListener(itemDeletionListener); } - this.cellHighlighter.focusCellChanged_package(focusCell); + this.cellHighlighter.focusCellChanged/*_package*/(focusCell,oldCell); } ColumnViewer getViewer() {