end tooltip timeout and display for relevant leave notify events
authorPaul Davis <paul@linuxaudiosystems.com>
Fri, 26 Sep 2014 21:06:38 +0000 (17:06 -0400)
committerPaul Davis <paul@linuxaudiosystems.com>
Fri, 26 Sep 2014 21:06:38 +0000 (17:06 -0400)
libs/canvas/canvas.cc

index 9151c6d90678937c36735eb6d162112b46b9c8b7..baced0761c2cd5c4e94ea87e9b42d618e162e450 100644 (file)
@@ -890,6 +890,17 @@ GtkCanvas::on_enter_notify_event (GdkEventCrossing* ev)
 bool
 GtkCanvas::on_leave_notify_event (GdkEventCrossing* ev)
 {
+       switch (ev->detail) {
+       case GDK_NOTIFY_ANCESTOR:
+       case GDK_NOTIFY_UNKNOWN:
+       case GDK_NOTIFY_VIRTUAL:
+       case GDK_NOTIFY_NONLINEAR:
+       case GDK_NOTIFY_NONLINEAR_VIRTUAL:
+               /* leaving window, cancel any tooltips */
+               stop_tooltip_timeout ();
+               hide_tooltip ();
+               break;
+       }
        _new_current_item = 0;
        deliver_enter_leave (Duple (ev->x, ev->y), ev->state);
        return true;