Index: gtk/src/widget.hg
===================================================================
--- gtk/src/widget.hg	(revision 998)
+++ gtk/src/widget.hg	(working copy)
@@ -518,11 +518,14 @@
 
   // Gtk+ 2.12 tooltip API
   _WRAP_METHOD(void set_tooltip_window(Window& widget), gtk_widget_set_tooltip_window)
+  void unset_tooltip_window();
   _WRAP_METHOD(Window* get_tooltip_window(), gtk_widget_get_tooltip_window)
   _WRAP_METHOD(void trigger_tooltip_query(), gtk_widget_trigger_tooltip_query)
   _WRAP_METHOD(void set_tooltip_text(const Glib::ustring& text), gtk_widget_set_tooltip_text)
+  void unset_tooltip_text();
   _WRAP_METHOD(Glib::ustring get_tooltip_text() const, gtk_widget_get_tooltip_text)
   _WRAP_METHOD(void set_tooltip_markup(const Glib::ustring& markup), gtk_widget_set_tooltip_markup)
+  void unset_tooltip_markup();
   _WRAP_METHOD(Glib::ustring get_tooltip_markup() const, gtk_widget_get_tooltip_markup)
   _WRAP_METHOD(void set_has_tooltip(bool has_tooltip = TRUE), gtk_widget_set_has_tooltip)
   _WRAP_METHOD(bool get_has_tooltip() const, gtk_widget_get_has_tooltip)
Index: gtk/src/tooltip.ccg
===================================================================
--- gtk/src/tooltip.ccg	(revision 998)
+++ gtk/src/tooltip.ccg	(working copy)
@@ -27,4 +27,29 @@
   gtk_tooltip_trigger_tooltip_query(display->gobj());
 }
 
+void Tooltip::unset_markup()
+{
+    gtk_tooltip_set_markup(gobj(), NULL);
+}
+
+void Tooltip::unset_text()
+{
+    gtk_tooltip_set_text(gobj(), NULL);
+}
+
+void Tooltip::unset_icon()
+{
+    gtk_tooltip_set_icon(gobj(), NULL);
+}
+
+void Tooltip::unset_custom()
+{
+    gtk_tooltip_set_custom(gobj(), NULL);
+}
+
+void Tooltip::unset_tip_area()
+{
+    gtk_tooltip_set_tip_area(gobj(), NULL);
+}
+
 } // namespace Gtk
Index: gtk/src/widget.ccg
===================================================================
--- gtk/src/widget.ccg	(revision 998)
+++ gtk/src/widget.ccg	(working copy)
@@ -578,7 +578,21 @@
   return requisition;
 }
 
+void Widget::unset_tooltip_window()
+{
+    gtk_widget_set_tooltip_window(gobj(), NULL);
+}
 
+void Widget::unset_tooltip_text()
+{
+    gtk_widget_set_tooltip_text(gobj(), NULL);
+}
 
+void Widget::unset_tooltip_markup()
+{
+    gtk_widget_set_tooltip_markup(gobj(), NULL);
+}
+
+
 } // namespace Gtk
 
Index: gtk/src/tooltip.hg
===================================================================
--- gtk/src/tooltip.hg	(revision 998)
+++ gtk/src/tooltip.hg	(working copy)
@@ -79,11 +79,17 @@
 public:
 
   _WRAP_METHOD(void set_markup(const Glib::ustring& markup), gtk_tooltip_set_markup)
+  void unset_markup();
   _WRAP_METHOD(void set_text(const Glib::ustring& markup), gtk_tooltip_set_text)
+  void unset_text();
   _WRAP_METHOD(void set_icon(const Glib::RefPtr<Gdk::Pixbuf>& pixbuf), gtk_tooltip_set_icon)
   _WRAP_METHOD(void set_icon_from_stock(const StockID& stock_id, IconSize size), gtk_tooltip_set_icon_from_stock)
+  _WRAP_METHOD(void set_icon_from_icon_name(const Glib::ustring& icon_name, IconSize size), gtk_tooltip_set_icon_from_icon_name);
+  void unset_icon();
   _WRAP_METHOD(void set_custom(Widget& custom_widget), gtk_tooltip_set_custom)
+  void unset_custom();
   _WRAP_METHOD(void set_tip_area(const Gdk::Rectangle& rect), gtk_tooltip_set_tip_area)
+  void unset_tip_area();
 
   _IGNORE(gtk_tooltip_trigger_tooltip_query)
   static void trigger_tooltip_query(const Glib::RefPtr<Gdk::Display>& display);
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 998)
+++ ChangeLog	(working copy)
@@ -1,3 +1,12 @@
+2008-07-02  Jonathon Jongsma  <jonathon.jongsma@collabora.co.uk>
+
+	* gtk/src/tooltip.ccg:
+	* gtk/src/tooltip.hg:
+	* gtk/src/widget.ccg:
+	* gtk/src/widget.hg: provide unset_ methods for all of the tooltip related
+	functions that have NULL-able arguments.  In the GTK+ API, if null is
+	passed, it disables that portion of the tooltip display.  Fixes Bug #541296
+
 2.13.1:
 
 2008-06-02  Peter Wainright  <prw@ceiriog.eclipse.co.uk>
