diff options
Diffstat (limited to 'src/tab.c')
-rw-r--r-- | src/tab.c | 21 |
1 files changed, 19 insertions, 2 deletions
@@ -28,6 +28,13 @@ #include "tab-body.h" static void +update_tab_image(MqTab *tab) +{ + gtk_image_set_from_surface(GTK_IMAGE(tab->tab_image), + webkit_web_view_get_favicon(tab->web_view)); +} + +static void update_tab_label(MqTab *tab) { gtk_label_set_text(GTK_LABEL(tab->tab_label), @@ -36,6 +43,13 @@ update_tab_label(MqTab *tab) } static void +favicon_cb(WebKitWebView __attribute__((unused)) *web_view, + GParamSpec __attribute__((unused)) *paramspec, MqTab *tab) +{ + update_tab_image(tab); +} + +static void title_cb(WebKitWebView __attribute__((unused)) *web_view, GParamSpec __attribute__((unused)) *paramspec, MqTab *tab) { @@ -53,8 +67,11 @@ mq_tab_new(gchar *uri, GtkWidget *tab_image, GtkWidget *tab_label) tab->chrome = mq_tab_chrome_new(uri, tab_image, tab_label); tab->body = mq_tab_body_new(uri); tab->web_view = mq_tab_body_get_web_view(tab->body); - g_signal_connect(tab->web_view, "notify::title", G_CALLBACK(title_cb), - tab); + /* FIXME: Doesn't work? */ + g_signal_connect(tab->web_view, "notify::favicon", + G_CALLBACK(favicon_cb), tab); + g_signal_connect(tab->web_view, "notify::title", + G_CALLBACK(title_cb), tab); mq_tab_chrome_set_web_view(tab->chrome, tab->web_view); tab->container = gtk_grid_new(); |