summaryrefslogtreecommitdiff
path: root/gtk/gtkctree.c
diff options
context:
space:
mode:
authorLars Hamann <lars@src.gnome.org>1998-07-25 01:10:58 +0000
committerLars Hamann <lars@src.gnome.org>1998-07-25 01:10:58 +0000
commit165fab7605e2f5da96021bb6f67fd68733a15da6 (patch)
tree0305cbded3a2709e666448bbec3fd725ad068a85 /gtk/gtkctree.c
parentf970ecf821a6d5c135be68ce529aa4f7ed009fa1 (diff)
downloadgtk+-165fab7605e2f5da96021bb6f67fd68733a15da6.tar.gz
test for node != NULL (gtk_ctree_is_visible) (gtk_ctree_realize)
* gtk/gtkctree.c (gtk_ctree_sort_recursive) (gtk_ctree_sort_recursive): test for node != NULL (gtk_ctree_is_visible) (gtk_ctree_realize) (gtk_ctree_unrealize) (gtk_ctree_last) : added sanity checks * gtk/gtkclist.c (gtk_clist_button_press): removed "no_focus_row"
Diffstat (limited to 'gtk/gtkctree.c')
-rw-r--r--gtk/gtkctree.c49
1 files changed, 37 insertions, 12 deletions
diff --git a/gtk/gtkctree.c b/gtk/gtkctree.c
index da9763d4ec..90621dae73 100644
--- a/gtk/gtkctree.c
+++ b/gtk/gtkctree.c
@@ -457,10 +457,13 @@ gtk_ctree_realize (GtkWidget *widget)
GtkCTree *ctree;
GdkGCValues values;
- ctree = GTK_CTREE (widget);
+ g_return_if_fail (widget != NULL);
+ g_return_if_fail (GTK_IS_CTREE (widget));
(* GTK_WIDGET_CLASS (parent_class)->realize) (widget);
+ ctree = GTK_CTREE (widget);
+
values.foreground = widget->style->fg[GTK_STATE_NORMAL];
values.background = widget->style->bg[GTK_STATE_NORMAL];
values.subwindow_mode = GDK_INCLUDE_INFERIORS;
@@ -488,10 +491,13 @@ gtk_ctree_unrealize (GtkWidget *widget)
{
GtkCTree *ctree;
- ctree = GTK_CTREE (widget);
+ g_return_if_fail (widget != NULL);
+ g_return_if_fail (GTK_IS_CTREE (widget));
(* GTK_WIDGET_CLASS (parent_class)->unrealize) (widget);
+ ctree = GTK_CTREE (widget);
+
gdk_gc_destroy (ctree->lines_gc);
if (ctree->reorderable)
@@ -2443,7 +2449,7 @@ gtk_ctree_link (GtkCTree *ctree,
clist = GTK_CLIST (ctree);
- if (update_focus_row && clist->selection_mode == GTK_SELECTION_BROWSE)
+ if (update_focus_row && clist->selection_mode == GTK_SELECTION_EXTENDED)
{
if (clist->anchor != -1)
GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
@@ -2581,7 +2587,7 @@ gtk_ctree_unlink (GtkCTree *ctree,
clist = GTK_CLIST (ctree);
- if (update_focus_row && clist->selection_mode == GTK_SELECTION_BROWSE)
+ if (update_focus_row && clist->selection_mode == GTK_SELECTION_EXTENDED)
{
if (clist->anchor != -1)
GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
@@ -2708,7 +2714,7 @@ real_tree_move (GtkCTree *ctree,
clist = GTK_CLIST (ctree);
- if (clist->selection_mode == GTK_SELECTION_BROWSE)
+ if (clist->selection_mode == GTK_SELECTION_EXTENDED)
{
if (clist->anchor != -1)
GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
@@ -3338,6 +3344,7 @@ real_tree_select (GtkCTree *ctree,
gboolean node_selected;
g_return_if_fail (ctree != NULL);
+ g_return_if_fail (GTK_IS_CTREE (ctree));
if (!node)
return;
@@ -3392,6 +3399,7 @@ real_tree_unselect (GtkCTree *ctree,
GtkCList *clist;
g_return_if_fail (ctree != NULL);
+ g_return_if_fail (GTK_IS_CTREE (ctree));
if (!node)
return;
@@ -3430,7 +3438,7 @@ tree_toggle_selection (GtkCTree *ctree,
if (node && GTK_CTREE_ROW (node)->row.state == GTK_STATE_SELECTED)
gtk_signal_emit (GTK_OBJECT (ctree), ctree_signals[TREE_UNSELECT_ROW],
node, column);
- else
+ else if (node)
gtk_signal_emit (GTK_OBJECT (ctree), ctree_signals[TREE_SELECT_ROW],
node, column);
break;
@@ -3951,6 +3959,10 @@ gtk_ctree_is_visible (GtkCTree *ctree,
{
GtkCTreeRow *work;
+ g_return_val_if_fail (ctree != NULL, FALSE);
+ g_return_val_if_fail (GTK_IS_CTREE (ctree), FALSE);
+ g_return_val_if_fail (node != NULL, FALSE);
+
work = GTK_CTREE_ROW (node);
while (work->parent && GTK_CTREE_ROW (work->parent)->expanded)
@@ -3966,6 +3978,9 @@ GList *
gtk_ctree_last (GtkCTree *ctree,
GList *node)
{
+ g_return_val_if_fail (ctree != NULL, NULL);
+ g_return_val_if_fail (GTK_IS_CTREE (ctree), NULL);
+
if (!node)
return NULL;
@@ -4078,6 +4093,7 @@ gtk_ctree_move (GtkCTree *ctree,
GList *new_sibling)
{
g_return_if_fail (ctree != NULL);
+ g_return_if_fail (GTK_IS_CTREE (ctree));
g_return_if_fail (node != NULL);
gtk_signal_emit (GTK_OBJECT (ctree), ctree_signals[TREE_MOVE], node,
@@ -4089,6 +4105,7 @@ gtk_ctree_expand (GtkCTree *ctree,
GList *node)
{
g_return_if_fail (ctree != NULL);
+ g_return_if_fail (GTK_IS_CTREE (ctree));
g_return_if_fail (node != NULL);
if (GTK_CTREE_ROW (node)->is_leaf)
@@ -4160,6 +4177,7 @@ gtk_ctree_collapse (GtkCTree *ctree,
GList *node)
{
g_return_if_fail (ctree != NULL);
+ g_return_if_fail (GTK_IS_CTREE (ctree));
g_return_if_fail (node != NULL);
if (GTK_CTREE_ROW (node)->is_leaf)
@@ -4232,6 +4250,7 @@ gtk_ctree_toggle_expansion (GtkCTree *ctree,
GList *node)
{
g_return_if_fail (ctree != NULL);
+ g_return_if_fail (GTK_IS_CTREE (ctree));
g_return_if_fail (node != NULL);
if (GTK_CTREE_ROW (node)->is_leaf)
@@ -4248,6 +4267,7 @@ gtk_ctree_toggle_expansion_recursive (GtkCTree *ctree,
gboolean thaw = FALSE;
g_return_if_fail (ctree != NULL);
+ g_return_if_fail (GTK_IS_CTREE (ctree));
if (node && GTK_CTREE_ROW (node)->is_leaf)
return;
@@ -4273,6 +4293,7 @@ gtk_ctree_select (GtkCTree *ctree,
GList *node)
{
g_return_if_fail (ctree != NULL);
+ g_return_if_fail (GTK_IS_CTREE (ctree));
g_return_if_fail (node != NULL);
gtk_signal_emit (GTK_OBJECT (ctree), ctree_signals[TREE_SELECT_ROW],
@@ -4284,6 +4305,7 @@ gtk_ctree_unselect (GtkCTree *ctree,
GList *node)
{
g_return_if_fail (ctree != NULL);
+ g_return_if_fail (GTK_IS_CTREE (ctree));
g_return_if_fail (node != NULL);
gtk_signal_emit (GTK_OBJECT (ctree), ctree_signals[TREE_UNSELECT_ROW],
@@ -4313,6 +4335,7 @@ gtk_ctree_real_select_recursive (GtkCTree *ctree,
gboolean thaw = FALSE;
g_return_if_fail (ctree != NULL);
+ g_return_if_fail (GTK_IS_CTREE (ctree));
clist = GTK_CLIST (ctree);
@@ -4902,7 +4925,7 @@ gtk_ctree_sort_recursive (GtkCTree *ctree,
thaw = TRUE;
}
- if (clist->selection_mode == GTK_SELECTION_BROWSE)
+ if (clist->selection_mode == GTK_SELECTION_EXTENDED)
{
if (clist->anchor != -1)
GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
@@ -4913,7 +4936,7 @@ gtk_ctree_sort_recursive (GtkCTree *ctree,
clist->undo_unselection = NULL;
}
- if (gtk_ctree_is_visible (ctree, node))
+ if (node && gtk_ctree_is_visible (ctree, node))
focus_node = g_list_nth (clist->row_list, clist->focus_row);
gtk_ctree_post_recursive (ctree, node, GTK_CTREE_FUNC (tree_sort), NULL);
@@ -4947,7 +4970,7 @@ gtk_ctree_sort (GtkCTree *ctree,
thaw = TRUE;
}
- if (clist->selection_mode == GTK_SELECTION_BROWSE)
+ if (clist->selection_mode == GTK_SELECTION_EXTENDED)
{
if (clist->anchor != -1)
GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
@@ -4958,7 +4981,7 @@ gtk_ctree_sort (GtkCTree *ctree,
clist->undo_unselection = NULL;
}
- if (gtk_ctree_is_visible (ctree, node))
+ if (node && gtk_ctree_is_visible (ctree, node))
focus_node = g_list_nth (clist->row_list, clist->focus_row);
tree_sort (ctree, node, NULL);
@@ -5029,6 +5052,9 @@ resync_selection (GtkCList *clist, GdkEvent *event)
gboolean thaw = FALSE;
gboolean unselect;
+ g_return_if_fail (clist != NULL);
+ g_return_if_fail (GTK_IS_CTREE (clist));
+
if (clist->anchor < 0)
return;
@@ -5109,9 +5135,8 @@ real_undo_selection (GtkCList *clist)
GtkCTree *ctree;
GList *work;
-
g_return_if_fail (clist != NULL);
- g_return_if_fail (GTK_IS_CLIST (clist));
+ g_return_if_fail (GTK_IS_CTREE (clist));
if (clist->selection_mode != GTK_SELECTION_EXTENDED)
return;