[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gnome-components
Subject:    ControlFrame implementation's distinction between in-proc and
From:       ERDI Gergo <cactus () cactus ! rulez ! org>
Date:       2002-07-24 17:16:01
[Download RAW message or body]

Hi,

[this is going to be a bit complicated -- it certainly took me some time
to understand how, and why, bonobo_object() works]

libbonoboui's Bonobo::ControLFrame implementation has code like this:

		frame->priv->inproc_control = (BonoboControl *)
			bonobo_object (ORBit_small_get_servant (control));

However, of course, this has nothing to do with wether control is in-proc
-- this only tests if it's an in-proc Bonobo component that is based on
libbonoboui's Bonobo::Control implementation. Why? Because in order for
bonobo_object() to return a non-0, its input argument either has to be a
BonoboObject*, or a Servant that is implemented by a subclass of
BonoboObject* (since this is where the magic key is set on the servant)

So what this all boils down to, if you have an in-proc Control that is
implemented not via the stock implementation in libbonoboui,
inproc_control will be set to 0. However, when later
bonobo_control_frame_get_remote_window is called, it will barf because it
thinks the control is out-of-proc:

		if (plug && !frame->priv->inproc_control) {
			g_warning ("ARGH - serious ORB screwup");
			frame->priv->inproc_control = bonobo_plug_get_control (plug);

So I'm looking for suggestions :)


-- 
   .--= ULLA! =---------------------.   `We are not here to give users what
   \     http://cactus.rulez.org     \   they want'  -- RMS, at GUADEC 2001
    `---= cactus@cactus.rulez.org =---'
I am an expert in electricty. My father held the chair of applied electricity at the state prison.

_______________________________________________
gnome-components-list mailing list
gnome-components-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gnome-components-list
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic