projects
/
rodin
/
chimara.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixed Gtk-doc parse error
[rodin/chimara.git]
/
libchimara
/
chimara-glk.c
diff --git
a/libchimara/chimara-glk.c
b/libchimara/chimara-glk.c
index 0fabb3943eabe4d6823d04a07dddc15165070e8d..a00ae659b7cb9dc900871dcb156f3228e3ae1567 100644
(file)
--- a/
libchimara/chimara-glk.c
+++ b/
libchimara/chimara-glk.c
@@
-235,8
+235,10
@@
void
_chimara_glk_free_window_private_data(ChimaraGlkPrivate *priv)
{
/* Destroy the window tree */
_chimara_glk_free_window_private_data(ChimaraGlkPrivate *priv)
{
/* Destroy the window tree */
- trash_windows_recursive(priv, priv->root_window->data);
- g_node_destroy(priv->root_window);
+ if(priv->root_window) {
+ trash_windows_recursive(priv, priv->root_window->data);
+ g_node_destroy(priv->root_window);
+ }
/* Free the window arrangement signaling */
g_mutex_lock(priv->arrange_lock);
/* Free the window arrangement signaling */
g_mutex_lock(priv->arrange_lock);
@@
-244,6
+246,12
@@
_chimara_glk_free_window_private_data(ChimaraGlkPrivate *priv)
g_mutex_unlock(priv->arrange_lock);
g_mutex_free(priv->arrange_lock);
priv->arrange_lock = NULL;
g_mutex_unlock(priv->arrange_lock);
g_mutex_free(priv->arrange_lock);
priv->arrange_lock = NULL;
+
+ /* Remove the dispatch callbacks */
+ priv->register_obj = NULL;
+ priv->unregister_obj = NULL;
+ priv->register_arr = NULL;
+ priv->unregister_arr = NULL;
}
static void
}
static void
@@
-1153,6
+1161,10
@@
chimara_glk_run(ChimaraGlk *glk, const gchar *plugin, int argc, char *argv[], GE
{
g_return_val_if_fail(glk || CHIMARA_IS_GLK(glk), FALSE);
g_return_val_if_fail(plugin, FALSE);
{
g_return_val_if_fail(glk || CHIMARA_IS_GLK(glk), FALSE);
g_return_val_if_fail(plugin, FALSE);
+ if(chimara_glk_get_running(glk)) {
+ g_set_error(error, CHIMARA_ERROR, CHIMARA_PLUGIN_ALREADY_RUNNING, _("There was already a plugin running."));
+ return FALSE;
+ }
ChimaraGlkPrivate *priv = CHIMARA_GLK_PRIVATE(glk);
struct StartupData *startup = g_slice_new0(struct StartupData);
ChimaraGlkPrivate *priv = CHIMARA_GLK_PRIVATE(glk);
struct StartupData *startup = g_slice_new0(struct StartupData);