From d5363016179a3727c3d974ddbab3d39118d82c95 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Fri, 10 Aug 2012 11:56:18 +0200 Subject: EDayView: Hide tooltip on context menu popup --- calendar/gui/e-day-view.c | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/calendar/gui/e-day-view.c b/calendar/gui/e-day-view.c index 2b935f3f3a..2b8f7a8b31 100644 --- a/calendar/gui/e-day-view.c +++ b/calendar/gui/e-day-view.c @@ -420,6 +420,7 @@ static void e_day_view_recalc_work_week_days_shown (EDayView *day_view); static void e_day_view_queue_layout (EDayView *day_view); static void e_day_view_cancel_layout (EDayView *day_view); static gboolean e_day_view_layout_timeout_cb (gpointer data); +static void tooltip_destroy (EDayView *day_view, GnomeCanvasItem *item); enum { PROP_0, @@ -3662,6 +3663,8 @@ e_day_view_show_popup_menu (EDayView *day_view, gint day, gint event_num) { + tooltip_destroy (day_view, NULL); + day_view->popup_event_day = day; day_view->popup_event_num = event_num; @@ -6274,23 +6277,26 @@ static void tooltip_destroy (EDayView *day_view, GnomeCanvasItem *item) { - EDayViewEvent *pevent; - gint event_num = GPOINTER_TO_INT(g_object_get_data ((GObject *)item, "event-num")); - gint day = GPOINTER_TO_INT(g_object_get_data ((GObject *)item, "event-day")); + GtkWidget *tooltip = g_object_get_data (G_OBJECT (day_view), "tooltip-window"); - pevent = tooltip_get_view_event (day_view, day, event_num); - if (pevent) { - if (pevent->tooltip && g_object_get_data (G_OBJECT (day_view), "tooltip-window")) { - gtk_widget_destroy (pevent->tooltip); - pevent->tooltip = NULL; - } + if (tooltip) { + gtk_widget_destroy (tooltip); + g_object_set_data (G_OBJECT (day_view), "tooltip-window", NULL); + } - if (pevent->timeout != -1) { - g_source_remove (pevent->timeout); - pevent->timeout = -1; - } + if (item) { + EDayViewEvent *pevent; + gint event_num = GPOINTER_TO_INT(g_object_get_data ((GObject *)item, "event-num")); + gint day = GPOINTER_TO_INT(g_object_get_data ((GObject *)item, "event-day")); - g_object_set_data (G_OBJECT (day_view), "tooltip-window", NULL); + pevent = tooltip_get_view_event (day_view, day, event_num); + if (pevent) { + pevent->tooltip = NULL; + if (pevent->timeout != -1) { + g_source_remove (pevent->timeout); + pevent->timeout = -1; + } + } } } -- cgit v1.2.3