Bug 185216 [CellEditors] Double click behavior on editable cells for tables happens regardless of the button used to execute the second click.
This happens with an editable CellEditor in a table. 1. The user single clicks (with button 1) the text cell editor to activate the cell. The text inside the cell automatically highlights. 2. The user clicks again (with button 2 and within the defined double click time) to activate the popup menu (perhaps they wish to paste a new value over the highlighted text). The text cell editor will then become un-activated and the double click behavior for the table will be run. I believe that this could be fixed by ensuring that for a double click action to happen, both mouse clicks are from button 1. I looked at the code in 3.2.2 and this is would involve modifying the code in both the TableEditorImpl.activateCellEditor() (lines 98-110 where it adds the mouse listener) and in TreeEditorImpl.activateCellEditor() (also lines 98-110). In 3.3, it appears that those classes were replaced. I did find, however, the same code in ColumnViewerEditor.activateCellEditor() (lines 181-193) and TableTreeViewer.TableTreeEditorImpl.activateCellEditor (lines 152-164).
bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnViewerEditor.java
import org.eclipse.swt.events.FocusEvent;
import org.eclipse.swt.events.FocusListener;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.MouseListener;
import org.eclipse.swt.events.TraverseEvent;
import org.eclipse.swt.events.TraverseListener;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Item;
/**
 * This is the base for all editor implementations of Viewers. ColumnViewer
 * implementors have to subclass this class and implement the missing methods
 *
 * @since 3.3
 * @see TableViewerEditor
 * @see TreeViewerEditor
 */
public abstract class ColumnViewerEditor {
	private CellEditor cellEditor;
	private ICellEditorListener cellEditorListener;
	private FocusListener focusListener;
	private MouseListener mouseListener;
	private ColumnViewer viewer;
	private TraverseListener tabeditingListener;
	private ViewerCell cell;
	private ListenerList editorActivationListener;
	private ColumnViewerEditorActivationStrategy editorActivationStrategy;
	private boolean inEditorDeactivation;
	
	private DisposeListener disposeListener;