Tom <[email protected]> wrote: > I am writing a plugin for a system that supplies an X11 window ID and expects > the plugin to render its UI inside that. I want to, therefore, use > CreatedWindow such that I am able to use FLTK in it. The following is a > testcase that blows up in my face just like the real thing: > > > bash-3.1$ cat test110.cpp > #include <fltk/Window.h> > #include <fltk/run.h> > #include <fltk/x11.h> > #include <X11/Xlib.h> > #include <unistd.h> > > int main(int argc, char* argv[]) { > Display* dis = XOpenDisplay(NULL); > XWindow win = XCreateSimpleWindow(dis, RootWindow(dis, 0), 1, 1, 500, > 500, 0, BlackPixel (dis, 0), BlackPixel(dis, 0)); > XMapWindow(dis, win); > XFlush(dis); > fltk::Window x(500,500); > fltk::CreatedWindow::set_xid(&x, win); > x.show(argc, argv); > fltk::run(); > return 0; > } > bash-3.1$ > > Program received signal SIGSEGV, Segmentation fault. > [Switching to Thread 0xb7a118f0 (LWP 4706)] > 0xb7b7e107 in XChangeProperty () from /usr/lib/libX11.so.6 > (gdb) bt > #0 0xb7b7e107 in XChangeProperty () from /usr/lib/libX11.so.6 > #1 0xb7f79389 in fltk::Window::label () from /usr/lib/libfltk2.so > #2 0xb7fa158b in fltk::Window::label () from /usr/lib/libfltk2.so > #3 0xb7f32767 in fltk::Window::show () from /usr/lib/libfltk2.so > #4 0x08048877 in main (argc=1, argv=0xbfd74fb4) at test110.cpp:14 > (gdb) > > So how do I do this properly and what am I doing wrong?
You might want to have a look at xembed.hh / xembed.cc in http://hg.dillo.org/dillo/file/tip/src/ which does exactly this for the dillo browser. Cheers, Johannes _______________________________________________ fltk-dev mailing list [email protected] http://lists.easysw.com/mailman/listinfo/fltk-dev
