コード例 #1
0
 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);
     }
 }
コード例 #2
0
        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();
        }