summaryrefslogtreecommitdiff
path: root/src/gtkext/gtkbufferview.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2014-06-04 22:44:21 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2014-06-04 22:44:21 (GMT)
commit11395d684736467fb010b93b0eaeefcc06bf0f5e (patch)
treed9f9e06d27f5b8721f308b6b4636cd043e4f7d20 /src/gtkext/gtkbufferview.c
parent83ba2204e700501023cb78dfd84978c611fe61b0 (diff)
Fixed bugs when dealing with views and updated the code for GTK3.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@378 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/gtkext/gtkbufferview.c')
-rw-r--r--src/gtkext/gtkbufferview.c36
1 files changed, 13 insertions, 23 deletions
diff --git a/src/gtkext/gtkbufferview.c b/src/gtkext/gtkbufferview.c
index 38fff5a..26f67c1 100644
--- a/src/gtkext/gtkbufferview.c
+++ b/src/gtkext/gtkbufferview.c
@@ -64,9 +64,6 @@ static gboolean gtk_buffer_view_key_press(GtkWidget *, GdkEventKey *);
/* Indique la position d'affichage d'une adresse donnée. */
static bool gtk_buffer_view_get_address_coordinates(const GtkBufferView *, vmpa_t, gint *, gint *);
-/* Réagit à un défilement quelconque. */
-static void gtk_buffer_view_scroll(GtkBufferView *);
-
/* Place en cache un rendu destiné à l'aperçu graphique rapide. */
static void gtk_buffer_view_cache_glance(GtkBufferView *, cairo_t *, const GtkAllocation *, double);
@@ -148,7 +145,6 @@ static void gtk_buffer_view_init(GtkBufferView *view)
viewpanel = GTK_VIEW_PANEL(view);
viewpanel->get_coordinates = (get_addr_coordinates_fc)gtk_buffer_view_get_address_coordinates;
- viewpanel->scroll = (scroll_fc)gtk_buffer_view_scroll;
viewpanel->cache_glance = (cache_glance_fc)gtk_buffer_view_cache_glance;
view->caret.x = 10;
@@ -598,25 +594,6 @@ static bool gtk_buffer_view_get_address_coordinates(const GtkBufferView *view, v
/******************************************************************************
* *
-* Paramètres : view = composant GTK à mettre à jour. *
-* *
-* Description : Réagit à un défilement quelconque. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-static void gtk_buffer_view_scroll(GtkBufferView *view)
-{
- gtk_widget_queue_draw(GTK_WIDGET(view));
-
-}
-
-
-/******************************************************************************
-* *
* Paramètres : view = composant GTK à manipuler. *
* cairo = assistant pour la création de rendus. *
* area = taille de la surface réduite à disposition. *
@@ -799,11 +776,24 @@ static void restart_caret_blinking(GtkBufferView *view)
static gboolean gtk_buffer_view_refresh_caret(GtkBufferView *view)
{
GtkWidget *widget; /* Autre version du composant */
+ GdkWindow *window; /* Fenêtre de support associée */
GdkRectangle area; /* Région adaptée à traiter */
cairo_t *cr; /* Contexte graphique */
GdkRGBA *color; /* Couleur du curseur */
widget = GTK_WIDGET(view);
+ window = gtk_widget_get_window(widget);
+
+ /**
+ * Si le composant n'est pas encore réalisé (ou caché, en cas de
+ * basculement entre les types de vues), gdk_cairo_create() ne va
+ * pas apprécier l'argument NULL. Donc on écourte l'opération.
+ */
+ if (window == NULL)
+ {
+ view->show_caret = !view->show_caret;
+ return TRUE;
+ }
area = view->caret;
gtk_buffer_view_compute_relative_coords(view, &area.x, &area.y);