[gnome-builder] editor-frame: use GtkRevealer for positioning of minimap
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] editor-frame: use GtkRevealer for positioning of minimap
- Date: Sun, 17 May 2015 21:35:45 +0000 (UTC)
commit b533a29e742690669a2480320067f26c5880e783
Author: Christian Hergert <christian hergert me>
Date: Sun May 17 14:35:36 2015 -0700
editor-frame: use GtkRevealer for positioning of minimap
This allows ensures that the map does not obscure the text editor content.
Less code too, how about that.
data/ui/gb-editor-frame.ui | 24 ++++++-----
src/editor/gb-editor-frame-private.h | 4 +-
src/editor/gb-editor-frame.c | 76 +---------------------------------
3 files changed, 16 insertions(+), 88 deletions(-)
---
diff --git a/data/ui/gb-editor-frame.ui b/data/ui/gb-editor-frame.ui
index 00f1912..75fe2e4 100644
--- a/data/ui/gb-editor-frame.ui
+++ b/data/ui/gb-editor-frame.ui
@@ -46,12 +46,6 @@
<property name="expand">true</property>
<property name="visible">true</property>
<child type="overlay">
- <object class="GbEditorMapBin" id="source_map_container">
- <property name="floating-bar">floating_bar</property>
- <property name="visible">true</property>
- </object>
- </child>
- <child type="overlay">
<object class="GtkRevealer" id="search_revealer">
<property name="halign">end</property>
<property name="valign">start</property>
@@ -152,14 +146,22 @@
</child>
</object>
</child>
+ <child>
+ <object class="GtkRevealer" id="map_revealer">
+ <property name="visible">true</property>
+ <property name="reveal-child">false</property>
+ <property name="transition-type">slide-left</property>
+ <child>
+ <object class="GbEditorMapBin" id="source_map_container">
+ <property name="floating-bar">floating_bar</property>
+ <property name="visible">true</property>
+ </object>
+ </child>
+ </object>
+ </child>
</object>
</child>
</object>
</child>
</template>
- <object class="GtkAdjustment" id="overlay_adj">
- <property name="lower">0.0</property>
- <property name="upper">1.0</property>
- <property name="value">1.0</property>
- </object>
</interface>
diff --git a/src/editor/gb-editor-frame-private.h b/src/editor/gb-editor-frame-private.h
index 0d7c633..fefc47d 100644
--- a/src/editor/gb-editor-frame-private.h
+++ b/src/editor/gb-editor-frame-private.h
@@ -35,8 +35,8 @@ struct _GbEditorFrame
gchar *previous_search_string;
NautilusFloatingBar *floating_bar;
+ GtkRevealer *map_revealer;
GtkLabel *mode_name_label;
- GtkAdjustment *overlay_adj;
GtkLabel *overwrite_label;
GtkScrolledWindow *scrolled_window;
GtkRevealer *search_revealer;
@@ -47,8 +47,6 @@ struct _GbEditorFrame
IdeSourceMap *source_map;
GtkOverlay *source_overlay;
- IdeAnimation *map_animation;
-
gulong cursor_moved_handler;
guint auto_hide_map : 1;
diff --git a/src/editor/gb-editor-frame.c b/src/editor/gb-editor-frame.c
index 874fd34..d32cf53 100644
--- a/src/editor/gb-editor-frame.c
+++ b/src/editor/gb-editor-frame.c
@@ -53,31 +53,9 @@ static void
gb_editor_frame_animate_map (GbEditorFrame *self,
gboolean visible)
{
- IdeAnimation *animation;
- GdkFrameClock *frame_clock;
- gdouble value;
- guint duration;
-
g_assert (GB_IS_EDITOR_FRAME (self));
- if (self->map_animation)
- {
- animation = self->map_animation;
- ide_clear_weak_pointer (&self->map_animation);
- ide_animation_stop (animation);
- }
-
- frame_clock = gtk_widget_get_frame_clock (GTK_WIDGET (self->source_map_container));
- duration = visible ? MINIMAP_SHOW_DURATION : MINIMAP_HIDE_DURATION;
- value = visible ? 0.0 : 1.0;
-
- animation = ide_object_animate (self->overlay_adj,
- IDE_ANIMATION_EASE_IN_OUT_QUAD,
- duration,
- frame_clock,
- "value", value,
- NULL);
- ide_set_weak_pointer (&self->map_animation, animation);
+ gtk_revealer_set_reveal_child (self->map_revealer, visible);
}
static void
@@ -622,42 +600,6 @@ gb_editor_frame__source_view_populate_popup (GbEditorFrame *self,
}
}
-static gboolean
-gb_editor_frame__source_overlay_get_child_position (GbEditorFrame *self,
- GtkWidget *widget,
- GtkAllocation *alloc,
- GtkOverlay *overlay)
-{
- GtkAllocation main_alloc;
- GtkRequisition req;
-
- g_assert (GTK_IS_OVERLAY (overlay));
- g_assert (GB_IS_EDITOR_FRAME (self));
- g_assert (GTK_IS_WIDGET (widget));
- g_assert (alloc != NULL);
-
- if (widget == (GtkWidget *)self->source_map_container)
- {
- gdouble value;
-
- gtk_widget_get_allocation (GTK_WIDGET (self), &main_alloc);
- gtk_widget_get_preferred_size (widget, &req, NULL);
-
- alloc->x = main_alloc.x + main_alloc.width - req.width;
- alloc->width = req.width;
- alloc->y = main_alloc.y;
- alloc->height = main_alloc.height;
-
- /* adjust for animation */
- value = gtk_adjustment_get_value (self->overlay_adj);
- alloc->x += (value * alloc->width);
-
- return TRUE;
- }
-
- return FALSE;
-}
-
static void
gb_editor_frame_constructed (GObject *object)
{
@@ -709,8 +651,6 @@ gb_editor_frame_dispose (GObject *object)
g_clear_pointer (&self->previous_search_string, g_free);
- ide_clear_weak_pointer (&self->map_animation);
-
if (self->source_view && self->cursor_moved_handler)
{
GtkTextBuffer *buffer;
@@ -828,8 +768,8 @@ gb_editor_frame_class_init (GbEditorFrameClass *klass)
GB_WIDGET_CLASS_TEMPLATE (klass, "gb-editor-frame.ui");
GB_WIDGET_CLASS_BIND (klass, GbEditorFrame, floating_bar);
+ GB_WIDGET_CLASS_BIND (klass, GbEditorFrame, map_revealer);
GB_WIDGET_CLASS_BIND (klass, GbEditorFrame, mode_name_label);
- GB_WIDGET_CLASS_BIND (klass, GbEditorFrame, overlay_adj);
GB_WIDGET_CLASS_BIND (klass, GbEditorFrame, overwrite_label);
GB_WIDGET_CLASS_BIND (klass, GbEditorFrame, scrolled_window);
GB_WIDGET_CLASS_BIND (klass, GbEditorFrame, search_entry);
@@ -873,18 +813,6 @@ gb_editor_frame_init (GbEditorFrame *self)
g_object_bind_property (self->source_view, "overwrite", self->overwrite_label, "visible",
G_BINDING_SYNC_CREATE);
- g_signal_connect_object (self->source_overlay,
- "get-child-position",
- G_CALLBACK (gb_editor_frame__source_overlay_get_child_position),
- self,
- G_CONNECT_SWAPPED);
-
- g_signal_connect_object (self->overlay_adj,
- "value-changed",
- G_CALLBACK (gtk_widget_queue_resize),
- self->source_map_container,
- G_CONNECT_SWAPPED);
-
/*
* we want to rubberbanding search until enter has been pressed or next/previous actions
* have been activated.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]