diff options
-rw-r--r-- | src/evbp.c | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -172,6 +172,7 @@ evbp_new(NPMIMEType pluginType, NPP instance, uint16_t mode, /* create new viewer */ priv->viewer = evbp_viewer_new(); + g_object_ref(priv->viewer); gtk_widget_show(priv->viewer); return NPERR_NO_ERROR; @@ -184,8 +185,10 @@ evbp_destroy(NPP instance, NPSavedData **save) g_debug("%s", __func__); + if (priv->viewer) + g_object_unref(priv->viewer); if (priv->plug) - gtk_widget_destroy(priv->plug); + g_object_unref(priv->plug); npn_funcs->memfree(instance->pdata); instance->pdata = NULL; @@ -215,6 +218,7 @@ evbp_set_window(NPP instance, NPWindow *window) g_debug("plugging into window id %lu", (unsigned long)id); priv->plug = evbp_plug_new(id); + g_object_ref(priv->plug); gtk_widget_set_size_request(priv->plug, window->width, window->height); gtk_container_add(GTK_CONTAINER(priv->plug), priv->viewer); |