Any tile other than the top level tile wouldn't queue draw correctly
because it didn't have direct access to the viewer. Just search up until
we find it..
+static void _grits_tile_queue_draw(GritsTile *tile)
+{
+ while (!GRITS_OBJECT(tile)->viewer && tile->parent)
+ tile = tile->parent;
+ grits_object_queue_draw(GRITS_OBJECT(tile));
+}
+
/**
* grits_tile_load_pixels:
* @tile: the tile to load data into
/**
* grits_tile_load_pixels:
* @tile: the tile to load data into
tile->pixels = pixels;
/* Queue OpenGL texture load/draw */
tile->pixels = pixels;
/* Queue OpenGL texture load/draw */
- grits_object_queue_draw(GRITS_OBJECT(tile));
+ _grits_tile_queue_draw(tile);
+
tile->alpha = gdk_pixbuf_get_has_alpha(pixbuf);
/* Queue OpenGL texture load/draw */
tile->alpha = gdk_pixbuf_get_has_alpha(pixbuf);
/* Queue OpenGL texture load/draw */
- grits_object_queue_draw(GRITS_OBJECT(tile));
+ _grits_tile_queue_draw(tile);
tile->alpha = gdk_pixbuf_get_has_alpha(tile->pixbuf);
/* Queue OpenGL texture load/draw */
tile->alpha = gdk_pixbuf_get_has_alpha(tile->pixbuf);
/* Queue OpenGL texture load/draw */
- grits_object_queue_draw(GRITS_OBJECT(tile));
+ _grits_tile_queue_draw(tile);