Package: libgtk2.0-0 Version: 2.12.11-4 Severity: normal
Calling gtk_widget_trigger_tooltip_query() makes tooltips not show up sporadically. Also, valgrind complains about Conditional jump or move depends on uninitialised value(s) in other code: ==3029== Conditional jump or move depends on uninitialised value(s) ==3029== at 0x426A930: child_location_foreach (gtktooltip.c:515) ==3029== by 0x40A1FFE: gtk_bin_forall (gtkbin.c:133) ==3029== by 0x40E99E5: gtk_container_forall (gtkcontainer.c:1453) ==3029== by 0x426A85A: find_widget_under_pointer (gtktooltip.c:640) ==3029== by 0x426B858: gtk_tooltip_show_tooltip (gtktooltip.c:900) ==3029== by 0x426B980: tooltip_popup_timeout (gtktooltip.c:1013) ==3029== by 0x43D878A: gdk_threads_dispatch (gdk.c:470) ==3029== by 0x45D88E5: g_timeout_dispatch (gmain.c:3446) ==3029== by 0x45D81B7: g_main_context_dispatch (gmain.c:2012) ==3029== by 0x45DB852: g_main_context_iterate (gmain.c:2645) ==3029== by 0x45DBD71: g_main_loop_run (gmain.c:2853) ==3029== by 0x4186BA8: gtk_main (gtkmain.c:1163) Removing the call to gtk_widget_trigger_tooltip_query() makes the complaint go away and makes the tooltip visible again, but since I *want* to update the tooltip not calling that function doesn't really solve the problem. Repro case with build and repro instructions: " /* * Repro for a problem with gtk_widget_trigger_tooltip_query(). * * Build: * gcc -Wall -Wextra -Wno-unused $(pkg-config --cflags --libs gtk+-2.0) -g gtktip.c * * Run: * valgrind ./a.out * * Repro: * 1. Move your mouse into the window that pops up. * 2. A tooltip should appear. * 3. If a tooltip actually appears and valgrind doesn't print * anything, move your mouse out of the window and try again. * * After less than 5 attempts I usually get this from valgrind: * ==3029== Conditional jump or move depends on uninitialised value(s) * ==3029== at 0x426A930: child_location_foreach (gtktooltip.c:515) * ==3029== by 0x40A1FFE: gtk_bin_forall (gtkbin.c:133) * ==3029== by 0x40E99E5: gtk_container_forall (gtkcontainer.c:1453) * ==3029== by 0x426A85A: find_widget_under_pointer (gtktooltip.c:640) * ==3029== by 0x426B858: gtk_tooltip_show_tooltip (gtktooltip.c:900) * ==3029== by 0x426B980: tooltip_popup_timeout (gtktooltip.c:1013) * ==3029== by 0x43D878A: gdk_threads_dispatch (gdk.c:470) * ==3029== by 0x45D88E5: g_timeout_dispatch (gmain.c:3446) * ==3029== by 0x45D81B7: g_main_context_dispatch (gmain.c:2012) * ==3029== by 0x45DB852: g_main_context_iterate (gmain.c:2645) * ==3029== by 0x45DBD71: g_main_loop_run (gmain.c:2853) * ==3029== by 0x4186BA8: gtk_main (gtkmain.c:1163) * * Commenting out the call to gtk_widget_trigger_tooltip_query() makes * valgrind happy (but me unhappy since I *want* to update the * tooltip). */ #include <gtk/gtk.h> static void on_destroy (GtkWidget * widget, gpointer data) { gtk_main_quit(); } static int update_tooltip (gpointer pointer) { static int i = 0; static char tip[200]; GtkWidget *tipMe = pointer; sprintf(tip, "Tip #%d: Don't run with scissors", i++); gtk_widget_set_tooltip_text(tipMe, tip); gtk_widget_trigger_tooltip_query(tipMe); return TRUE; } int main (int argc, char *argv[]) { GtkWidget *window; GtkWidget *label; gtk_init (&argc, &argv); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window), "Hello World"); gtk_window_set_default_size (GTK_WINDOW (window), 200, 50); g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (on_destroy), NULL); label = gtk_label_new ("Hover me and I'll give you a tip!"); gtk_widget_set_tooltip_text(label, "Don't run with scissors"); gtk_container_add(GTK_CONTAINER (window), label); gtk_widget_show_all(window); // Add a timeout that updates the tooltip once per second gtk_timeout_add(1000, update_tooltip, label); gtk_main (); return 0; } " Regards //Johan -- System Information: Debian Release: 5.0 APT prefers testing APT policy: (990, 'testing') Architecture: i386 (i686) Kernel: Linux 2.6.26-1-686 (SMP w/2 CPU cores) Locale: LANG=sv_SE.UTF-8, LC_CTYPE=sv_SE.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages libgtk2.0-0 depends on: ii libatk1.0-0 1.22.0-1 The ATK accessibility toolkit ii libc6 2.7-16 GNU C Library: Shared libraries ii libcairo2 1.6.4-7 The Cairo 2D vector graphics libra ii libcomerr2 1.41.3-1 common error description library ii libcups2 1.3.8-1lenny4 Common UNIX Printing System(tm) - ii libfontconfig1 2.6.0-3 generic font configuration library ii libglib2.0-0 2.16.6-1 The GLib library of C routines ii libgnutls26 2.4.2-4 the GNU TLS library - runtime libr ii libgtk2.0-common 2.12.11-4 Common files for the GTK+ graphica ii libjpeg62 6b-14 The Independent JPEG Group's JPEG ii libkrb53 1.6.dfsg.4~beta1-4 MIT Kerberos runtime libraries ii libpango1.0-0 1.20.5-3 Layout and rendering of internatio ii libpng12-0 1.2.27-2 PNG library - runtime ii libtiff4 3.8.2-11 Tag Image File Format (TIFF) libra ii libx11-6 2:1.1.5-2 X11 client-side library ii libxcomposite1 1:0.4.0-3 X11 Composite extension library ii libxcursor1 1:1.1.9-1 X cursor management library ii libxdamage1 1:1.1.1-4 X11 damaged region extension libra ii libxext6 2:1.0.4-1 X11 miscellaneous extension librar ii libxfixes3 1:4.0.3-2 X11 miscellaneous 'fixes' extensio ii libxi6 2:1.1.4-1 X11 Input extension library ii libxinerama1 2:1.0.3-2 X11 Xinerama extension library ii libxrandr2 2:1.2.3-1 X11 RandR extension library ii libxrender1 1:0.9.4-2 X Rendering Extension client libra ii zlib1g 1:1.2.3.3.dfsg-12 compression library - runtime Versions of packages libgtk2.0-0 recommends: ii hicolor-icon-theme 0.10-1 default fallback theme for FreeDes ii libgtk2.0-bin 2.12.11-4 The programs for the GTK+ graphica Versions of packages libgtk2.0-0 suggests: ii librsvg2-common 2.22.2-2lenny1 SAX-based renderer library for SVG -- no debconf information -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org