How to get GtkCellRendererPixbuf to properly render in HiDPI environments?

Hi,

Edit: I found out that setting the gicon property of cell renderer instead of the pixbuf property, solves the issue completely - icons are now nice and crisp in HighDPI environments. Of course, I’m still curious why the GdkPixbuf approach didn’t work and it could be documented here for others as well, if someone knows why.

I’m using the GtkCellRendererPixbuf in a GtkTreeView and the GdkPixbuf's are fetched with

GdkPixbuf *
gtk_icon_theme_load_icon (GtkIconTheme *icon_theme,
                          const gchar *icon_name,
                          gint size,
                          GtkIconLookupFlags flags,
                          GError **error);

where size is always constant at 24.

When I launch my application with GDK_SCALE=2 the dimensions of the image are correct, but it’s an upscaled version, hence blurry:

In order to fix this I tried to use

GdkPixbuf *
gtk_icon_theme_load_icon_for_scale (GtkIconTheme *icon_theme,
                                    const gchar *icon_name,
                                    gint size,
                                    gint scale,
                                    GtkIconLookupFlags flags,
                                    GError **error);

Setting size to 24 and scale to 2 results to both wrong dimensions and and an upscaled/blurrry version. It’s basically the same image quality as before, just with doubled width and height.

I also tried to set size to 12 and scale to 2, which also doesn’t work, the dimensions are fine but it’s even blurrier than before.

Is there anything I’m missing or doing wrong to get the GtkCellRendererPixbuf to correctly render on HiDPI displays?

Thanks!

1 Like

Is that yet another app for optimized file search? I can try it when it’s released, or contribute somehow

Yes, it’s a file search application: https://github.com/cboxdoerfer/fsearch

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.