Bacon.VolumeButton.ReleaseGrab C# (CSharp) Method

ReleaseGrab() private method

private ReleaseGrab ( Gdk evnt ) : void
evnt Gdk
return void
        private void ReleaseGrab(Gdk.Event evnt)
        {
            uint event_time;

            if(evnt is Gdk.EventKey) {
                event_time = ((Gdk.EventKey)evnt).Time;
            } else if(evnt is Gdk.EventButton) {
                event_time = ((Gdk.EventButton)evnt).Time;
            } else {
                throw new ApplicationException("ShowDock expects EventKey or EventButton");
            }

            Display.KeyboardUngrab(event_time);
            Display.PointerUngrab(event_time);
            Gtk.Grab.Remove(dock);

            dock.Hide();
            timeout = false;

            if(evnt is Gdk.EventButton) {
                Gdk.EventButton evnt_copy = (Gdk.EventButton)Gdk.EventHelper.Copy(evnt);
                UpdateEventButton(evnt_copy, GdkWindow, Gdk.EventType.ButtonRelease);
                ProcessEvent(evnt_copy);
                Gdk.EventHelper.Free(evnt_copy);
            }
        }

Usage Example

コード例 #1
0
ファイル: VolumeButton.cs プロジェクト: shaw1337/banshee
            protected override bool OnButtonReleaseEvent(Gdk.EventButton evnt)
            {
                if (button.timeout)
                {
                    if (evnt.Time > button.pop_time + CLICK_TIMEOUT)
                    {
                        button.ReleaseGrab(evnt);
                        return(base.OnButtonReleaseEvent(evnt));
                    }

                    button.timeout = false;
                }

                bool result = base.OnButtonReleaseEvent(evnt);

                Gtk.Grab.Add(button.dock);

                return(result);
            }