diff --git a/ChangeLog b/ChangeLog index bbb360c2a..75c92f426 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2007-07-20 Matthias Clasen + + * gtk/gtktooltip.c (gtk_tooltip_position): Don't pop up + under the cursor. This fixes tooltip-induced flickering + in the tasklist in a bottom panel. + 2007-07-20 Matthias Clasen * gtk/gtkpathbar.c (make_directory_button): Don't leak diff --git a/gtk/gtktooltip.c b/gtk/gtktooltip.c index a79617034..d60829df3 100644 --- a/gtk/gtktooltip.c +++ b/gtk/gtktooltip.c @@ -751,7 +751,15 @@ gtk_tooltip_position (GtkTooltip *tooltip, if (y + requisition.height > monitor.y + monitor.height) y -= y - (monitor.y + monitor.height) + requisition.height; - + + if (!tooltip->keyboard_mode_enabled) + { + /* don't pop up under the pointer */ + if (x <= tooltip->last_x && tooltip->last_x < x + requisition.width && + y <= tooltip->last_y && tooltip->last_y < y + requisition.height) + y = tooltip->last_y - requisition.height - 2; + } + gtk_window_move (GTK_WINDOW (tooltip->current_window), x, y); gtk_widget_show (GTK_WIDGET (tooltip->current_window)); }