@eht16 commented on this pull request.
In pinner/pinner.c:
> + GeanyDocument *doc = document_get_current(); + + if (doc != NULL && pin_list == NULL) + { + GtkWidget *label = gtk_label_new_with_mnemonic(doc->file_name); + gtk_widget_show(label); + gtk_box_pack_start(GTK_BOX(pinned_view_vbox), label, FALSE, FALSE, 0); + gtk_notebook_set_current_page(GTK_NOTEBOOK(plugin->geany_data->main_widgets->sidebar_notebook), page_number); + } +} + + +static gboolean pin_init(GeanyPlugin *plugin, gpointer pdata) +{ + GtkWidget *main_menu_item; + GSList *pin_list = NULL;
Yeah, a third argument doesn't work :(.
The common way is to define a struct to hold the data you want to pass, in this case the plugin and the pin_list pointers and then allocate, fill and pass the struct from pin_init
to pin_activate_cb
as the data
argument.
Care should be paid to the allocation of the struct, it might get tricky to deallocate it in the handler function. I don't remember if GLib offers some utility function for this.
ALternatively, the struct could be created once per plugin and the carried around and reused.
To get a rough idea, see https://github.com/geany/geany-plugins/blob/8431a100f118aacf438af159a4b822469534077f/addons/src/ao_bookmarklist.c#L461.
I didn't test it but maybe you could also use https://www.geany.org/manual/reference/plugindata_8h.html#a143ba8805bd049f3fb13037fae0eb30a to add the pin_list
to the plugin
instance. I'm not sure if this is a good idea, it might get clumsy.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.