static gboolean ide_source_map__enter_notify_event (IdeSourceMap *self, GdkEventCrossing *event, GtkWidget *widget) { g_assert (IDE_IS_SOURCE_MAP (self)); g_assert (event != NULL); g_assert (GTK_IS_WIDGET (widget)); /* We use this same method for both the view and self, * so if we are hovering our map, keep track of it. */ if (IDE_IS_SOURCE_MAP (widget)) self->in_map = TRUE; if (IDE_IS_SOURCE_VIEW (widget)) self->in_view = TRUE; if (self->show_map == FALSE) { self->show_map = TRUE; g_signal_emit (self, signals [SHOW_MAP], 0); } return GDK_EVENT_PROPAGATE; }
static void ide_editor_frame_show_map (IdeEditorFrame *self, IdeSourceMap *source_map) { g_assert (IDE_IS_EDITOR_FRAME (self)); g_assert (IDE_IS_SOURCE_MAP (source_map)); ide_editor_frame_animate_map (self, TRUE); }
static void ide_source_map__buffer_line_flags_changed (IdeSourceMap *self, IdeBuffer *buffer) { g_assert (IDE_IS_SOURCE_MAP (self)); g_assert (IDE_IS_BUFFER (buffer)); gtk_source_gutter_renderer_queue_draw (self->line_renderer); }
static gboolean ide_source_map__scroll_event (IdeSourceMap *self, GdkEventScroll *scroll, GtkWidget *widget) { g_assert (IDE_IS_SOURCE_MAP (self)); g_assert (scroll != NULL); g_assert (GTK_IS_WIDGET (widget)); ide_source_map_show_map_and_queue_fade (self); return GDK_EVENT_PROPAGATE; }
static gboolean ide_source_map__motion_notify_event (IdeSourceMap *self, GdkEventMotion *motion, GtkWidget *widget) { g_assert (IDE_IS_SOURCE_MAP (self)); g_assert (motion != NULL); g_assert (GTK_IS_WIDGET (widget)); ide_source_map_show_map_and_queue_fade (self); return GDK_EVENT_PROPAGATE; }
static void ide_editor_frame_hide_map (IdeEditorFrame *self, IdeSourceMap *source_map) { g_assert (IDE_IS_EDITOR_FRAME (self)); g_assert (IDE_IS_SOURCE_MAP (source_map)); /* ignore hide request if auto-hide is disabled */ if ((self->source_map != NULL) && !self->auto_hide_map) return; ide_editor_frame_animate_map (self, FALSE); }
static void ide_source_map__view_notify_buffer (IdeSourceMap *self, GParamSpec *pspec, GtkSourceView *view) { GtkTextBuffer *buffer; g_assert (IDE_IS_SOURCE_MAP (self)); g_assert (GTK_SOURCE_IS_VIEW (view)); buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view)); if (IDE_IS_BUFFER (buffer)) dzl_signal_group_set_target (self->buffer_signals, buffer); }
static gboolean ide_source_map__leave_notify_event (IdeSourceMap *self, GdkEventCrossing *event, GtkWidget *widget) { g_assert (IDE_IS_SOURCE_MAP (self)); g_assert (event != NULL); g_assert (GTK_IS_WIDGET (widget)); /* We use this same method for both the view and self, * so if we are hovering our map, keep track of it. */ if (IDE_IS_SOURCE_MAP (widget)) self->in_map = FALSE; if (IDE_IS_SOURCE_VIEW (widget)) self->in_view = FALSE; ide_source_map_show_map_and_queue_fade (self); return GDK_EVENT_PROPAGATE; }
static void ide_source_map__view_changed (IdeSourceMap *self, GParamSpec *psepct, gpointer data) { GtkSourceView *view; g_return_if_fail (IDE_IS_SOURCE_MAP (self)); view = gtk_source_map_get_view (GTK_SOURCE_MAP (self)); g_object_bind_property_full (view, "font-desc", self, "font-desc", G_BINDING_SYNC_CREATE, shrink_font, NULL, NULL, NULL); dzl_signal_group_set_target (self->view_signals, view); }
static gboolean ide_source_map_do_conceal (gpointer data) { IdeSourceMap *self = data; g_assert (IDE_IS_SOURCE_MAP (self)); self->delayed_conceal_timeout = 0; if (self->show_map == TRUE) { self->show_map = FALSE; g_signal_emit (self, signals [HIDE_MAP], 0); } return G_SOURCE_REMOVE; }
static void ide_source_map_show_map_and_queue_fade (IdeSourceMap *self) { g_assert (IDE_IS_SOURCE_MAP (self)); dzl_clear_source (&self->delayed_conceal_timeout); if (self->in_map == FALSE) self->delayed_conceal_timeout = g_timeout_add (CONCEAL_TIMEOUT, ide_source_map_do_conceal, self); if (self->show_map == FALSE) { self->show_map = TRUE; g_signal_emit (self, signals [SHOW_MAP], 0); } }