]> git.armaanb.net Git - chorizo.git/blobdiff - browser.c
Always scale favicons
[chorizo.git] / browser.c
index 847cf09e3b6651396dfad08bad3dcb92ecdf0950..b7ff00242ecfcf7818efb1aa730a1928bf1e13ca 100644 (file)
--- a/browser.c
+++ b/browser.c
@@ -245,7 +245,10 @@ client_new(const gchar *uri, WebKitWebView *related_wv, gboolean show)
     gtk_label_set_ellipsize(GTK_LABEL(c->tablabel), PANGO_ELLIPSIZE_END);
     gtk_label_set_width_chars(GTK_LABEL(c->tablabel), tab_width_chars);
 
-    tabbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+    /* XXX I don't own a HiDPI screen, so I don't know if scale_factor
+     * does the right thing. */
+    tabbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,
+                         5 * gtk_widget_get_scale_factor(mw.win));
     gtk_box_pack_start(GTK_BOX(tabbox), c->tabicon, FALSE, FALSE, 0);
     gtk_box_pack_start(GTK_BOX(tabbox), c->tablabel, TRUE, TRUE, 0);
 
@@ -410,7 +413,7 @@ changed_favicon(GObject *obj, GParamSpec *pspec, gpointer data)
 {
     struct Client *c = (struct Client *)data;
     cairo_surface_t *f;
-    int w, h, w_scaled, h_scaled;
+    int w, h, w_should, h_should;
     GdkPixbuf *pb, *pb_scaled;
 
     f = webkit_web_view_get_favicon(WEBKIT_WEB_VIEW(c->web_view));
@@ -421,18 +424,13 @@ changed_favicon(GObject *obj, GParamSpec *pspec, gpointer data)
         pb = gdk_pixbuf_get_from_surface(f, 0, 0, w, h);
         if (pb != NULL)
         {
-            if (w > 16 || h > 16)
-            {
-                w_scaled = 16 * gtk_widget_get_scale_factor(c->tabicon);
-                h_scaled = 16 * gtk_widget_get_scale_factor(c->tabicon);
-                pb_scaled = gdk_pixbuf_scale_simple(pb, w_scaled, h_scaled,
-                                                    GDK_INTERP_BILINEAR);
-                gtk_image_set_from_pixbuf(GTK_IMAGE(c->tabicon), pb_scaled);
-                g_object_unref(pb_scaled);
-            }
-            else
-                gtk_image_set_from_pixbuf(GTK_IMAGE(c->tabicon), pb);
+            w_should = 16 * gtk_widget_get_scale_factor(c->tabicon);
+            h_should = 16 * gtk_widget_get_scale_factor(c->tabicon);
+            pb_scaled = gdk_pixbuf_scale_simple(pb, w_should, h_should,
+                                                GDK_INTERP_BILINEAR);
+            gtk_image_set_from_pixbuf(GTK_IMAGE(c->tabicon), pb_scaled);
 
+            g_object_unref(pb_scaled);
             g_object_unref(pb);
         }
     }