[gnome-shell/gnome-3-18] browser-plugin: Set windowless mode and don't claim to need XEmbed



commit 732ea2a91e232124db3af9e7cc1c99bd6bff35ba
Author: Carlos Garcia Campos <cgarcia igalia com>
Date:   Wed Nov 11 12:30:24 2015 +0100

    browser-plugin: Set windowless mode and don't claim to need XEmbed
    
    NPAPI plugins are windowed by default, so we need to set
    NPPVpluginWindowBool value to FALSE on startup. This way the browser
    will not create a GtkSocket for a GtkPlug that we are not going to
    create. It doesn't make sense to claim that we need XEmbed either.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=757940

 browser-plugin/browser-plugin.c |   16 ++++++++++++----
 1 files changed, 12 insertions(+), 4 deletions(-)
---
diff --git a/browser-plugin/browser-plugin.c b/browser-plugin/browser-plugin.c
index e8b5cf6..50a7e1a 100644
--- a/browser-plugin/browser-plugin.c
+++ b/browser-plugin/browser-plugin.c
@@ -162,6 +162,7 @@ NP_Initialize(NPNetscapeFuncs *pfuncs, NPPluginFuncs *plugin)
   plugin->destroy = NPP_Destroy;
   plugin->getvalue = NPP_GetValue;
   plugin->setwindow = NPP_SetWindow;
+  plugin->event = NPP_HandleEvent;
 
   return NPERR_NO_ERROR;
 }
@@ -218,6 +219,9 @@ NPP_New(NPMIMEType    mimetype,
   data = g_slice_new (PluginData);
   instance->pdata = data;
 
+  /* set windowless mode */
+  funcs.setvalue(instance, NPPVpluginWindowBool, NULL);
+
   data->proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION,
                                                G_DBUS_PROXY_FLAGS_NONE,
                                                NULL, /* interface info */
@@ -1048,10 +1052,6 @@ NPP_GetValue(NPP          instance,
     *(NPObject**)value = funcs.createobject (instance, &plugin_class);
     break;
 
-  case NPPVpluginNeedsXEmbed:
-    *(bool *)value = TRUE;
-    break;
-
   default:
     ;
   }
@@ -1067,3 +1067,11 @@ NPP_SetWindow(NPP          instance,
 {
   return NPERR_NO_ERROR;
 }
+
+int16_t
+NPP_HandleEvent(NPP   instance,
+                void *event)
+{
+  /* Ignore the event */
+  return FALSE;
+}


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]