#4 Help hacking geeqie

open
nobody
None
5
2010-08-11
2010-08-11
Anonymous
No

I am "hacking" geeqie 1.0 to add support for viewing the auto-focus points for images taken with my Canon 7D. DSLR. I have it all working except one thing. Specifically I read and interpret the EXIF data pertaining to the auto-focus points information and then I overwrite pixels in the "pixbuf" element in the PixBufRender structure to indicate on the viewed image the auto-focus point information. I have added a few menu entries and call-back functions to enable this feature. So far so good. What I am having issues with is when I "globally enable" the viewing of auto-focus point information in a previous image and then move to the next image I have the image_complete_util function (which apparently is called when image loading of the next image is complete) call my pixbuf_renderer_view_AF_points function which then does the reading of EXIF information and image overlay and then sets a flag to tell the pr_render_complete_signal function when it is called (apparently when the rendering of this next image is complete) to "redraw" the newly changed pixbuf (which now has the auto-focus points information in the image). I have tried calling pr_zoom_sync to force the redraw (and it works fine for viewing the new auto-focus information from my added menu entry call-backs) but it does not do a redraw when called from pr_render_complete_signal. I have also tried a combination of pr_tile_invalidate_all along with pr_redraw to no avail. I realize my hack may not be the cleanest approach (I and very new to programming with geeqie and GTK) but it all works for my purposes except for the pr_render_complete_callback to force another image "refresh" (because the pixbuf has been modified). Note that if I change the zoom level or simply right click on the image to cause the popup menu the image does refresh and shows the auto-focus point information. Any idea on how I can "force" the updated pixbuf data to "refresh" on the display when called from pr_renderer_complete_signal?

Discussion