[Webkit-unassigned] [Bug 50623] [GTK] Use gtk_icon_set_render_icon() to render icons in RenderThemeGtk
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Wed Dec 8 01:29:19 PST 2010
https://bugs.webkit.org/show_bug.cgi?id=50623
Martin Robinson <mrobinson at webkit.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #75798|review?, commit-queue? |review-
Flag| |
--- Comment #9 from Martin Robinson <mrobinson at webkit.org> 2010-12-08 01:29:19 PST ---
(From update of attachment 75798)
View in context: https://bugs.webkit.org/attachment.cgi?id=75798&action=review
Great patch. My biggest concern is whether or not the GTK+ icon caching behavior is defined. If it's defined can we be sure that it's performant?
> WebCore/platform/gtk/RenderThemeGtk.cpp:85
> + RefPtr<BitmapImage> img = BitmapImage::create(surface);
> + return img.release();
> +}
I think this should just be return BitmapImage::create(surface);
> WebCore/platform/gtk/RenderThemeGtk.cpp:117
> + iconSet = gtk_icon_set_new();
If this variable isn't used outside this block, it should be delcared here.
> WebCore/platform/gtk/RenderThemeGtk.cpp:263
> +GtkStateType RenderThemeGtk::gtkIconState(RenderObject* renderObject)
I think this can just be a static function. It doesn't seem to need to be a method.
> WebCore/platform/gtk/RenderThemeGtk.cpp:268
> + state = GTK_STATE_INSENSITIVE;
These should be early returns.
> WebCore/platform/gtk/RenderThemeGtk.cpp:478
> + gint width, height;
Please initialize these values to 0.
> WebCore/platform/gtk/RenderThemeGtk.cpp:502
> + RefPtr<Image> searchImage = loadStockIcon(style, GTK_STOCK_FIND, gtkTextDirection(renderObject->style()->direction()),
Instead of blitting the icon GdkPixbuf to a cairo surface wrapping it in a WebCore Image and then having WebCore paint one surface to another, it would be more effecieint to simply call gdk_cairo_set_source_pixbuf and paint the GdkPixbuf directly.
Does GtkIconSet cache the icons or does it load them every time?
> WebCore/platform/gtk/RenderThemeGtk.cpp:515
> + gint width, height;
Please initialize these values before using them.
> WebCore/platform/gtk/RenderThemeGtk.cpp:525
> + RefPtr<Image> cancelImage = loadStockIcon(style, GTK_STOCK_CLEAR, gtkTextDirection(renderObject->style()->direction()),
> + gtkIconState(renderObject), GTK_ICON_SIZE_MENU);
Same suggesiton here as above.
> WebCore/platform/gtk/RenderThemeGtk.cpp:789
> +bool RenderThemeGtk::paintMediaButton(RenderObject* renderObject, GraphicsContext* context, const IntRect& rect, const char* iconName, Color panelColor, int mediaIconSize)
Is it possible to make this a static function instead of a method?
> WebCore/platform/gtk/RenderThemeGtk.cpp:793
> + RefPtr<Image> image = loadStockIcon(style, iconName, gtkTextDirection(renderObject->style()->direction()), gtkIconState(renderObject), getMediaButtonIconSize(mediaIconSize));
Ditto.
> WebCore/platform/gtk/RenderThemeGtk.h:142
> + virtual void initMediaColors();
> + virtual void initMediaButtons();
Please remove the 'virtual' here.
> WebCore/platform/gtk/RenderThemeGtk.h:175
> + bool paintMediaButton(RenderObject*, GraphicsContext*, const IntRect& rect, const char *iconName, Color panelColor, int mediaIconSize);
No need for "rect" variable name and the asterisk on iconName should be with the type name.
> WebCore/platform/gtk/RenderThemeGtk.h:177
> + GtkStateType gtkIconState(RenderObject* renderObject);
No need for the variable name.
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list