[Xcb] icccm

Vincent Torri Vincent.Torri at iecn.u-nancy.fr
Sun Mar 20 02:51:06 PST 2005



On Sun, 20 Mar 2005, Jamey Sharp wrote:

> On Sun, Mar 20, 2005 at 09:58:06AM +0100, Vincent Torri wrote:
> > On Sun, 20 Mar 2005, Jamey Sharp wrote:
> > > On Sun, Mar 20, 2005 at 12:57:26AM +0100, Vincent Torri wrote:
> > > > Well, i've ported evas to xcb today and i have problems with the current
> > > > icccm code:
> > > > 1) i can't use SizeHintsFlags values, whereas i have to use them.
> > >
> > > I don't understand. Why do you have to use them?
> >
> > I'm not comfortable with icccm, but here is a snapshot of what i use :
> >
> >    szhints.flags = PMinSize | PMaxSize | PSize | USSize;
> >    szhints.min_width = szhints.max_width = win_w;
> >    szhints.min_height = szhints.max_height = win_h;
> >    SetWMNormalHints(conn, win, &szhints);
> >
> > is there another to do that ?
>
> Yes, there is. In fact, if the code in icccm.c is correct, then the
> above snippet is incorrect while looking reasonable, which is exactly
> why I picked this design... I don't think you're allowed to set both
> PSize and USSize at the same time, and I think if you specify either you
> have to set the width and height fields of the size hints.
>
> I intended this usage:
>
> 	SizeHints *szhints = AllocSizeHints();
> 	SizeHintsSetMinSize(szhints, win_w, win_h);
> 	SizeHintsSetMaxSize(szhints, win_w, win_h);
> 	SizeHintsSetSize(szhints, 0, win_w, win_h);
> 	SetWMNormalHints(conn, win, szhints);
> 	FreeSizeHints(szhints);
>
> (The 0 parameter to the SetSize call is because I'm assuming your window
> width and height are program-specified -- that is, the user-specified
> flag is false. This will set flags to include PSize, but not USSize.)

ok, thanks. I didn't understood at all how to use them

And for you information, i've finished xcb port of evas !

evas xlib : 2.893 (173.6 fps)
evas xcb  : 2.831 (169.9 fps)

i think that my code is maybe not good enough. maybe i could optimize it.

And as i think of it, here is a question : should i use XCBSync where
there was a XSynch ? or xcb allows to not use it in some cases ?

another question : is there a way to set class hints ?

thanks

Vincent


More information about the xcb mailing list