diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2013-01-01 15:45:46 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2013-01-01 15:45:46 (GMT) |
commit | bb6d0c758f8c720d8074bf74e6bd001e36d6a918 (patch) | |
tree | e24d0a93f46d8c6a34df70c8a3e7a5300311ca6c /src/gtkext/gtkgraphview.c | |
parent | 36be37f57a66515444ffbfec6242b991f8346c09 (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.c | 30 |
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; |