Banshee.Gui.Widgets.TrackInfoDisplay.OnExposeEvent C# (CSharp) Method

OnExposeEvent() protected method

protected OnExposeEvent ( Gdk evnt ) : bool
evnt Gdk
return bool
        protected override bool OnExposeEvent (Gdk.EventExpose evnt)
        {
            bool idle = incoming_track == null && current_track == null;
            if (!Visible || !IsMapped || (idle && !CanRenderIdle)) {
                return true;
            }

            Cairo.Context cr = Gdk.CairoHelper.Create (evnt.Window);

            foreach (Gdk.Rectangle damage in evnt.Region.GetRectangles ()) {
                cr.Rectangle (damage.X, damage.Y, damage.Width, damage.Height);
                cr.Clip ();

                if (idle) {
                    RenderIdle (cr);
                } else {
                    RenderAnimation (cr);
                }

                cr.ResetClip ();
            }

            CairoExtensions.DisposeContext (cr);

            return true;
        }