summaryrefslogtreecommitdiff
path: root/src/gtkext/gtkgraphview.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2013-01-01 15:45:46 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2013-01-01 15:45:46 (GMT)
commitbb6d0c758f8c720d8074bf74e6bd001e36d6a918 (patch)
treee24d0a93f46d8c6a34df70c8a3e7a5300311ca6c /src/gtkext/gtkgraphview.c
parent36be37f57a66515444ffbfec6242b991f8346c09 (diff)
Made sure the links have enough space to get fully drawn.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@315 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/gtkext/gtkgraphview.c')
-rw-r--r--src/gtkext/gtkgraphview.c30
1 files changed, 26 insertions, 4 deletions
diff --git a/src/gtkext/gtkgraphview.c b/src/gtkext/gtkgraphview.c
index 88210f5..543f2d7 100644
--- a/src/gtkext/gtkgraphview.c
+++ b/src/gtkext/gtkgraphview.c
@@ -192,9 +192,9 @@ static void gtk_graph_view_size_request(GtkWidget *widget, GtkRequisition *requi
{
gpointer fixed_class; /* Classe parente */
GtkGraphView *view; /* Autre vision du composant */
+ size_t i; /* Boucle de parcours */
gint left_corner; /* Abscisse minimale */
gint top_corner; /* Ordonnée minimale */
- size_t i; /* Boucle de parcours */
fixed_class = g_type_class_peek_parent(GTK_GRAPH_VIEW_GET_CLASS(widget));
fixed_class = g_type_class_peek_parent(fixed_class);
@@ -203,6 +203,21 @@ static void gtk_graph_view_size_request(GtkWidget *widget, GtkRequisition *requi
view = GTK_GRAPH_VIEW(widget);
+ requisition->width += GTK_VIEW_PANEL(widget)->hadjustment->value;
+ requisition->height += GTK_VIEW_PANEL(widget)->vadjustment->value;
+
+ /**
+ * On s'assure de ne couper aucun lien.
+ */
+
+ for (i = 0; i < view->links_count; i++)
+ gtk_link_renderer_size_request(view->links[i], requisition);
+
+ /**
+ * Traitement purement cosmétique : on ajoute la même bordure aux bords
+ * droit et bas.
+ */
+
left_corner = G_MAXINT;
top_corner = G_MAXINT;
@@ -215,9 +230,6 @@ static void gtk_graph_view_size_request(GtkWidget *widget, GtkRequisition *requi
if (left_corner != G_MAXINT) requisition->width += left_corner;
if (top_corner != G_MAXINT) requisition->height += top_corner;
- requisition->width += GTK_VIEW_PANEL(widget)->hadjustment->value;
- requisition->height += GTK_VIEW_PANEL(widget)->vadjustment->value;
-
}
@@ -240,6 +252,8 @@ static void gtk_graph_view_size_allocate(GtkWidget *widget, GtkAllocation *alloc
GtkViewPanel *panel; /* Autre version du composant */
GtkAllocation valloc; /* Surface utilisable */
GtkRequisition req; /* Taille demandée */
+ GtkGraphView *view; /* Autre vision du composant */
+ GdkWindow *window; /* Fenêtre associée au support */
gboolean changed; /* Changement de valeur ? */
/* Mise à jour GTK */
@@ -258,6 +272,14 @@ static void gtk_graph_view_size_allocate(GtkWidget *widget, GtkAllocation *alloc
gtk_widget_size_request(widget, &req);
+ /* Correction de la taille du support */
+
+ view = GTK_GRAPH_VIEW(widget);
+ window = GTK_WIDGET(view->support)->window;
+
+ if (gdk_window_get_width(window) != req.width || gdk_window_get_height(window) != req.height)
+ gdk_window_resize(window, req.width, req.height);
+
/* Défilement horizontal */
panel->hadjustment->page_size = valloc.width;