gtk+ r20216 - in branches/gtk-2-12: . gtk
- From: kristian svn gnome org
- To: svn-commits-list gnome org
- Subject: gtk+ r20216 - in branches/gtk-2-12: . gtk
- Date: Wed, 28 May 2008 14:00:43 +0000 (UTC)
Author: kristian
Date: Wed May 28 14:00:42 2008
New Revision: 20216
URL: http://svn.gnome.org/viewvc/gtk+?rev=20216&view=rev
Log:
2008-05-28 Kristian Rietveld <kris imendio com>
Merge from trunk:
Bug 504087 - make gtk_tooltip_set_custom a no-op for setting the
current widget again.
* gtk/gtktooltip.c (gtk_tooltip_set_custom),
(gtk_tooltip_reset), (gtk_tooltip_run_requery): use a
custom_was_reset field to check if the custom widget is set again in
the query-tooltip callback; if not, we set it to NULL. Based on a
patch by Xavier Claessens, insightful comments from Jean-Yves Lefort
and Christian Persch.
Modified:
branches/gtk-2-12/ChangeLog
branches/gtk-2-12/gtk/gtktooltip.c
Modified: branches/gtk-2-12/gtk/gtktooltip.c
==============================================================================
--- branches/gtk-2-12/gtk/gtktooltip.c (original)
+++ branches/gtk-2-12/gtk/gtktooltip.c Wed May 28 14:00:42 2008
@@ -71,6 +71,7 @@
guint browse_mode_enabled : 1;
guint keyboard_mode_enabled : 1;
guint tip_area_set : 1;
+ guint custom_was_reset : 1;
};
struct _GtkTooltipClass
@@ -322,6 +323,15 @@
if (custom_widget)
g_return_if_fail (GTK_IS_WIDGET (custom_widget));
+ /* The custom widget has been updated from the query-tooltip
+ * callback, so we do not want to reset the custom widget later on.
+ */
+ tooltip->custom_was_reset = TRUE;
+
+ /* No need to do anything if the custom widget stays the same */
+ if (tooltip->custom_widget == custom_widget)
+ return;
+
if (tooltip->custom_widget)
{
GtkWidget *custom = tooltip->custom_widget;
@@ -413,8 +423,12 @@
{
gtk_tooltip_set_markup (tooltip, NULL);
gtk_tooltip_set_icon (tooltip, NULL);
- gtk_tooltip_set_custom (tooltip, NULL);
gtk_tooltip_set_tip_area (tooltip, NULL);
+
+ /* See if the custom widget is again set from the query-tooltip
+ * callback.
+ */
+ tooltip->custom_was_reset = FALSE;
}
static void
@@ -765,6 +779,12 @@
}
while (*widget);
+ /* If the custom widget was not reset in the query-tooltip
+ * callback, we clear it here.
+ */
+ if (!tooltip->custom_was_reset)
+ gtk_tooltip_set_custom (tooltip, NULL);
+
return return_value;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]