Normally a plugin would connect using its own plugin object, this is what I 
expect for peasy based ones at least:

```
def on_document_new(self, doc):
  pass
def do_enable(self):
 self.geany_plugin.geany_data.object.connect("document-new", 
self.on_document_new)
```

In this case the signal connection is automatically cleaned up when `self` is 
destructed, i.e. when geany (via peasy) unloads the plugin.

I'm not sure we can enforce such behavior for all GI based plugins but I expect 
the most common cases are handled like above. 

Also, we can't enforce it for plain C plugins either (for non-geany_object 
signals) since those can too always use plain g_object_connect().

---
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/1038#issuecomment-223812224

Reply via email to