private void OnPopupLeaveNotify(object o, LeaveNotifyEventArgs args) { Gdk.Rectangle rect; if (!_popup.Intersect(new Gdk.Rectangle((int)args.Event.X, (int)args.Event.Y, 1, 1), out rect)) { OnLeaveNotifyEvent(o, args); } }
private void ShowPopup() { if (popup != null) { return; } popup = new TrackInfoPopup(); popup.EnterNotifyEvent += delegate { hide_delay_started = false; }; popup.LeaveNotifyEvent += delegate(object o, LeaveNotifyEventArgs args) { Gdk.Rectangle rect; if (!popup.Intersect(new Gdk.Rectangle((int)args.Event.X, (int)args.Event.Y, 1, 1), out rect)) { OnLeaveNotifyEvent(o, args); } }; PositionPopup(); popup.Show(); }