+// ----------------------------------------------------------------------------
+// GTK+ signal handler
+// ----------------------------------------------------------------------------
+
+#if defined( __WXGTK20__ )
+#if GTK_CHECK_VERSION(2,12,0)
+extern "C" {
+static
+gboolean statusbar_query_tooltip(GtkWidget* WXUNUSED(widget),
+ gint x,
+ gint y,
+ gboolean WXUNUSED(keyboard_mode),
+ GtkTooltip *tooltip,
+ wxStatusBar* statbar)
+{
+ int n = statbar->GetFieldFromPoint(wxPoint(x,y));
+ if (n == wxNOT_FOUND)
+ return FALSE;
+
+ // should we show the tooltip for the n-th pane of the statusbar?
+ if (!statbar->GetField(n).IsEllipsized())
+ return FALSE; // no, it's not useful
+
+ const wxString& str = statbar->GetStatusText(n);
+ if (str.empty())
+ return FALSE;
+
+ gtk_tooltip_set_text(tooltip, wxGTK_CONV_SYS(str));
+ return TRUE;
+}
+}
+#endif
+#endif