Open JohnRandomdude opened 1 year ago
Can confirm this not working on Windows, but working on Mac. (Does work for TreeViewer, though).
As OP says, add the following to the snippet's CellLabelProvider
:
@Override
public boolean useNativeToolTip(Object object) {
return true;
}
Also, see OP's comment https://github.com/eclipse-platform/eclipse.platform.swt/issues/509#issuecomment-1642305423
Can confirm this broke with this commit:
I don't know how to fix that regression.
The problem lies here:
Comment out isCurrentlyVisible
and the tooltip appears.
For convenience, here's a full snippet to reproduce:
import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.CellLabelProvider;
import org.eclipse.jface.viewers.ColumnViewerToolTipSupport;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TableViewerColumn;
import org.eclipse.jface.viewers.ViewerCell;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class TooltipTest {
public static void main(String[] args) {
final Display display = new Display();
Shell shell = new Shell(display);
shell.setLayout(new FillLayout());
TableViewer v = new TableViewer(shell, SWT.FULL_SELECTION);
v.getTable().setLinesVisible(true);
v.getTable().setHeaderVisible(true);
v.setContentProvider(ArrayContentProvider.getInstance());
ColumnViewerToolTipSupport.enableFor(v);
CellLabelProvider labelProvider = new CellLabelProvider() {
@Override
public String getToolTipText(Object element) {
return "Tooltip (" + element + ")";
}
@Override
public void update(ViewerCell cell) {
cell.setText(cell.getElement().toString());
}
@Override
public boolean useNativeToolTip(Object object) {
return true;
}
};
TableViewerColumn column = new TableViewerColumn(v, SWT.NONE);
column.setLabelProvider(labelProvider);
column.getColumn().setText("Column 1");
column.getColumn().setWidth(100);
String[] values = new String[]{"one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"};
v.setInput(values);
shell.setSize(200, 200);
shell.open();
while(!shell.isDisposed()) {
if(!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
}
Describe the bug Native tooltip doesn't show up on TableViewer
To Reproduce This one can be used, but make sure
useNativeToolTip
returns true on a sub-class oforg.eclipse.jface.viewers.CellLabelProvider
Expected behavior A native tooltip appears when hovering table cells
Environment:
Select the platform(s) on which the behavior is seen:
Additional OS info (e.g. OS version, Linux Desktop, etc) Windows 10 Pro N 22H2 (OS build 19045.3208)
JRE/JDK version Openjdk "17.0.3" 2022-04-19
Version since Since org.eclipse.swt.win32.win32.x86_64 3.116.0
Workaround (or) Additional context Possible workaround - downgrading org.eclipse.swt.win32.win32.x86_64 to 3.115.100