Re: binary compatibility considerations wrt multihead support



Erwann Chenede <Erwann Chenede Sun COM> writes:
> 
> While implementing multihead support I've added member variables 
> to various widgets struct (e.g. GtkWindow, GtkInvisible, etc.).
> These structs are opaque but I'm wondering if, for binary
> compatibility, some padding should be added to prevent
> any breakage if someone explicitly uses these struct size ?
> 
> AFAIK all the others objects I've modified are either fully internal
> to gdk or deprecated.

I would suggest, say you have:
 struct _GtkWindow {
   GdkDisplay *display;
 };

Let's go ahead and add:

 struct _GtkWindow {
   gpointer display;
 };

Then you have a slot "reserved" and we know its intended eventual
purpose.

> On the API compatibility side I wondering how to handle/modify
> GdkPointerHooks to support multihead.
> 
> At the moment we have GdkPointerHooks defining get_window_at_pointer
> function like this :
> GdkWindow* (*window_at_pointer) (gint            *win_x,
>                                  gint            *win_y);
> To make it work for multihead, I'll need sometime like this :
> GdkWindow* (*window_at_pointer) (GdkScreen       *screen,
> 				 gint            *win_x,
>                                  gint            *win_y);                                 
Yes, that looks necessary.

Havoc





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