[gimp] libgimp: allow to call gimp_procedure_add_menu_path() on installed procs
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] libgimp: allow to call gimp_procedure_add_menu_path() on installed procs
- Date: Mon, 12 Aug 2019 17:12:27 +0000 (UTC)
commit b33c3086a9f5a7548d1ebae4c74416da2801bb5e
Author: Michael Natterer <mitch gimp org>
Date: Mon Aug 12 19:06:13 2019 +0200
libgimp: allow to call gimp_procedure_add_menu_path() on installed procs
Adding menu paths must be possible even after the procedure has been
installed, script-fu registers all menu paths afer installing its
procedures so they are properly sorted.
libgimp/gimpprocedure.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
---
diff --git a/libgimp/gimpprocedure.c b/libgimp/gimpprocedure.c
index 1f0aec9c1e..01736ed642 100644
--- a/libgimp/gimpprocedure.c
+++ b/libgimp/gimpprocedure.c
@@ -80,6 +80,8 @@ struct _GimpProcedurePrivate
GimpRunFunc run_func;
gpointer run_data;
GDestroyNotify run_data_destroy;
+
+ gboolean installed;
};
@@ -295,6 +297,8 @@ gimp_procedure_real_install (GimpProcedure *procedure)
gsize icon_data_length = 0;
gint i;
+ g_return_if_fail (procedure->priv->installed == FALSE);
+
args = gimp_procedure_get_arguments (procedure, &n_args);
return_vals = gimp_procedure_get_return_values (procedure, &n_return_vals);
@@ -392,6 +396,8 @@ gimp_procedure_real_install (GimpProcedure *procedure)
_gimp_plugin_menu_register (gimp_procedure_get_name (procedure),
list->data);
}
+
+ procedure->priv->installed = TRUE;
}
static void
@@ -400,6 +406,8 @@ gimp_procedure_real_uninstall (GimpProcedure *procedure)
GimpPlugIn *plug_in;
GPProcUninstall proc_uninstall;
+ g_return_if_fail (procedure->priv->installed == TRUE);
+
proc_uninstall.name = (gchar *) gimp_procedure_get_name (procedure);
plug_in = gimp_procedure_get_plug_in (procedure);
@@ -407,6 +415,8 @@ gimp_procedure_real_uninstall (GimpProcedure *procedure)
if (! gp_proc_uninstall_write (_gimp_plug_in_get_write_channel (plug_in),
&proc_uninstall, plug_in))
gimp_quit ();
+
+ procedure->priv->installed = FALSE;
}
static GimpValueArray *
@@ -660,6 +670,10 @@ gimp_procedure_add_menu_path (GimpProcedure *procedure,
procedure->priv->menu_paths = g_list_append (procedure->priv->menu_paths,
g_strdup (menu_path));
+
+ if (procedure->priv->installed)
+ _gimp_plugin_menu_register (gimp_procedure_get_name (procedure),
+ menu_path);
}
/**
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]