[webkit-dev] Implementation of Plugin on GTK port

ARaj araj2609 at gmail.com
Thu Jan 29 06:46:04 PST 2009


Hi All,
I am trying to write a plugin for GTK port, but I am getting problem
displaying the plugin window (atleast the initial impression seems
so). Please help me out with this one as I am totally struck &
clueless on how to move forward on the plugin. I am giving my
understanding of the plugin creation as sent from webkit below:

- Webkit creates a Widget (GtkXtBin) on the root window by calling
setPlatformWidget(gtk_xtbin_new(m_parentFrame->view()->containingWindow()->window,
0)); in the PluginView::init() function in PluginViewGtk.cpp. The
properties are then filled in the NPWindow structure & sent using the
NSAPI callbacks.
- In my plugin implementation, I am using this window ID present in
the NPWindow strucuture to create a new plugin widget, setting its
properties to show the widget & display the data but it is not
happening so. Below, I am giving in brief the logic used by me in the
plugin:
---------------------------------------------------------------------------
widget = gtk_plug_new(NPWindow.window);
draw  =  gtk_drawing_area_new();
gtk_widget_add_events(draw, GDK_EXPOSURE_MASK);
g_signal_connect_after(G_OBJECT (draw), "realize", G_CALLBACK
(realize_event), NULL);
g_signal_connect(G_OBJECT (draw), "configure_event", G_CALLBACK
(configure_event), this);
g_signal_connect(G_OBJECT (draw), "expose_event", G_CALLBACK
(expose_event), this);
gtk_container_add(GTK_CONTAINER(widget), draw);
gtk_widget_realize(widget);
gtk_widget_show(draw);
gtk_widget_show_all(widget);
gtk_widget_queue_draw (draw);
.....
xdraw = XCreateGC(display,window,GCForeground|GCBackground,&gcval);
ximage = XCreateImage(display,visual,depth,ZPixmap,0,NULL, width,height);
........
XPutImage(GDK_WINDOW_XDISPLAY(m_drawingArea->window),window,draw,ximage,x,y,x,y,width,height);
---------------------------------------------------------------------------
>From the logs, I know that the widget created by me in the plugin is
getting the events of realize, expose, configure etc., but I see no
window or the data of the plugin itself.
Can somebody please point to the mistake I am doing in the plugin or
using the window id given by webkit in the plugin?

Thanks,
Raj


More information about the webkit-dev mailing list