Package: xzgv
Version: 0.9+svn40-1
Followup-For: Bug #379869

As an alternative to rebuilding with -O, converting the program to use
g_idle_* instead of (deprecated?) gtk_idle_* seems to work. A crude and
possibly incomplete patch is attached. It may be useful as a starting point
for a real patch. :P

Hope This Helps!

-- System Information:
Debian Release: lenny/sid
  APT prefers testing
  APT policy: (499, 'testing'), (496, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.25-2-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_AU, LC_CTYPE=en_AU (charmap=ISO-8859-1)
Shell: /bin/sh linked to /bin/bash

Versions of packages xzgv depends on:
ii  libc6                         2.7-13     GNU C Library: Shared libraries
ii  libglib2.0-0                  2.16.4-2   The GLib library of C routines
ii  libgtk2.0-0                   2.12.11-3  The GTK+ graphical user interface 
ii  libx11-6                      2:1.1.4-2  X11 client-side library

xzgv recommends no packages.

xzgv suggests no packages.

-- no debconf information

-MD

-- 
-------------------------------------------------------------------------------
Michael Deegan           Hugaholic          http://wibble.darktech.org/gallery/
------------------------- Nyy Tybel Gb Gur Ulcabgbnq! -------------------------
--- xzgv-0.9+svn40/src/main.c	2008-07-12 07:47:14.000000000 +0800
+++ xzgv-0.9+svn40.mod/src/main.c	2008-08-17 00:30:29.000000000 +0800
@@ -201,7 +201,7 @@
 /* required prototypes */
 void render_pixmap(int reset_pos);
 void cb_nextprev_tagged_image(int next,int view);
-void idle_xvpic_load(int *entryp);
+gboolean idle_xvpic_load(int *entryp);
 gint pic_win_resized(GtkWidget *widget,GdkEventConfigure *event);
 void cb_scaling_double(void);
 void cb_xscaling_double(void);
@@ -2179,7 +2179,7 @@
 idle_xvpic_lastadjval=gtk_clist_get_vadjustment(GTK_CLIST(clist))->value;
 idle_xvpic_jumped=0;
 entry=0;
-tn_idle_tag=gtk_idle_add((GtkFunction)idle_xvpic_load,&entry);
+tn_idle_tag=g_idle_add((GtkFunction)idle_xvpic_load,&entry);
 
 /* the "" is a crappy way to disable it, but it's hairy otherwise */
 gtk_statusbar_push(GTK_STATUSBAR(statusbar),tn_id,
@@ -2193,7 +2193,10 @@
 if(thumbnail_read_running())
   {
   gtk_statusbar_pop(GTK_STATUSBAR(statusbar),tn_id);	/* remove msg */
-  gtk_idle_remove(tn_idle_tag);
+//  grk_idle_remove(tn_idle_tag);
+//  g_idle_remove_by_data(tn_idle_tag);
+//  printf("stop_thumbnail_read(): tn_idle_tag not removed!\n");
+//  tn_idle_tag=-1;
   tn_idle_tag=-1;
   }
 }
@@ -2236,6 +2239,7 @@
 if(thumbnail_read_running())
   {
   stop_thumbnail_read();
+  printf("resort_finish(): Hmm, thumbnail reading NOT stopped!\n");
   was_reading=1;
   }
 
@@ -2604,8 +2608,7 @@
 return(pixmap);
 }
 
-
-void idle_xvpic_load(int *entryp)
+int idle_xvpic_load(int *entryp)
 {
 static char buf[1024];
 struct clist_data_tag *datptr;
@@ -2621,7 +2624,7 @@
 
 /* don't do it if it would be a bad time */
 if(idle_xvpic_blocked)
-  return;
+  return TRUE;
 
 /* freeze/thaw actually *cause* flickering for this, rather than
  * preventing it (!), so I've not used those here.
@@ -2725,10 +2728,13 @@
   if(*entryp>=numrows)
     {
     /* can't have jump to return from, so just remove ourselves. */
-    stop_thumbnail_read();
+//    stop_thumbnail_read();
+    tn_idle_tag=-1;
     *entryp=-1;
+    return FALSE;
     }
   }
+  return TRUE;
 }
 
 

Reply via email to