[gimp] plug-ins: avoid running pygimp plug-ins derived from gimpplugin.plugin at each startup
- From: Ell <ell src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] plug-ins: avoid running pygimp plug-ins derived from gimpplugin.plugin at each startup
- Date: Fri, 25 Jan 2019 09:35:04 +0000 (UTC)
commit 9851bc89621ba39f561561359bdf54ff391c4617
Author: Ell <ell_se yahoo com>
Date: Fri Jan 25 04:26:08 2019 -0500
plug-ins: avoid running pygimp plug-ins derived from gimpplugin.plugin at each startup
When initializing a pygimp plug-in derived from gimpplugin.plugin,
only pass the plug-in's init() and quit() functions to gimp.main()
if the plug-in actually implements them, instead of passing the
default NOP versions. This avoids plug-ins that don't implement
init() from being registered as having an init function, causing
them to be run at each startup.
plug-ins/pygimp/gimpplugin.py | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
---
diff --git a/plug-ins/pygimp/gimpplugin.py b/plug-ins/pygimp/gimpplugin.py
index 6a5ce1be9b..eeaa3f33ba 100644
--- a/plug-ins/pygimp/gimpplugin.py
+++ b/plug-ins/pygimp/gimpplugin.py
@@ -42,7 +42,21 @@ import gimp
class plugin:
def start(self):
- gimp.main(self.init, self.quit, self.query, self._run)
+ # only pass the init()/quit() member functions to gimp.main() if the
+ # plug-in overrides them, to avoid the default NOP versions from being
+ # called unnecessarily. in particular, this avoids plug-ins that don't
+ # implement init() from being registered as having an init function,
+ # causing them to be run at each startup.
+ def get_func(name):
+ if getattr(self.__class__, name) != getattr(plugin, name):
+ return getattr(self, name)
+ else:
+ return None
+
+ gimp.main(get_func("init"),
+ get_func("quit"),
+ self.query,
+ self._run)
def init(self):
pass
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]