Added XEmbed embedder support

Dimi Paun dimi at lattica.com
Sun Jun 19 22:05:08 CDT 2005


On Mon, 2005-06-20 at 00:05 +0200, Jacek Caban wrote:
> Hello.
> 
> This patch adds support for XEmbed embedder
> It implements most of it (remaining todos
> are listed in comments of xembed.c).

Cool stuff, I'm really excited about this work. 
Not to mention that this might prove useful outside
of the MSHTML context.

I will not comment on the fundamentals of
the approach, that's more Alexandre's alley, but
just a few style nits.


> +struct xembed_list
> +{
> +    struct xembed_list *next;
> +    HWND hwnd;
> +};

What about using the standard list from wine/list.h?

>  /* DIB Section sync state */
> @@ -590,6 +601,8 @@ enum x11drv_atoms
>      XATOM_XdndSelection,
>      XATOM_XdndTarget,
>      XATOM_XdndTypeList,
> +    XATOM__XEMBED,
> +    XATOM__XEMBED_INFO,
>      XATOM_WCF_DIB,
>      XATOM_image_gif,
>      XATOM_text_html,
> @@ -649,6 +662,10 @@ struct x11drv_win_data
>      struct dce *dce;            /* DCE for CS_OWNDC or CS_CLASSDC windows */
>      HBITMAP     hWMIconBitmap;
>      HBITMAP     hWMIconMask;
> +    union {
> +        struct xembed_list *list;
> +        ULONG_PTR cnt;
> +    } xembed;
>  };

Do we really need the union? We're not that hard pressed for
memory. What about just

@@ -649,6 +662,10 @@ struct x11drv_win_data
     struct dce *dce;            /* DCE for CS_OWNDC or CS_CLASSDC windows */
     HBITMAP     hWMIconBitmap;
     HBITMAP     hWMIconMask;
+    struct xembed_list *list;
+    ULONG_PTR cnt;
 };


Also, instead of having explicit tests like these:

> +    if(data->xembed.cnt)

Maybe we can have a 
  BOOL win_has_embedded_children(struct x11drv_win_data *data)

function to make it more explicit what we're testing for.

-- 
Dimi Paun <dimi at lattica.com>
Lattica, Inc.




More information about the wine-devel mailing list