ui/gtk/image.c

changeset 548
198756ab2845
parent 547
631162b266d1
child 563
6fc93c3b91c9
equal deleted inserted replaced
547:631162b266d1 548:198756ab2845
123 value->obj = imgviewer; 123 value->obj = imgviewer;
124 if(value->value && value->type && !strcmp(value->type, UI_IMAGE_OBJECT_TYPE)) { 124 if(value->value && value->type && !strcmp(value->type, UI_IMAGE_OBJECT_TYPE)) {
125 GdkPixbuf *pixbuf = value->value; 125 GdkPixbuf *pixbuf = value->value;
126 value->value = NULL; 126 value->value = NULL;
127 ui_imageviewer_set(value, pixbuf, UI_IMAGE_OBJECT_TYPE); 127 ui_imageviewer_set(value, pixbuf, UI_IMAGE_OBJECT_TYPE);
128 g_object_unref(pixbuf);
128 } 129 }
129 } 130 }
130 131
131 #if GTK_MAJOR_VERSION >= 4 132 #if GTK_MAJOR_VERSION >= 4
132 gtk_drawing_area_set_draw_func( 133 gtk_drawing_area_set_draw_func(
297 if(!type || strcmp(type, UI_IMAGE_OBJECT_TYPE)) { 298 if(!type || strcmp(type, UI_IMAGE_OBJECT_TYPE)) {
298 return 1; 299 return 1;
299 } 300 }
300 301
301 GdkPixbuf *pixbuf = value; 302 GdkPixbuf *pixbuf = value;
303 g_object_ref(pixbuf);
302 304
303 UiImageViewer *imgviewer = g->obj; 305 UiImageViewer *imgviewer = g->obj;
304 g->value = pixbuf; 306 g->value = pixbuf;
305 307
306 imageviewer_reset(imgviewer); 308 imageviewer_reset(imgviewer);
329 return 1; 331 return 1;
330 } 332 }
331 333
332 if(obj->set) { 334 if(obj->set) {
333 obj->set(obj, pixbuf, UI_IMAGE_OBJECT_TYPE); 335 obj->set(obj, pixbuf, UI_IMAGE_OBJECT_TYPE);
336 g_object_unref(pixbuf);
334 } else { 337 } else {
335 obj->value = pixbuf; 338 obj->value = pixbuf;
336 } 339 }
337 340
338 return 0; 341 return 0;
342 }
343
344 void ui_image_ref(UIIMAGE img) {
345 g_object_ref(img);
346 }
347
348 void ui_image_unref(UIIMAGE img) {
349 g_object_unref(img);
339 } 350 }
340 351
341 #if GTK_MAJOR_VERSION >= 4 352 #if GTK_MAJOR_VERSION >= 4
342 353
343 gboolean ui_imageviewer_scroll( 354 gboolean ui_imageviewer_scroll(

mercurial