summaryrefslogtreecommitdiff
path: root/src/gtkext/gtkbufferdisplay.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2018-07-14 15:03:49 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2018-07-14 15:03:49 (GMT)
commit7a009c76657478c9270acec0c2b236523bfd68eb (patch)
tree6ee3e3f3c9482aebcdabaed1a15adbe6eee9a3ce /src/gtkext/gtkbufferdisplay.c
parent9441aee9dfb31332ffbfa64204b5e4466249d563 (diff)
Used abstract locations to scroll into displays.
Diffstat (limited to 'src/gtkext/gtkbufferdisplay.c')
-rw-r--r--src/gtkext/gtkbufferdisplay.c32
1 files changed, 8 insertions, 24 deletions
diff --git a/src/gtkext/gtkbufferdisplay.c b/src/gtkext/gtkbufferdisplay.c
index c09a1fe..ff651c8 100644
--- a/src/gtkext/gtkbufferdisplay.c
+++ b/src/gtkext/gtkbufferdisplay.c
@@ -74,8 +74,8 @@ static void gtk_buffer_display_adjust_scroll_value(GtkBufferDisplay *, GtkAdjust
/* Indique la position courante du curseur. */
static const vmpa2t *gtk_buffer_display_get_caret_location(const GtkBufferDisplay *);
-/* Indique la position d'affichage d'une adresse donnée. */
-static bool gtk_buffer_display_get_address_coordinates(const GtkBufferDisplay *, const vmpa2t *, gint *, gint *, ScrollPositionTweak);
+/* Indique la position d'affichage d'un emplacement donné. */
+static bool gtk_buffer_display_get_cursor_coordinates(const GtkBufferDisplay *, const GLineCursor *, gint *, gint *, ScrollPositionTweak);
/* Fournit l'élément actif lié à la position courante. */
GObject *gtk_buffer_display_get_active_object(const GtkBufferDisplay *);
@@ -154,7 +154,7 @@ static void gtk_buffer_display_class_init(GtkBufferDisplayClass *class)
panel_class->compute_inc = (compute_scroll_inc_fc)gtk_buffer_display_compute_scroll_inc;
panel_class->adjust = (adjust_scroll_value_fc)gtk_buffer_display_adjust_scroll_value;
panel_class->get_caret_loc = (get_caret_location_fc)gtk_buffer_display_get_caret_location;
- panel_class->get_coordinates = (get_addr_coordinates_fc)gtk_buffer_display_get_address_coordinates;
+ panel_class->get_coordinates = (get_coordinates_fc)gtk_buffer_display_get_cursor_coordinates;
panel_class->get_active = (get_active_object_fc)gtk_buffer_display_get_active_object;
panel_class->move_caret_to = (move_caret_to_fc)_gtk_buffer_display_move_caret_to;
panel_class->cache_glance = (cache_glance_fc)gtk_buffer_display_cache_glance;
@@ -478,7 +478,6 @@ static gboolean gtk_buffer_display_key_press(GtkWidget *widget, GdkEventKey *eve
bool ctrl; /* Statut de la touche Contrôle*/
cairo_rectangle_int_t area; /* Emplacement de curseur #1 */
GLineCursor *cursor; /* Emplacement de curseur #2 */
- vmpa2t addr; /* Adresse du nouveau curseur */
bool status; /* Validité d'un déplacement */
switch (event->keyval)
@@ -521,13 +520,8 @@ static gboolean gtk_buffer_display_key_press(GtkWidget *widget, GdkEventKey *eve
if (status)
{
- ////////////////////////
- g_binary_cursor_get_info(G_BINARY_CURSOR(cursor), &addr);
- //g_object_unref(G_OBJECT(cursor));
- ////////////////////////
-
gtk_buffer_display_relocate_caret(display, &area, cursor);
- _gtk_display_panel_scroll_to_address(panel, &addr, SPT_RAW, false);
+ _gtk_display_panel_scroll_to_cursor(panel, cursor, SPT_RAW, false);
}
else
g_signal_emit_by_name(display, "reach-limit", dir);
@@ -660,12 +654,12 @@ static const vmpa2t *gtk_buffer_display_get_caret_location(const GtkBufferDispla
/******************************************************************************
* *
* Paramètres : display = composant GTK à consulter. *
-* addr = adresse à présenter à l'écran. *
+* cursor = emplacement à présenter à l'écran. *
* x = position horizontale au sein du composant. [OUT] *
* y = position verticale au sein du composant. [OUT] *
* tweak = adaptation finale à effectuer. *
* *
-* Description : Indique la position d'affichage d'une adresse donnée. *
+* Description : Indique la position d'affichage d'un emplacement donné. *
* *
* Retour : true si l'adresse fait partie du composant, false sinon. *
* *
@@ -673,28 +667,18 @@ static const vmpa2t *gtk_buffer_display_get_caret_location(const GtkBufferDispla
* *
******************************************************************************/
-static bool gtk_buffer_display_get_address_coordinates(const GtkBufferDisplay *display, const vmpa2t *addr, gint *x, gint *y, ScrollPositionTweak tweak)
+static bool gtk_buffer_display_get_cursor_coordinates(const GtkBufferDisplay *display, const GLineCursor *cursor, gint *x, gint *y, ScrollPositionTweak tweak)
{
bool result; /* Bilan à remonter */
bool need_code; /* Recherche plus raffinée */
GBufferCache *cache; /* Gestionnaire de lignes */
- GLineCursor *___tmp;
int height; /* Hauteur allouée */
need_code = (tweak == SPT_BOTTOM);
cache = g_buffer_view_get_cache(display->view);
-
- ___tmp = g_binary_cursor_new();
- g_binary_cursor_update(G_BINARY_CURSOR(___tmp), addr);
-
-
- result = g_buffer_view_get_cursor_coordinates(display->view, ___tmp, need_code, x, y);
-
-
- g_object_unref(G_OBJECT(___tmp));
-
+ result = g_buffer_view_get_cursor_coordinates(display->view, cursor, need_code, x, y);
if (result)
{