private void RenderPixbuf(Pane pane, Context cr, string icon, double alpha) { int offset = PaneOffset(pane); if (!SurfaceCache.ContainsKey(icon)) { CreateCachedSurfaceForIcon(icon); } string sec_icon = ""; if (OldContext.GetPaneObject(pane) != null) { sec_icon = OldContext.GetPaneObject(pane).Icon; } double calc_alpha = (sec_icon != icon) ? icon_fade[(int)pane] : 1; int x; int y; if (PaneOutlineRenderer.StackIconText) { x = drawing_area.X + offset + (BoxWidth / 2 - IconSize / 2); y = drawing_area.Y + WindowBorder + TitleBarHeight + 3; } else { x = drawing_area.X + offset + 5; y = drawing_area.Y + WindowBorder + TitleBarHeight + ((BoxHeight - IconSize) / 2); } cr.SetSource(SurfaceCache.GetSurface(icon), x, y); cr.PaintWithAlpha(calc_alpha * alpha); if (string.IsNullOrEmpty(sec_icon) || calc_alpha < 1) { return; } if (!SurfaceCache.ContainsKey(OldContext.GetPaneObject(pane).Icon)) { CreateCachedSurfaceForIcon(OldContext.GetPaneObject(pane).Icon); } cr.SetSource(SurfaceCache.GetSurface(OldContext.GetPaneObject(pane).Icon), x, y); cr.PaintWithAlpha(alpha * (1 - calc_alpha)); }