projects
/
rodin
/
chimara.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
- Fixed a bug that made Nitfol crash since [130]
[rodin/chimara.git]
/
libchimara
/
window.c
diff --git
a/libchimara/window.c
b/libchimara/window.c
index c835ccb31534e8f4816cca5aa397f2322d70864f..b3995f09189b8234982a3df80977ef9114f487b8 100644
(file)
--- a/
libchimara/window.c
+++ b/
libchimara/window.c
@@
-35,7
+35,7
@@
window_new_common(glui32 rock)
}
static void
}
static void
-window_close_common(winid_t win)
+window_close_common(winid_t win
, gboolean destroy_node
)
{
ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
{
ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
@@
-45,7
+45,8
@@
window_close_common(winid_t win)
win->disprock.ptr = NULL;
}
win->disprock.ptr = NULL;
}
- g_node_destroy(win->window_node);
+ if(destroy_node)
+ g_node_destroy(win->window_node);
win->magic = MAGIC_FREE;
g_free(win);
}
win->magic = MAGIC_FREE;
g_free(win);
}
@@
-660,7
+661,7
@@
free_winids_below(winid_t win)
free_winids_below(win->window_node->children->data);
free_winids_below(win->window_node->children->next->data);
}
free_winids_below(win->window_node->children->data);
free_winids_below(win->window_node->children->next->data);
}
- window_close_common(win);
+ window_close_common(win
, FALSE
);
}
/**
}
/**
@@
-774,14
+775,14
@@
glk_window_close(winid_t win, stream_result_t *result)
g_node_append(new_parent_node, sibling_node);
}
g_node_append(new_parent_node, sibling_node);
}
- window_close_common( (winid_t) pair_node->data
);
+ window_close_common( (winid_t) pair_node->data
, TRUE
);
}
else /* it was the root window */
{
glk_data->root_window = NULL;
}
}
else /* it was the root window */
{
glk_data->root_window = NULL;
}
- window_close_common(win);
+ window_close_common(win
, FALSE
);
/* Schedule a redraw */
g_mutex_lock(glk_data->arrange_lock);
/* Schedule a redraw */
g_mutex_lock(glk_data->arrange_lock);