diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2014-06-04 22:44:21 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2014-06-04 22:44:21 (GMT) |
commit | 11395d684736467fb010b93b0eaeefcc06bf0f5e (patch) | |
tree | d9f9e06d27f5b8721f308b6b4636cd043e4f7d20 /src/gtkext/gtkbufferview.c | |
parent | 83ba2204e700501023cb78dfd84978c611fe61b0 (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.c | 36 |
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); |