Comment 52 for bug 356702

Revision history for this message
Johan Tavelin (s-launchpad-tavelin) wrote :

I have investigated this problem and found that the bug is in the tooltip code in gtk. When compiz switches workspace it performs a pointer grab and gtk tooltips don't handle this correctly. The following sequence of events will trigger the bug:

1) While a tooltip is displayed another program performs a pointer grab (e.g. using XGrabPointer).
2) The pointer grab triggers a LeaveNotify event and the tooltip is hidden.
3) The tooltip text is updated by the program and as the pointer still hovers the widget gtk displays the new updated tooltip.
4) The user moves the pointer away from the gtk widget while the pointer grab is still active. As the window has already received a LeaveNotify event it will not receive another one and the tooltip will stay on the screen.

I have modified the gtk tooltip code so that a tooltip is not displayed if the widget window is not the same one as the one gdk thinks is the current window under the pointer. This appears to have solved the problem for me at least.