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() {