Include a Other Software section in Help file
[geeqie.git] / src / pixbuf-renderer.c
index a09692c..3653b41 100644 (file)
@@ -149,6 +149,16 @@ static void pr_stereo_temp_disable(PixbufRenderer *pr, gboolean disable);
  *-------------------------------------------------------------------
  */
 
+static void pixbuf_renderer_class_init_wrapper(void *g_class, void *class_data)
+{
+       pixbuf_renderer_class_init(g_class);
+}
+
+static void pixbuf_renderer_init_wrapper(PixbufRenderer *pr, void *class_data)
+{
+       pixbuf_renderer_init(pr);
+}
+
 GType pixbuf_renderer_get_type(void)
 {
        static GType pixbuf_renderer_type = 0;
@@ -160,12 +170,12 @@ GType pixbuf_renderer_get_type(void)
                        sizeof(PixbufRendererClass), /* class_size */
                        NULL,           /* base_init */
                        NULL,           /* base_finalize */
-                       (GClassInitFunc)pixbuf_renderer_class_init,
+                       (GClassInitFunc)pixbuf_renderer_class_init_wrapper,
                        NULL,           /* class_finalize */
                        NULL,           /* class_data */
                        sizeof(PixbufRenderer), /* instance_size */
                        0,              /* n_preallocs */
-                       (GInstanceInitFunc)pixbuf_renderer_init, /* instance_init */
+                       (GInstanceInitFunc)pixbuf_renderer_init_wrapper, /* instance_init */
                        NULL,           /* value_table */
                        };
 
@@ -213,7 +223,7 @@ static void pixbuf_renderer_class_init(PixbufRendererClass *class)
                                                          "Zoom quality",
                                                          NULL,
                                                          GDK_INTERP_NEAREST,
-                                                         GDK_INTERP_HYPER,
+                                                         GDK_INTERP_BILINEAR,
                                                          GDK_INTERP_BILINEAR,
                                                          G_PARAM_READABLE | G_PARAM_WRITABLE));
 
@@ -269,7 +279,7 @@ static void pixbuf_renderer_class_init(PixbufRendererClass *class)
        g_object_class_install_property(gobject_class,
                                        PROP_CACHE_SIZE_DISPLAY,
                                        g_param_spec_uint("cache_display",
-                                                         "Display cache size MB",
+                                                         "Display cache size MiB",
                                                          NULL,
                                                          0,
                                                          128,
@@ -401,7 +411,7 @@ static void pixbuf_renderer_class_init(PixbufRendererClass *class)
 
 static RendererFuncs *pr_backend_renderer_new(PixbufRenderer *pr)
 {
-       if (options->image.use_clutter_renderer)
+       if (options->image.use_clutter_renderer && !options->disable_gpu)
                {
 #ifdef HAVE_CLUTTER
                return renderer_clutter_new(pr);
@@ -1762,10 +1772,10 @@ static void pr_zoom_sync(PixbufRenderer *pr, gdouble zoom,
                }
 
        if (force) clamp_flags |= PR_ZOOM_INVALIDATE;
-       (void) pr_parent_window_resize(pr, pr->width, pr->height);
        if (!pr_zoom_clamp(pr, zoom, clamp_flags)) return;
 
        (void) pr_size_clamp(pr);
+       (void) pr_parent_window_resize(pr, pr->width, pr->height);
 
        if (force && new)
                {
@@ -2976,7 +2986,7 @@ gboolean pixbuf_renderer_get_virtual_rect(PixbufRenderer *pr, GdkRectangle *rect
 void pixbuf_renderer_set_size_early(PixbufRenderer *pr, guint width, guint height)
 {
 #if 0
-       /* FIXME: this function does not consider the image orientation,
+       /** @FIXME this function does not consider the image orientation,
        so it probably only breaks something */
        gdouble zoom;
        gint w, h;
@@ -2995,4 +3005,13 @@ void pixbuf_renderer_set_size_early(PixbufRenderer *pr, guint width, guint heigh
 #endif
 }
 
+void pixbuf_renderer_set_ignore_alpha(PixbufRenderer *pr, gint ignore_alpha)
+{
+   g_return_if_fail(IS_PIXBUF_RENDERER(pr));
+
+   pr->ignore_alpha = ignore_alpha;
+   pr_pixbuf_size_sync(pr);
+   pr_zoom_sync(pr, pr->zoom, PR_ZOOM_FORCE, 0, 0);
+}
+
 /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */