Bug 298770 [GTK2.18] Clicking in hover help eats left clicks for entire X session
Eclipse SDK 3.5.1 with Mylyn 3.2.2 Linux/Gtk x86_64 (Fedora 12 with gtk2-2.18.5-4.fc12.x86_64) The following happens both with and without GDK_NATIVE_WINDOWS=true. I can't make it happen in a VNC session with gtk 2.18 nor can I make it happen in a VNC session with gtk 2.16. For gtk 2.16, it appears that this clicking behaviour results in a click-drag or click-copy operation (I'm sure I'm using incorrect terminology there ;). - extend your Eclipse window vertically to the bottom of your display area - have a task list with a bunch of tasks - put your mouse cursor over the last item in the list - notice that the hoverhelp information appears over where your cursor is located - left click in the hover area This results in the inability to left click anywhere else in desktop. I have to restart X to get left clicking back.
bundles/org.eclipse.jface/src/org/eclipse/jface/window/ToolTip.java
private void passOnEvent(Shell tip, Event event) {
		if (control != null && !control.isDisposed() && event != null
				&& event.widget != control && event.type == SWT.MouseDown) {
			final Display display = control.getDisplay();
			Point newPt = display.map(tip, null, new Point(event.x, event.y));
			final Event newEvent = new Event();
			newEvent.button = event.button;
			newEvent.character = event.character;
			newEvent.count = event.count;
			newEvent.data = event.data;
			newEvent.detail = event.detail;
			newEvent.display = event.display;
			newEvent.doit = event.doit;
			newEvent.end = event.end;
			newEvent.gc = event.gc;
			newEvent.height = event.height;
			newEvent.index = event.index;
			newEvent.item = event.item;
			newEvent.keyCode = event.keyCode;
			newEvent.start = event.start;
			newEvent.stateMask = event.stateMask;
			newEvent.text = event.text;
			newEvent.time = event.time;
			newEvent.type = event.type;
			newEvent.widget = event.widget;
			newEvent.width = event.width;
			newEvent.x = newPt.x;
			newEvent.y = newPt.y;
			tip.close();
			display.asyncExec(new Runnable() {