static void schedule_menu_popup_timeout (NemoNavigationAction *self) { /* unschedule any previous timeouts */ unschedule_menu_popup_timeout (self); self->priv->popup_timeout_id = g_timeout_add (MENU_POPUP_TIMEOUT, popup_menu_timeout_cb, self); }
static gboolean tool_button_release_cb (GtkButton *button, GdkEventButton *event, gpointer user_data) { NemoNavigationAction *self = user_data; unschedule_menu_popup_timeout (self); return FALSE; }
static gboolean navigation_button_release_cb (GtkButton *button, GdkEventButton *event, gpointer user_data) { NautilusToolbar *self = user_data; unschedule_menu_popup_timeout (self); return FALSE; }
static void nautilus_toolbar_dispose (GObject *obj) { NautilusToolbar *self = NAUTILUS_TOOLBAR (obj); g_signal_handlers_disconnect_by_func (nautilus_preferences, toolbar_update_appearance, self); unschedule_menu_popup_timeout (self); G_OBJECT_CLASS (nautilus_toolbar_parent_class)->dispose (obj); }
static void nemo_navigation_action_finalize (GObject *object) { NemoNavigationAction *action = NEMO_NAVIGATION_ACTION (object); /* remove any possible timeout going on */ unschedule_menu_popup_timeout (action); g_free (action->priv->arrow_tooltip); (* G_OBJECT_CLASS (nemo_navigation_action_parent_class)->finalize) (object); }
static void nautilus_toolbar_finalize (GObject *obj) { NautilusToolbar *self = NAUTILUS_TOOLBAR (obj); g_signal_handlers_disconnect_by_func (nautilus_preferences, toolbar_update_appearance, self); disconnect_progress_infos (self); unschedule_menu_popup_timeout (self); unschedule_remove_finished_operations (self); unschedule_operations_start (self); unschedule_operations_button_attention_style (self); g_signal_handlers_disconnect_by_data (self->priv->progress_manager, self); g_clear_object (&self->priv->progress_manager); G_OBJECT_CLASS (nautilus_toolbar_parent_class)->finalize (obj); }
static void schedule_menu_popup_timeout (NautilusToolbar *self, GtkWidget *widget) { ScheduleMenuData *data; /* unschedule any previous timeouts */ unschedule_menu_popup_timeout (self); data = g_slice_new0 (ScheduleMenuData); data->self = self; data->widget = widget; self->priv->popup_timeout_id = g_timeout_add_full (G_PRIORITY_DEFAULT, MENU_POPUP_TIMEOUT, popup_menu_timeout_cb, data, (GDestroyNotify) schedule_menu_data_free); }
static void disconnect_proxy (GtkAction *action, GtkWidget *proxy) { GtkWidget *button; if (GTK_IS_BUTTON (proxy)) { button = GTK_BUTTON (proxy); /* remove any possible timeout going on */ unschedule_menu_popup_timeout (NEMO_NAVIGATION_ACTION (action)); g_signal_handlers_disconnect_by_func (button, G_CALLBACK (tool_button_press_cb), action); g_signal_handlers_disconnect_by_func (button, G_CALLBACK (tool_button_release_cb), action); } (* GTK_ACTION_CLASS (nemo_navigation_action_parent_class)->disconnect_proxy) (action, proxy); }