diff --git a/o.n.swing.outline/src/org/netbeans/swing/outline/Outline.java b/o.n.swing.outline/src/org/netbeans/swing/outline/Outline.java --- a/o.n.swing.outline/src/org/netbeans/swing/outline/Outline.java +++ b/o.n.swing.outline/src/org/netbeans/swing/outline/Outline.java @@ -707,6 +707,10 @@ boolean isTreeColumn = isTreeColumnIndex(column); if (isTreeColumn && e instanceof MouseEvent) { MouseEvent me = (MouseEvent) e; + // It may be a request to check/uncheck a check-box + if (checkAt(row, column, me)) { + return false; + } TreePath path = getLayoutCache().getPathForRow(convertRowIndexToModel(row)); if (!getOutlineModel().isLeaf(path.getLastPathComponent())) { int handleWidth = DefaultOutlineCellRenderer.getExpansionHandleWidth(); @@ -764,10 +768,6 @@ return false; } } - // It may be a request to check/uncheck a check-box - if (checkAt(row, column, me)) { - return false; - } } boolean res = false; @@ -814,7 +814,7 @@ return false; } - private boolean checkAt(int row, int column, MouseEvent me) { + protected final boolean checkAt(int row, int column, MouseEvent me) { RenderDataProvider render = getRenderDataProvider(); TableCellRenderer tcr = getDefaultRenderer(Object.class); if (render instanceof CheckRenderDataProvider && tcr instanceof DefaultOutlineCellRenderer) { @@ -838,8 +838,7 @@ int chEnd = chStart + chWidth; //TODO: Translate x/y to position of column if non-0 - chBoxPosition = (me.getX() > ins.left && me.getX() >= chStart && me.getX() <= chEnd) && - me.getClickCount() == 1; + chBoxPosition = (me.getX() > ins.left && me.getX() >= chStart && me.getX() <= chEnd); } if (chBoxPosition) { Boolean selected = crender.isSelected(value); diff --git a/openide.explorer/src/org/openide/explorer/view/OutlineView.java b/openide.explorer/src/org/openide/explorer/view/OutlineView.java --- a/openide.explorer/src/org/openide/explorer/view/OutlineView.java +++ b/openide.explorer/src/org/openide/explorer/view/OutlineView.java @@ -1910,6 +1910,9 @@ boolean actionPerformed = false; boolean isTreeColumn = convertColumnIndexToModel(column) == 0; if (isTreeColumn && row != -1 && e instanceof MouseEvent && SwingUtilities.isLeftMouseButton ((MouseEvent) e)) { + if (checkAt(row, column, (MouseEvent) e)) { + return false; + } int clickCount = ((MouseEvent) e).getClickCount(); if (clickCount > 1) { // Default action.