return "untitled";
}
-static GdkPixbuf*
-_midori_browser_get_tab_icon (MidoriBrowser* browser,
- GtkWidget* widget)
-{
- const gchar* uri;
- GdkPixbuf* icon;
-
- if (MIDORI_IS_WEB_VIEW (widget))
- return midori_web_view_get_icon (MIDORI_WEB_VIEW (widget));
-
- uri = g_object_get_data (G_OBJECT (widget), "browser-tab-uri");
- if (g_str_has_prefix (uri, "view-source:"))
- icon = gtk_widget_render_icon (widget, GTK_STOCK_EDIT,
- GTK_ICON_SIZE_MENU, NULL);
- else
- icon = gtk_widget_render_icon (widget, GTK_STOCK_FILE,
- GTK_ICON_SIZE_MENU, NULL);
- return icon;
-}
-
static void
_midori_browser_open_uri (MidoriBrowser* browser,
const gchar* uri)
gtk_widget_show (browser->progressbar);
}
katze_throbber_set_animated (KATZE_THROBBER (browser->throbber), loading);
- icon = _midori_browser_get_tab_icon (browser, widget);
+ icon = katze_throbber_get_static_pixbuf (KATZE_THROBBER (
+ g_object_get_data (G_OBJECT (widget), "browser-tab-icon")));
gtk_image_set_from_pixbuf (GTK_IMAGE (browser->location_icon), icon);
- g_object_unref (icon);
}
static GtkWidget*
}
else
{
- icon = _midori_browser_get_tab_icon (browser, widget);
+ if (GTK_IS_TEXT_VIEW (widget))
+ icon = gtk_widget_render_icon (widget, GTK_STOCK_EDIT,
+ GTK_ICON_SIZE_MENU, NULL);
+ else
+ icon = gtk_widget_render_icon (widget, GTK_STOCK_FILE,
+ GTK_ICON_SIZE_MENU, NULL);
tab_icon = gtk_image_new_from_pixbuf (icon);
title = _midori_browser_get_tab_title (browser, widget);
tab_title = gtk_label_new (title);
xbel_item);
}
}
+ g_object_set_data (G_OBJECT (widget), "browser-tab-icon", tab_icon);
browser->tab_titles = g_list_prepend (browser->tab_titles, tab_title);
g_signal_connect (widget, "leave-notify-event",
{
WebKitWebView parent_instance;
+ GdkPixbuf* icon;
gchar* uri;
gchar* title;
gboolean is_loading;
_midori_web_view_set_uri (web_view, uri);
if (web_view->tab_icon)
{
- icon = midori_web_view_get_icon (web_view);
+ icon = gtk_widget_render_icon (GTK_WIDGET (web_view),
+ GTK_STOCK_FILE, GTK_ICON_SIZE_MENU, NULL);
katze_throbber_set_static_pixbuf (KATZE_THROBBER (web_view->tab_icon),
icon);
g_object_unref (icon);
web_view->is_loading = FALSE;
web_view->progress = -1;
+ katze_object_assign (web_view->icon, NULL);
+
if (web_view->tab_icon || web_view->menu_item)
{
icon = midori_web_view_get_icon (web_view);
{
MidoriWebView* web_view = MIDORI_WEB_VIEW (object);
+ if (web_view->icon)
+ g_object_unref (web_view->icon);
g_free (web_view->uri);
g_free (web_view->title);
g_free (web_view->statusbar_text);
g_return_val_if_fail (MIDORI_IS_WEB_VIEW (web_view), NULL);
+ if (web_view->icon)
+ return g_object_ref (web_view->icon);
+
#if GLIB_CHECK_VERSION (2, 16, 0)
parent = g_file_new_for_uri (web_view->uri ? web_view->uri : "");
icon = NULL;
g_object_unref (icon_file);
g_object_unref (file);
#endif
- return pixbuf;
+
+ web_view->icon = pixbuf;
+ return g_object_ref (web_view->icon);
}