<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<id>tag:old.nabble.com,2006:forum-1086</id>
	<title>Nabble - Free Desktop - xcb</title>
	<updated>2009-12-17T12:07:09Z</updated>
	<link rel="self" type="application/atom+xml" href="http://old.nabble.com/Free-Desktop---xcb-f1086.xml" />
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Free-Desktop---xcb-f1086.html" />
	<subtitle type="html">X C Binding and Xlib Compatibility Layer.</subtitle>
	
<entry>
	<id>tag:old.nabble.com,2006:post-26834160</id>
	<title>[ANNOUNCE] xpyb 1.2</title>
	<published>2009-12-17T12:07:09Z</published>
	<updated>2009-12-17T12:07:09Z</updated>
	<author>
		<name>Bugzilla from ewalsh@tycho.nsa.gov</name>
	</author>
	<content type="html">-----BEGIN PGP SIGNED MESSAGE-----
&lt;br&gt;Hash: SHA1
&lt;br&gt;&lt;br&gt;xpyb 1.2 is now available.
&lt;br&gt;&lt;br&gt;git tag 1.2
&lt;br&gt;&lt;br&gt;Changelog
&lt;br&gt;=========
&lt;br&gt;Adam Jackson (1):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; Multilib install fix
&lt;br&gt;&lt;br&gt;Aldo Cortesi (1):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; Fix scope error in generated definition of QueryTextExtents. (cherry picked from commit aa0fc9
&lt;br&gt;&lt;br&gt;Eamon F Walsh (2):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; Add a COPYING file.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; Add a copy of the documentation from the wiki.
&lt;br&gt;&lt;br&gt;Eamon Walsh (2):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; Install documentation and README files.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; Release xpyb 1.2
&lt;br&gt;&lt;br&gt;Download
&lt;br&gt;========
&lt;br&gt;&lt;a href=&quot;http://xcb.freedesktop.org/dist/xpyb-1.2.tar.gz&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xcb.freedesktop.org/dist/xpyb-1.2.tar.gz&lt;/a&gt;&lt;br&gt;md5: 9294aad6a72b1943fba351f64db088e7
&lt;br&gt;sha1: 184cb5194a38b01fcff2c5e19cc7f0b7baa06771
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://xcb.freedesktop.org/dist/xpyb-1.2.tar.bz2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://xcb.freedesktop.org/dist/xpyb-1.2.tar.bz2&lt;/a&gt;&lt;br&gt;md5: 953cd851d7ad3e59577062ca53c77f3d
&lt;br&gt;sha1: 1fbb6a128e8c46321e1a5197c6c55c0b884c28fa
&lt;br&gt;&lt;br&gt;- -- 
&lt;br&gt;Eamon Walsh 
&lt;br&gt;National Security Agency
&lt;br&gt;-----BEGIN PGP SIGNATURE-----
&lt;br&gt;Version: GnuPG v1.4.9 (GNU/Linux)
&lt;br&gt;&lt;br&gt;iEYEARECAAYFAksqjuIACgkQXKrSC8VF5s0ccwCfUwnSyGCSFPMtXCM+qrr/a4FL
&lt;br&gt;twIAn3yrfVZDR5bpoa2K6m0Cltji5pR+
&lt;br&gt;=p+mV
&lt;br&gt;-----END PGP SIGNATURE-----
&lt;br&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Xcb mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26834160&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Xcb@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://lists.freedesktop.org/mailman/listinfo/xcb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.freedesktop.org/mailman/listinfo/xcb&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-ANNOUNCE--xpyb-1.2-tp26834160p26834160.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26832232</id>
	<title>Re: EWMH API for XCB</title>
	<published>2009-12-17T09:56:05Z</published>
	<updated>2009-12-17T09:56:05Z</updated>
	<author>
		<name>Jamey Sharp</name>
	</author>
	<content type="html">On Wed, Dec 16, 2009 at 10:19 PM, Barton C Massey &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26832232&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;bart@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; I don't recall that there's anything in the X Protocol Specification
&lt;br&gt;&amp;gt; that prevents servers from hardwiring atoms other than the standard
&lt;br&gt;&amp;gt; ones. ... As long as the server correctly responds to intern_atom
&lt;br&gt;&amp;gt; requests for the hardwired atoms, you should be good.
&lt;br&gt;&lt;br&gt;That's right, as far as I know.
&lt;br&gt;&lt;br&gt;&amp;gt; Just the presence of an extension with the right version number (e.g.
&lt;br&gt;&amp;gt; a sufficiently advanced MISC extension) could indicate this. ... The
&lt;br&gt;&amp;gt; primary benefit would be killing one or more round trips...
&lt;br&gt;&lt;br&gt;As Rémi said, all those InternAtom requests are batched into a single
&lt;br&gt;round-trip, so you need something with zero round-trips to win on
&lt;br&gt;latency. A protocol version bump is the only way to get that, I think,
&lt;br&gt;although it could possibly be a minor version bump as Alan suggested.
&lt;br&gt;&lt;br&gt;The only advantage of an extension is a bandwidth savings, and the
&lt;br&gt;disadvantages are having to decide which atoms are worthy of being
&lt;br&gt;included in an extension, and having to take at least one extra
&lt;br&gt;round-trip if the extension isn't available. In fact I think an
&lt;br&gt;extension would require two round-trips even in the success case: one
&lt;br&gt;for QueryExtension and another for the extension's QueryVersion, or some
&lt;br&gt;similar second request to decide which atoms are available.
&lt;br&gt;&lt;br&gt;I've added notes at the X12 page about how I think I'd handle this.
&lt;br&gt;&lt;a href=&quot;http://www.x.org/wiki/Development/X12&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.x.org/wiki/Development/X12&lt;/a&gt;&lt;br&gt;&lt;br&gt;Jamey
&lt;br&gt;_______________________________________________
&lt;br&gt;Xcb mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26832232&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Xcb@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://lists.freedesktop.org/mailman/listinfo/xcb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.freedesktop.org/mailman/listinfo/xcb&lt;/a&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/EWMH-API-for-XCB-tp26760629p26832232.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26824915</id>
	<title>Re: EWMH API for XCB</title>
	<published>2009-12-17T00:47:17Z</published>
	<updated>2009-12-17T00:47:17Z</updated>
	<author>
		<name>Julien Danjou-2</name>
	</author>
	<content type="html">At 1260950948 time_t, Julien Danjou wrote:
&lt;br&gt;&amp;gt; As far as I understand, this is not possible until X12: atoms that are
&lt;br&gt;&amp;gt; predefined and atom that are not are a in the proto spec.
&lt;br&gt;&lt;br&gt;Answering to myself for future quote:
&lt;br&gt;EWMH is a bad standard and including its atoms as it part
&lt;br&gt;of X$whatever sounds like a bad idea in its current state.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Julien Danjou
&lt;br&gt;// ᐰ &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26824915&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;julien@...&lt;/a&gt;&amp;gt; &amp;nbsp; &lt;a href=&quot;http://julien.danjou.info&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://julien.danjou.info&lt;/a&gt;&lt;br&gt;// 9A0D 5FD9 EB42 22F6 8974 &amp;nbsp;C95C A462 B51E C2FE E5CD
&lt;br&gt;// Tomorrow I was nothing, yesterday I'll be.
&lt;br&gt;&lt;br /&gt; &lt;br /&gt;_______________________________________________
&lt;br&gt;Xcb mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26824915&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Xcb@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://lists.freedesktop.org/mailman/listinfo/xcb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.freedesktop.org/mailman/listinfo/xcb&lt;/a&gt;&lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://old.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;signature.asc&lt;/strong&gt; (205 bytes) &lt;a href=&quot;http://old.nabble.com/attachment/26824915/0/signature.asc&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/EWMH-API-for-XCB-tp26760629p26824915.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26824425</id>
	<title>Re: EWMH API for XCB</title>
	<published>2009-12-16T23:51:50Z</published>
	<updated>2009-12-16T23:51:50Z</updated>
	<author>
		<name>Rémi Denis-Courmont</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; Hello,
&lt;br&gt;&lt;br&gt;On Wed, 16 Dec 2009 22:19:11 -0800, Barton C Massey &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26824425&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;bart@...&lt;/a&gt;&amp;gt;
&lt;br&gt;wrote:
&lt;br&gt;&amp;gt; I don't recall that there's anything in the X Protocol
&lt;br&gt;&amp;gt; Specification that prevents servers from hardwiring atoms
&lt;br&gt;&amp;gt; other than the standard ones. &amp;nbsp;Just the presence of an
&lt;br&gt;&amp;gt; extension with the right version number (e.g. a sufficiently
&lt;br&gt;&amp;gt; advanced MISC extension) could indicate this.
&lt;br&gt;&lt;br&gt;Pardon my ignorance, but don't you need a round trip to check for an
&lt;br&gt;extension as well? Wouldn't that just replace one round trip for another
&lt;br&gt;one in the successful case, and add one extra round trip in the failure
&lt;br&gt;case?
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Rémi Denis-Courmont
&lt;br&gt;&lt;a href=&quot;http://www.remlab.net&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.remlab.net&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;http://fi.linkedin.com/in/remidenis&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://fi.linkedin.com/in/remidenis&lt;/a&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Xcb mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26824425&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Xcb@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://lists.freedesktop.org/mailman/listinfo/xcb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.freedesktop.org/mailman/listinfo/xcb&lt;/a&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/EWMH-API-for-XCB-tp26760629p26824425.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26823735</id>
	<title>Re: EWMH API for XCB</title>
	<published>2009-12-16T22:19:11Z</published>
	<updated>2009-12-16T22:19:11Z</updated>
	<author>
		<name>Barton C Massey</name>
	</author>
	<content type="html">I don't recall that there's anything in the X Protocol
&lt;br&gt;Specification that prevents servers from hardwiring atoms
&lt;br&gt;other than the standard ones. &amp;nbsp;Just the presence of an
&lt;br&gt;extension with the right version number (e.g. a sufficiently
&lt;br&gt;advanced MISC extension) could indicate this. &amp;nbsp;As long as
&lt;br&gt;the server correctly responds to intern_atom requests for
&lt;br&gt;the hardwired atoms, you should be good. &amp;nbsp;I think apps that
&lt;br&gt;find the right evidence would be well within their rights to
&lt;br&gt;assume that they didn't need to intern EWMH atoms by prior
&lt;br&gt;agreement, without moving to X12. &amp;nbsp;The primary benefit would
&lt;br&gt;be killing one or more round trips...
&lt;br&gt;&lt;br&gt;I'm sure I'm confused as usual, though.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Bart
&lt;br&gt;_______________________________________________
&lt;br&gt;Xcb mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26823735&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Xcb@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://lists.freedesktop.org/mailman/listinfo/xcb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.freedesktop.org/mailman/listinfo/xcb&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/EWMH-API-for-XCB-tp26760629p26823735.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26823421</id>
	<title>xpyb bub</title>
	<published>2009-12-16T21:23:06Z</published>
	<updated>2009-12-16T21:23:06Z</updated>
	<author>
		<name>Aldo Cortesi</name>
	</author>
	<content type="html">&lt;br&gt;Hi folks,
&lt;br&gt;&lt;br&gt;&lt;br&gt;I'm porting a window manger over from a Python Xlib implementation, to
&lt;br&gt;xpyb. I'm tripping over a bug in the generated definition for
&lt;br&gt;QueryTextExtents: 
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; def QueryTextExtents(self, font, string_len, string):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; buf = cStringIO.StringIO()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; buf.write(pack('x', ))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; buf.write(pack('B', (self.string_len &amp; 1)))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ^^^^^^^^^^^^^^^^^
&lt;br&gt;&lt;br&gt;The enclosing xprotoExtension object does not have a string_len attribute - the
&lt;br&gt;definition should look like this:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; def QueryTextExtents(self, font, string_len, string):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; buf = cStringIO.StringIO()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; buf.write(pack('x', ))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; buf.write(pack('B', (string_len &amp; 1)))
&lt;br&gt;&lt;br&gt;Below is a small patch that fixes this problem. It checks whether the
&lt;br&gt;enclosing object is a Request, and uses the appropriate scope. The
&lt;br&gt;patch can be made nicer by adding an is_request attribute to Request
&lt;br&gt;(similar to the existing is_reply attribute on Reply), so someone with
&lt;br&gt;commit to both the xpyb and xcbgen projects could clean it up a bit.
&lt;br&gt;&lt;br&gt;The patch can also be pulled from my repo here:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; git://github.com/cortesi/xpyb.git
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Regards,
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Aldo
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Aldo Cortesi
&lt;br&gt;www.nullcube.com
&lt;br&gt;+64 210 718 900
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;diff --git a/src/py_client.py b/src/py_client.py
&lt;br&gt;index c056fd6..c25e39d 100755
&lt;br&gt;--- a/src/py_client.py
&lt;br&gt;+++ b/src/py_client.py
&lt;br&gt;@@ -257,7 +257,11 @@ def _py_get_length_field(expr):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Otherwise, just reference the structure field directly.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;'''
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;if expr.lenfield_name != None:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return 'self.%s' % expr.lenfield_name
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# This would be nicer if Request had an is_request attribute...
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if hasattr(expr.parent.parent, &amp;quot;opcode&amp;quot;):
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return expr.lenfield_name
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return 'self.%s' % expr.lenfield_name
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;else:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return str(expr.nmemb)
&lt;br&gt;_______________________________________________
&lt;br&gt;Xcb mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26823421&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Xcb@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://lists.freedesktop.org/mailman/listinfo/xcb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.freedesktop.org/mailman/listinfo/xcb&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/xpyb-bub-tp26823421p26823421.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26816986</id>
	<title>Re: EWMH API for XCB</title>
	<published>2009-12-16T11:27:38Z</published>
	<updated>2009-12-16T11:27:38Z</updated>
	<author>
		<name>Vincent Torri-2</name>
	</author>
	<content type="html">&lt;br&gt;&lt;br&gt;On Wed, 16 Dec 2009, Arnaud Fontaine wrote:
&lt;br&gt;&lt;br&gt;&amp;gt; Ok, that's &amp;nbsp;unfortunate ;). So let's &amp;nbsp;wait for X12 &amp;nbsp;(which should happen
&lt;br&gt;&amp;gt; Somewhere in Time)...
&lt;br&gt;&lt;br&gt;Iron Maiden power !
&lt;br&gt;&lt;br&gt;Vincent
&lt;br&gt;&lt;br&gt;ps: sorry for the noise
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;I have just added an entry in the page pointed out
&lt;br&gt;&amp;gt; by Alan.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Cheers,
&lt;br&gt;&amp;gt; Arnaud
&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; Xcb mailing list
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816986&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Xcb@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://lists.freedesktop.org/mailman/listinfo/xcb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.freedesktop.org/mailman/listinfo/xcb&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;_______________________________________________
&lt;br&gt;Xcb mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816986&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Xcb@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://lists.freedesktop.org/mailman/listinfo/xcb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.freedesktop.org/mailman/listinfo/xcb&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/EWMH-API-for-XCB-tp26760629p26816986.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26816731</id>
	<title>Re: EWMH API for XCB</title>
	<published>2009-12-16T11:11:51Z</published>
	<updated>2009-12-16T11:11:51Z</updated>
	<author>
		<name>Arnaud Fontaine</name>
	</author>
	<content type="html">&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Jamey Sharp &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816731&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jamey@...&lt;/a&gt;&amp;gt; writes:
&lt;br&gt;&lt;br&gt;Hi,
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; Something could &amp;nbsp;be done with an extension, &amp;nbsp;though. &amp;nbsp;As a thought
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; experiment, imagine an extension &amp;nbsp;which, if present, means all the
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; EWMH atoms are in a &amp;nbsp;continguous range that you can query from the
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; extension. But there wouldn't be much value in that, I think.
&lt;br&gt;&lt;br&gt;I think so too that it would not be really valuable as an extension.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt;&amp;gt; Since it's &amp;nbsp;not an incompatible change, couldn't it &amp;nbsp;be done in a
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt;&amp;gt; R7 of the X11 protocol &amp;nbsp;spec? &amp;nbsp;(Even though we claim the katamari
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt;&amp;gt; is X11R7.x now, the last &amp;nbsp;X11 protocol spec update was R6.8, when
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt;&amp;gt; we defined the new constants &amp; address families for IPv6.)
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; &amp;nbsp; I'd forgotten the &amp;nbsp;X protocol &amp;nbsp;even *had* &amp;nbsp;a minor &amp;nbsp;version, but
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; that's still &amp;nbsp;set to 0. (See X_PROTOCOL_REVISION &amp;nbsp;in either X.h or
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; xcb.h.)
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; &amp;nbsp; I don't &amp;nbsp;think &amp;nbsp;there's any &amp;nbsp;infrastructure &amp;nbsp;for handling &amp;nbsp;minor
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; protocol &amp;nbsp;version bumps in any &amp;nbsp;of the client &amp;nbsp;libraries. It might
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; &amp;nbsp;have been &amp;nbsp;better to &amp;nbsp;do &amp;nbsp;a minor &amp;nbsp;version change &amp;nbsp;instead of &amp;nbsp;an
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; extension for &amp;nbsp;big-requests and for generic events, &amp;nbsp;but since the
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; facility is untested I &amp;nbsp;suppose we'll continue using extensions to
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; describe protocol changes.
&lt;br&gt;&lt;br&gt;Ok, that's &amp;nbsp;unfortunate ;). So let's &amp;nbsp;wait for X12 &amp;nbsp;(which should happen
&lt;br&gt;Somewhere in Time)... I have just added an entry in the page pointed out
&lt;br&gt;by Alan.
&lt;br&gt;&lt;br&gt;Cheers,
&lt;br&gt;Arnaud
&lt;br&gt;_______________________________________________
&lt;br&gt;Xcb mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816731&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Xcb@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://lists.freedesktop.org/mailman/listinfo/xcb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.freedesktop.org/mailman/listinfo/xcb&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/EWMH-API-for-XCB-tp26760629p26816731.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26816525</id>
	<title>Re: EWMH API for XCB</title>
	<published>2009-12-16T10:58:44Z</published>
	<updated>2009-12-16T10:58:44Z</updated>
	<author>
		<name>Arnaud Fontaine</name>
	</author>
	<content type="html">&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Jamey Sharp &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816525&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jamey@...&lt;/a&gt;&amp;gt; writes:
&lt;br&gt;&lt;br&gt;Hi,
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; A nice &amp;nbsp;way to test a multi-screen setup is &amp;nbsp;with Xnest or Xephyr,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; &amp;nbsp;which let &amp;nbsp;you &amp;nbsp;configure several &amp;nbsp;screens &amp;nbsp;that all &amp;nbsp;show up &amp;nbsp;as
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; windows on your real screen.
&lt;br&gt;&lt;br&gt;Yes, I usually Xephyr which is really useful for testing.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; Cool, I like this much better! I hope passing the screen number to
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; all those calls doesn't make using this code too painful?
&lt;br&gt;&lt;br&gt;I think that's ok as it's &amp;nbsp;just one parameter, and it couldn't have been
&lt;br&gt;fixed otherwise IMO.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; Minor further suggestions, in xcb_ewmh_init_atoms:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; You don't need to count the number of screens. You have a bunch of
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; options, but since you're &amp;nbsp;getting an iterator over them, I'd just
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; set ewmh-&amp;gt; nb_screens &amp;nbsp;= screen_iter.rem before using the iterator
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; &amp;nbsp;in &amp;nbsp; any &amp;nbsp;loops. &amp;nbsp; Or &amp;nbsp; if &amp;nbsp;you &amp;nbsp;want &amp;nbsp; your &amp;nbsp;code &amp;nbsp;to &amp;nbsp; be &amp;nbsp;more
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;self-explanatory, &amp;nbsp; &amp;nbsp; &amp;nbsp;set &amp;nbsp; &amp;nbsp; &amp;nbsp;ewmh-&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;nb_screens &amp;nbsp; &amp;nbsp; &amp;nbsp;=
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; xcb_setup_roots_length(setup).
&lt;br&gt;&lt;br&gt;You're right, &amp;nbsp;I used &amp;nbsp;these functions &amp;nbsp;quite a while &amp;nbsp;ago but &amp;nbsp;I didn't
&lt;br&gt;check when I wrote my code. Thanks much. I have committed it there[0]
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; Each entry in wm_cm_sn is used only once, so I'd declare it inside
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; the loop &amp;nbsp;as a single buffer that you reuse &amp;nbsp;each time, instead of
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; using C99's variable-length arrays (VLA). It's nice that C99 added
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; VLA &amp;nbsp;support, but you don't need &amp;nbsp;it here, and last &amp;nbsp;I checked GDB
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; did a bad job debugging functions with VLAs in them.
&lt;br&gt;&lt;br&gt;Thanks. I have committed there[1].
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt;&amp;gt; Hrm ok, oops... I have silently and discretly edited my previous
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt;&amp;gt; commit to hide that :).
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; Nicely done. ;-) Looks right to me now, and the history clearly
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; shows that it was right all along. ;-)
&lt;br&gt;&lt;br&gt;;)
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; I'm not as concerned as you are about consistency across different
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; projects, but I think there's &amp;nbsp;a lot of value in documenting &amp;quot;best
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; practices&amp;quot; &amp;nbsp;for setting up these projects. &amp;nbsp;I'd completely approve
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; of additions to the wiki &amp;nbsp;about these topics, but of course it's a
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; wiki, so you don't need my approval anyway. :-)
&lt;br&gt;&lt;br&gt;Thanks for &amp;nbsp;all the comments &amp;nbsp;again! I will &amp;nbsp;commit a patch &amp;nbsp;tomorrow to
&lt;br&gt;ship ewmh as its own library.
&lt;br&gt;&lt;br&gt;Cheers,
&lt;br&gt;Arnaud
&lt;br&gt;&lt;br&gt;[0] &lt;a href=&quot;http://cgit.freedesktop.org/~arnau/xcb-util/commit/?h=xcb-ewmh&amp;id=137eb9e775e920e217ed4ae70d69d1f482a4472a&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cgit.freedesktop.org/~arnau/xcb-util/commit/?h=xcb-ewmh&amp;id=137eb9e775e920e217ed4ae70d69d1f482a4472a&lt;/a&gt;&lt;br&gt;[1] &lt;a href=&quot;http://cgit.freedesktop.org/~arnau/xcb-util/commit/?h=xcb-ewmh&amp;id=39684ad478e0c557276f8ba14b830547d47cd876&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cgit.freedesktop.org/~arnau/xcb-util/commit/?h=xcb-ewmh&amp;id=39684ad478e0c557276f8ba14b830547d47cd876&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Xcb mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816525&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Xcb@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://lists.freedesktop.org/mailman/listinfo/xcb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.freedesktop.org/mailman/listinfo/xcb&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/EWMH-API-for-XCB-tp26760629p26816525.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26814359</id>
	<title>Re: EWMH API for XCB</title>
	<published>2009-12-16T08:48:51Z</published>
	<updated>2009-12-16T08:48:51Z</updated>
	<author>
		<name>Jamey Sharp</name>
	</author>
	<content type="html">On Wed, Dec 16, 2009 at 07:42:59AM -0800, Alan Coopersmith wrote:
&lt;br&gt;&amp;gt; Since it's not an incompatible change, couldn't it be done in a R7 of the
&lt;br&gt;&amp;gt; X11 protocol spec? &amp;nbsp; (Even though we claim the katamari is X11R7.x now,
&lt;br&gt;&amp;gt; the last X11 protocol spec update was R6.8, when we defined the new
&lt;br&gt;&amp;gt; constants &amp; address families for IPv6.)
&lt;br&gt;&lt;br&gt;I'd forgotten the X protocol even *had* a minor version, but that's
&lt;br&gt;still set to 0. (See X_PROTOCOL_REVISION in either X.h or xcb.h.)
&lt;br&gt;&lt;br&gt;I don't think there's any infrastructure for handling minor protocol
&lt;br&gt;version bumps in any of the client libraries. It might have been better
&lt;br&gt;to do a minor version change instead of an extension for big-requests
&lt;br&gt;and for generic events, but since the facility is untested I suppose
&lt;br&gt;we'll continue using extensions to describe protocol changes.
&lt;br&gt;&lt;br&gt;Jamey
&lt;br&gt;&lt;br /&gt; &lt;br /&gt;_______________________________________________
&lt;br&gt;Xcb mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26814359&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Xcb@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://lists.freedesktop.org/mailman/listinfo/xcb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.freedesktop.org/mailman/listinfo/xcb&lt;/a&gt;&lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://old.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;signature.asc&lt;/strong&gt; (205 bytes) &lt;a href=&quot;http://old.nabble.com/attachment/26814359/0/signature.asc&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/EWMH-API-for-XCB-tp26760629p26814359.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26813239</id>
	<title>Re: EWMH API for XCB</title>
	<published>2009-12-16T07:42:59Z</published>
	<updated>2009-12-16T07:42:59Z</updated>
	<author>
		<name>Alan Coopersmith</name>
	</author>
	<content type="html">Julien Danjou wrote:
&lt;br&gt;&amp;gt; At 1260922943 time_t, Arnaud Fontaine wrote:
&lt;br&gt;&amp;gt;&amp;gt; As &amp;nbsp;EWMH becomes &amp;nbsp;more and &amp;nbsp;more &amp;nbsp;popular, I &amp;nbsp;hope these &amp;nbsp;atoms will &amp;nbsp;be
&lt;br&gt;&amp;gt;&amp;gt; pre-defined like &amp;nbsp;ICCCM, as &amp;nbsp;it would mean &amp;nbsp;much less &amp;nbsp;code/requests. Is
&lt;br&gt;&amp;gt;&amp;gt; there any plan &amp;nbsp;for that? (I guess &amp;nbsp;it's not at all a &amp;nbsp;priority for now,
&lt;br&gt;&amp;gt;&amp;gt; but well, it would be much easier)
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; As far as I understand, this is not possible until X12: atoms that are
&lt;br&gt;&amp;gt; predefined and atom that are not are a in the proto spec.
&lt;br&gt;&lt;br&gt;Since it's not an incompatible change, couldn't it be done in a R7 of the
&lt;br&gt;X11 protocol spec? &amp;nbsp; (Even though we claim the katamari is X11R7.x now,
&lt;br&gt;the last X11 protocol spec update was R6.8, when we defined the new
&lt;br&gt;constants &amp; address families for IPv6.)
&lt;br&gt;&lt;br&gt;If not, the X12 wishlist is available for your wiki-editing pleasure:
&lt;br&gt;&amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.x.org/wiki/Development/X12&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.x.org/wiki/Development/X12&lt;/a&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Alan Coopersmith- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26813239&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;alan.coopersmith@...&lt;/a&gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Sun Microsystems, Inc. - X Window System Engineering
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Xcb mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26813239&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Xcb@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://lists.freedesktop.org/mailman/listinfo/xcb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.freedesktop.org/mailman/listinfo/xcb&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/EWMH-API-for-XCB-tp26760629p26813239.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26807712</id>
	<title>Re: EWMH API for XCB</title>
	<published>2009-12-16T00:18:49Z</published>
	<updated>2009-12-16T00:18:49Z</updated>
	<author>
		<name>Jamey Sharp</name>
	</author>
	<content type="html">On Wed, Dec 16, 2009 at 12:09 AM, Julien Danjou &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26807712&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;julien@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; At 1260922943 time_t, Arnaud Fontaine wrote:
&lt;br&gt;&amp;gt;&amp;gt; As  EWMH becomes  more and  more  popular, I  hope these  atoms will  be
&lt;br&gt;&amp;gt;&amp;gt; pre-defined like  ICCCM, as  it would mean  much less  code/requests. Is
&lt;br&gt;&amp;gt;&amp;gt; there any plan  for that? (I guess  it's not at all a  priority for now,
&lt;br&gt;&amp;gt;&amp;gt; but well, it would be much easier)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; As far as I understand, this is not possible until X12: atoms that are
&lt;br&gt;&amp;gt; predefined and atom that are not are a in the proto spec.
&lt;br&gt;&lt;br&gt;Oh yes, I knew there was something I'd forgotten to reply to. That's
&lt;br&gt;absolutely correct: The list of predefined atoms won't change until
&lt;br&gt;the hypothetical X12, which will also replace the root weave with
&lt;br&gt;ponies.
&lt;br&gt;&lt;br&gt;Something could be done with an extension, though. As a thought
&lt;br&gt;experiment, imagine an extension which, if present, means all the EWMH
&lt;br&gt;atoms are in a continguous range that you can query from the
&lt;br&gt;extension. But there wouldn't be much value in that, I think.
&lt;br&gt;&lt;br&gt;Jamey
&lt;br&gt;_______________________________________________
&lt;br&gt;Xcb mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26807712&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Xcb@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://lists.freedesktop.org/mailman/listinfo/xcb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.freedesktop.org/mailman/listinfo/xcb&lt;/a&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/EWMH-API-for-XCB-tp26760629p26807712.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26807601</id>
	<title>Re: EWMH API for XCB</title>
	<published>2009-12-16T00:09:08Z</published>
	<updated>2009-12-16T00:09:08Z</updated>
	<author>
		<name>Julien Danjou-2</name>
	</author>
	<content type="html">At 1260922943 time_t, Arnaud Fontaine wrote:
&lt;br&gt;&amp;gt; As &amp;nbsp;EWMH becomes &amp;nbsp;more and &amp;nbsp;more &amp;nbsp;popular, I &amp;nbsp;hope these &amp;nbsp;atoms will &amp;nbsp;be
&lt;br&gt;&amp;gt; pre-defined like &amp;nbsp;ICCCM, as &amp;nbsp;it would mean &amp;nbsp;much less &amp;nbsp;code/requests. Is
&lt;br&gt;&amp;gt; there any plan &amp;nbsp;for that? (I guess &amp;nbsp;it's not at all a &amp;nbsp;priority for now,
&lt;br&gt;&amp;gt; but well, it would be much easier)
&lt;br&gt;&lt;br&gt;As far as I understand, this is not possible until X12: atoms that are
&lt;br&gt;predefined and atom that are not are a in the proto spec.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Julien Danjou
&lt;br&gt;// ᐰ &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26807601&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;julien@...&lt;/a&gt;&amp;gt; &amp;nbsp; &lt;a href=&quot;http://julien.danjou.info&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://julien.danjou.info&lt;/a&gt;&lt;br&gt;// 9A0D 5FD9 EB42 22F6 8974 &amp;nbsp;C95C A462 B51E C2FE E5CD
&lt;br&gt;// My root password is
&lt;br&gt;&lt;br /&gt; &lt;br /&gt;_______________________________________________
&lt;br&gt;Xcb mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26807601&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Xcb@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://lists.freedesktop.org/mailman/listinfo/xcb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.freedesktop.org/mailman/listinfo/xcb&lt;/a&gt;&lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://old.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;signature.asc&lt;/strong&gt; (205 bytes) &lt;a href=&quot;http://old.nabble.com/attachment/26807601/0/signature.asc&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/EWMH-API-for-XCB-tp26760629p26807601.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26805787</id>
	<title>Re: EWMH API for XCB</title>
	<published>2009-12-15T19:34:35Z</published>
	<updated>2009-12-15T19:34:35Z</updated>
	<author>
		<name>Jamey Sharp</name>
	</author>
	<content type="html">On Wed, Dec 16, 2009 at 01:14:47AM +0100, Arnaud Fontaine wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Jamey Sharp &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26805787&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jamey@...&lt;/a&gt;&amp;gt; writes:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;gt;&amp;gt; I'm a bit confused by this macro and does not understand anything
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;gt;&amp;gt; &amp;nbsp;besides of &amp;nbsp;the basic &amp;nbsp;principle. &amp;nbsp;I was &amp;nbsp;thinking about &amp;nbsp;simply
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;gt;&amp;gt; adding an assertion otherwise.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;gt; Absolutely, that would be better than nothing.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Well, I think &amp;nbsp;it would be better to &amp;nbsp;not make it static as &amp;nbsp;it could be
&lt;br&gt;&amp;gt; useful to any program implementing extensions to EWMH.
&lt;br&gt;&lt;br&gt;That makes sense.
&lt;br&gt;&lt;br&gt;&amp;gt; Therefore, I have just added an assert()[0]. I think it's ok this way,
&lt;br&gt;&amp;gt; isn't it?
&lt;br&gt;&lt;br&gt;Josh's explanation of the difficulties with asserts aside, it's fine
&lt;br&gt;with me. :-)
&lt;br&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;gt; &amp;nbsp;I'm not talking &amp;nbsp;about different &amp;nbsp;connections. I'm &amp;nbsp;talking about
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;gt; &amp;nbsp;different screens &amp;nbsp;on &amp;nbsp;the &amp;nbsp;same connection. &amp;nbsp;All &amp;nbsp;the atoms &amp;nbsp;are
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;gt; guaranteed to be the same in that case, except for _NET_WM_CM_Sn.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Oh &amp;nbsp;ok, I &amp;nbsp;didn't think &amp;nbsp;at all &amp;nbsp;about that &amp;nbsp;as I &amp;nbsp;have never &amp;nbsp;used such
&lt;br&gt;&amp;gt; configuration.
&lt;br&gt;&lt;br&gt;A nice way to test a multi-screen setup is with Xnest or Xephyr, which
&lt;br&gt;let you configure several screens that all show up as windows on your
&lt;br&gt;real screen.
&lt;br&gt;&lt;br&gt;&amp;gt; Therefore, I removed root member of xcb_ewmh_connection_t
&lt;br&gt;&amp;gt; in favor &amp;nbsp;of screens &amp;nbsp;and nb_screens. &amp;nbsp;I &amp;nbsp;added a parameter, &amp;nbsp;namely the
&lt;br&gt;&amp;gt; screen &amp;nbsp;number, to all &amp;nbsp;the functions &amp;nbsp;using the &amp;nbsp;root window. &amp;nbsp; Also, I
&lt;br&gt;&amp;gt; modified _NET_WM_CM_Sn &amp;nbsp;which is now &amp;nbsp;per-screen (xcb_atom_t *). &amp;nbsp;I have
&lt;br&gt;&amp;gt; committed it there[1].
&lt;br&gt;&lt;br&gt;Cool, I like this much better! I hope passing the screen number to all
&lt;br&gt;those calls doesn't make using this code too painful?
&lt;br&gt;&lt;br&gt;Minor further suggestions, in xcb_ewmh_init_atoms:
&lt;br&gt;&lt;br&gt;You don't need to count the number of screens. You have a bunch of
&lt;br&gt;options, but since you're getting an iterator over them, I'd just set
&lt;br&gt;ewmh-&amp;gt;nb_screens = screen_iter.rem before using the iterator in any
&lt;br&gt;loops. Or if you want your code to be more self-explanatory, set
&lt;br&gt;ewmh-&amp;gt;nb_screens = xcb_setup_roots_length(setup).
&lt;br&gt;&lt;br&gt;Each entry in wm_cm_sn is used only once, so I'd declare it inside the
&lt;br&gt;loop as a single buffer that you reuse each time, instead of using C99's
&lt;br&gt;variable-length arrays (VLA). It's nice that C99 added VLA support, but
&lt;br&gt;you don't need it here, and last I checked GDB did a bad job debugging
&lt;br&gt;functions with VLAs in them.
&lt;br&gt;&lt;br&gt;&amp;gt; Hrm ok, oops... I have &amp;nbsp;silently and discretly edited my previous commit
&lt;br&gt;&amp;gt; to hide that :).
&lt;br&gt;&lt;br&gt;Nicely done. ;-) Looks right to me now, and the history clearly shows
&lt;br&gt;that it was right all along. ;-)
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;gt;&amp;gt; &amp;gt; Do you really want it in the xcb-util bundle though?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I think it &amp;nbsp;does make sense and &amp;nbsp;I will put it in &amp;nbsp;a separate repository
&lt;br&gt;&amp;gt; then. However, I think it would &amp;nbsp;be good to share at least configure.ac,
&lt;br&gt;&amp;gt; coding style (I &amp;nbsp;have not found anything like that &amp;nbsp;except by looking at
&lt;br&gt;&amp;gt; existing &amp;nbsp;code but &amp;nbsp;it's &amp;nbsp;pretty unconsistent &amp;nbsp;ATM &amp;nbsp;AFAIK), and &amp;nbsp;Doxygen
&lt;br&gt;&amp;gt; configuration in &amp;nbsp;order to &amp;nbsp;have something consistent &amp;nbsp;across libraries,
&lt;br&gt;&amp;gt; even though I'm &amp;nbsp;not sure how it could be achieve. &amp;nbsp; Maybe a document on
&lt;br&gt;&amp;gt; the &amp;nbsp;wiki giving &amp;nbsp;some templates &amp;nbsp;such as &amp;nbsp;Doxygen and &amp;nbsp;configure.ac and
&lt;br&gt;&amp;gt; another one for the coding style as it's more general?
&lt;/div&gt;&lt;/div&gt;I'm not as concerned as you are about consistency across different
&lt;br&gt;projects, but I think there's a lot of value in documenting &amp;quot;best
&lt;br&gt;practices&amp;quot; for setting up these projects. I'd completely approve of
&lt;br&gt;additions to the wiki about these topics, but of course it's a wiki, so
&lt;br&gt;you don't need my approval anyway. :-)
&lt;br&gt;&lt;br&gt;&amp;gt; Thank you &amp;nbsp;very much for all &amp;nbsp;your comments. The code &amp;nbsp;looks much better
&lt;br&gt;&amp;gt; now!
&lt;br&gt;&lt;br&gt;Thanks for your hard work. :-) This is cool!
&lt;br&gt;&lt;br&gt;Jamey
&lt;br&gt;&lt;br /&gt; &lt;br /&gt;_______________________________________________
&lt;br&gt;Xcb mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26805787&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Xcb@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://lists.freedesktop.org/mailman/listinfo/xcb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.freedesktop.org/mailman/listinfo/xcb&lt;/a&gt;&lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://old.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;signature.asc&lt;/strong&gt; (205 bytes) &lt;a href=&quot;http://old.nabble.com/attachment/26805787/0/signature.asc&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/EWMH-API-for-XCB-tp26760629p26805787.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26804606</id>
	<title>Re: EWMH API for XCB</title>
	<published>2009-12-15T17:01:41Z</published>
	<updated>2009-12-15T17:01:41Z</updated>
	<author>
		<name>Arnaud Fontaine</name>
	</author>
	<content type="html">&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Josh Triplett &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26804606&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;josh@...&lt;/a&gt;&amp;gt; writes:
&lt;br&gt;&lt;br&gt;Hi,
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt;&amp;gt; Well, &amp;nbsp;I think it &amp;nbsp;would be &amp;nbsp;better to not &amp;nbsp;make it static &amp;nbsp;as it
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt;&amp;gt; &amp;nbsp;could &amp;nbsp;be &amp;nbsp;useful &amp;nbsp;to &amp;nbsp;any program &amp;nbsp;implementing &amp;nbsp;extensions &amp;nbsp;to
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt;&amp;gt; EWMH. Therefore, &amp;nbsp;I have just added an &amp;nbsp;assert()[0]. I think it's
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt;&amp;gt; ok this way, isn't it?
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; &amp;nbsp;In XCB, &amp;nbsp;we've &amp;nbsp;had &amp;nbsp;some bad &amp;nbsp;experiences &amp;nbsp;with asserts, &amp;nbsp;simply
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; &amp;nbsp;because end-users &amp;nbsp;notice them &amp;nbsp;and blame &amp;nbsp;XCB rather &amp;nbsp;than buggy
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; &amp;nbsp;applications. :) Detecting &amp;nbsp;problems at &amp;nbsp;compile time &amp;nbsp;seem ideal
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; when you can. &amp;nbsp;This &amp;nbsp;case seems somewhat less problematic since an
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; &amp;nbsp;application &amp;nbsp;would &amp;nbsp;have &amp;nbsp;to &amp;nbsp;explicitly use &amp;nbsp;your &amp;nbsp;new &amp;nbsp;library;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; however, I'd still suggest &amp;nbsp;doing as much checking as you possibly
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; can at compile time.
&lt;br&gt;&lt;br&gt;Yes, it makes sense, I didn't &amp;nbsp;think about that point. Could you suggest
&lt;br&gt;a patch as I don't really know how to do it properly? Thanks much.
&lt;br&gt;&lt;br&gt;Cheers,
&lt;br&gt;Arnaud
&lt;br&gt;_______________________________________________
&lt;br&gt;Xcb mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26804606&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Xcb@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://lists.freedesktop.org/mailman/listinfo/xcb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.freedesktop.org/mailman/listinfo/xcb&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/EWMH-API-for-XCB-tp26760629p26804606.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26804783</id>
	<title>Re: EWMH API for XCB</title>
	<published>2009-12-15T16:51:25Z</published>
	<updated>2009-12-15T16:51:25Z</updated>
	<author>
		<name>Josh Triplett-9</name>
	</author>
	<content type="html">On Wed, Dec 16, 2009 at 01:14:47AM +0100, Arnaud Fontaine wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Jamey Sharp &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26804783&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jamey@...&lt;/a&gt;&amp;gt; writes:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;gt; Yeah, the data_len parameter in xcb_ewmh_send_client_message isn't
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;gt; a constant, &amp;nbsp;so it can't be checked at compile &amp;nbsp;time. I meant that
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;gt; you'd add something like this in every caller:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;gt; BUILD_BUG_ON(sizeof data &amp;gt; sizeof ((xcb_client_message_event_t *)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;gt; 0)-&amp;gt;data);
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;gt; Unlike an &amp;nbsp;assertion, this doesn't generate any &amp;nbsp;code; instead the
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;gt; compiler &amp;nbsp;can prove &amp;nbsp;that all &amp;nbsp;those calls are &amp;nbsp;safe, but &amp;nbsp;only if
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;gt; you've &amp;nbsp;checked all the callers, &amp;nbsp;which is why &amp;nbsp;I suggested making
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;gt; &amp;nbsp; &amp;nbsp; this &amp;nbsp; &amp;nbsp;function &amp;nbsp; &amp;nbsp;static. &amp;nbsp; &amp;nbsp; Also, &amp;nbsp; &amp;nbsp;you &amp;nbsp; &amp;nbsp; could &amp;nbsp; &amp;nbsp;wrap
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;gt; xcb_ewmh_send_client_message up in a &amp;nbsp;macro that does this, if you
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;gt; &amp;nbsp;wanted.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;gt;&amp;gt; I'm a bit confused by this macro and does not understand anything
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;gt;&amp;gt; &amp;nbsp;besides of &amp;nbsp;the basic &amp;nbsp;principle. &amp;nbsp;I was &amp;nbsp;thinking about &amp;nbsp;simply
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;gt;&amp;gt; adding an assertion otherwise.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;gt; Absolutely, that would be better than nothing.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Well, I think &amp;nbsp;it would be better to &amp;nbsp;not make it static as &amp;nbsp;it could be
&lt;br&gt;&amp;gt; useful to any program implementing extensions to EWMH. Therefore, I have
&lt;br&gt;&amp;gt; just added an assert()[0]. I think it's ok this way, isn't it?
&lt;/div&gt;&lt;br&gt;In XCB, we've had some bad experiences with asserts, simply because
&lt;br&gt;end-users notice them and blame XCB rather than buggy applications. :)
&lt;br&gt;Detecting problems at compile time seem ideal when you can. &amp;nbsp;This case
&lt;br&gt;seems somewhat less problematic since an application would have to
&lt;br&gt;explicitly use your new library; however, I'd still suggest doing as
&lt;br&gt;much checking as you possibly can at compile time.
&lt;br&gt;&lt;br&gt;- Josh Triplett
&lt;br&gt;_______________________________________________
&lt;br&gt;Xcb mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26804783&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Xcb@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://lists.freedesktop.org/mailman/listinfo/xcb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.freedesktop.org/mailman/listinfo/xcb&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/EWMH-API-for-XCB-tp26760629p26804783.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26804292</id>
	<title>Re: EWMH API for XCB</title>
	<published>2009-12-15T16:22:23Z</published>
	<updated>2009-12-15T16:22:23Z</updated>
	<author>
		<name>Arnaud Fontaine</name>
	</author>
	<content type="html">&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Barton C Massey &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26804292&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;bart@...&lt;/a&gt;&amp;gt; writes:
&lt;br&gt;&lt;br&gt;Hi,
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; I understand. &amp;nbsp; But shouldn't we just use the &amp;nbsp;Python thing on XML
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; &amp;nbsp;instead of &amp;nbsp;the m4 &amp;nbsp;thing on, &amp;nbsp;well, m4 &amp;nbsp;to generate &amp;nbsp;the &amp;nbsp;C code
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; anyway, is all I'm saying?
&lt;br&gt;&lt;br&gt;Well, &amp;nbsp;as Jamey &amp;nbsp;explained, &amp;nbsp;it's not &amp;nbsp;really &amp;nbsp;possible to &amp;nbsp;use XML &amp;nbsp;for
&lt;br&gt;that. &amp;nbsp;However, I didn't &amp;nbsp;use m4 &amp;nbsp;a lot &amp;nbsp;as I &amp;nbsp;think it &amp;nbsp;becomes quickly
&lt;br&gt;unreadable, thus not easily maintainable, but that's just my opinion ;).
&lt;br&gt;&lt;br&gt;As &amp;nbsp;EWMH becomes &amp;nbsp;more and &amp;nbsp;more &amp;nbsp;popular, I &amp;nbsp;hope these &amp;nbsp;atoms will &amp;nbsp;be
&lt;br&gt;pre-defined like &amp;nbsp;ICCCM, as &amp;nbsp;it would mean &amp;nbsp;much less &amp;nbsp;code/requests. Is
&lt;br&gt;there any plan &amp;nbsp;for that? (I guess &amp;nbsp;it's not at all a &amp;nbsp;priority for now,
&lt;br&gt;but well, it would be much easier)
&lt;br&gt;&lt;br&gt;Arnaud
&lt;br&gt;_______________________________________________
&lt;br&gt;Xcb mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26804292&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Xcb@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://lists.freedesktop.org/mailman/listinfo/xcb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.freedesktop.org/mailman/listinfo/xcb&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/EWMH-API-for-XCB-tp26760629p26804292.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26804231</id>
	<title>Re: EWMH API for XCB</title>
	<published>2009-12-15T16:14:47Z</published>
	<updated>2009-12-15T16:14:47Z</updated>
	<author>
		<name>Arnaud Fontaine</name>
	</author>
	<content type="html">&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Jamey Sharp &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26804231&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jamey@...&lt;/a&gt;&amp;gt; writes:
&lt;br&gt;&lt;br&gt;Hi,
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; Yeah, the data_len parameter in xcb_ewmh_send_client_message isn't
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; a constant, &amp;nbsp;so it can't be checked at compile &amp;nbsp;time. I meant that
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; you'd add something like this in every caller:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; BUILD_BUG_ON(sizeof data &amp;gt; sizeof ((xcb_client_message_event_t *)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; 0)-&amp;gt;data);
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; Unlike an &amp;nbsp;assertion, this doesn't generate any &amp;nbsp;code; instead the
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; compiler &amp;nbsp;can prove &amp;nbsp;that all &amp;nbsp;those calls are &amp;nbsp;safe, but &amp;nbsp;only if
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; you've &amp;nbsp;checked all the callers, &amp;nbsp;which is why &amp;nbsp;I suggested making
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; &amp;nbsp; &amp;nbsp; this &amp;nbsp; &amp;nbsp;function &amp;nbsp; &amp;nbsp;static. &amp;nbsp; &amp;nbsp; Also, &amp;nbsp; &amp;nbsp;you &amp;nbsp; &amp;nbsp; could &amp;nbsp; &amp;nbsp;wrap
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; xcb_ewmh_send_client_message up in a &amp;nbsp;macro that does this, if you
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; &amp;nbsp;wanted.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt;&amp;gt; I'm a bit confused by this macro and does not understand anything
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt;&amp;gt; &amp;nbsp;besides of &amp;nbsp;the basic &amp;nbsp;principle. &amp;nbsp;I was &amp;nbsp;thinking about &amp;nbsp;simply
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt;&amp;gt; adding an assertion otherwise.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; Absolutely, that would be better than nothing.
&lt;br&gt;&lt;br&gt;Well, I think &amp;nbsp;it would be better to &amp;nbsp;not make it static as &amp;nbsp;it could be
&lt;br&gt;useful to any program implementing extensions to EWMH. Therefore, I have
&lt;br&gt;just added an assert()[0]. I think it's ok this way, isn't it?
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; &amp;nbsp;I'm not talking &amp;nbsp;about different &amp;nbsp;connections. I'm &amp;nbsp;talking about
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; &amp;nbsp;different screens &amp;nbsp;on &amp;nbsp;the &amp;nbsp;same connection. &amp;nbsp;All &amp;nbsp;the atoms &amp;nbsp;are
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; guaranteed to be the same in that case, except for _NET_WM_CM_Sn.
&lt;br&gt;&lt;br&gt;Oh &amp;nbsp;ok, I &amp;nbsp;didn't think &amp;nbsp;at all &amp;nbsp;about that &amp;nbsp;as I &amp;nbsp;have never &amp;nbsp;used such
&lt;br&gt;configuration. Therefore, I removed root member of xcb_ewmh_connection_t
&lt;br&gt;in favor &amp;nbsp;of screens &amp;nbsp;and nb_screens. &amp;nbsp;I &amp;nbsp;added a parameter, &amp;nbsp;namely the
&lt;br&gt;screen &amp;nbsp;number, to all &amp;nbsp;the functions &amp;nbsp;using the &amp;nbsp;root window. &amp;nbsp; Also, I
&lt;br&gt;modified _NET_WM_CM_Sn &amp;nbsp;which is now &amp;nbsp;per-screen (xcb_atom_t *). &amp;nbsp;I have
&lt;br&gt;committed it there[1].
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; The &amp;nbsp;patch looks good to me, &amp;nbsp;except that I think &amp;nbsp;it's wrong. :-)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; You're assigning an XID &amp;nbsp;to a dereferenced pointer of type &amp;quot;char&amp;quot;,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; &amp;nbsp;as far as &amp;nbsp;I can &amp;nbsp;tell. I &amp;nbsp;think you &amp;nbsp;need one &amp;nbsp;more cast &amp;nbsp;on the
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; left-hand side, something like this:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; *(xcb_atom_t *) ((char *) ewmh + ewmh_atoms[i].m_offset) =
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; reply-&amp;gt;atom;
&lt;br&gt;&lt;br&gt;Hrm ok, oops... I have &amp;nbsp;silently and discretly edited my previous commit
&lt;br&gt;to hide that :).
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt;&amp;gt; That's why I have only defined accessors for
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt;&amp;gt; _NET_WM_SYNC_REQUEST_COUNTER.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; Yes, all your functions are named *_request_counter, but they all
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; use
&lt;br&gt;&amp;nbsp; &amp;nbsp; ewmh-&amp;gt; _NET_WM_SYNC_REQUEST. Isn't that wrong?
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; And the comment header still has that typo of missing a &amp;quot;T&amp;quot;. ;-)
&lt;br&gt;&lt;br&gt;I did not see it at all. Thanks much! I have just committed it[1].
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt;&amp;gt; &amp;gt; Do you really want it in the xcb-util bundle though?
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt;&amp;gt; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt;&amp;gt; Well, I think it's better to keep it within xcb-util.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; &amp;nbsp;I'd be &amp;nbsp;interested in &amp;nbsp;hearing &amp;nbsp;your thoughts &amp;nbsp;on the &amp;nbsp;discussion
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; Julien and I had today on this topic.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; &amp;nbsp;I &amp;nbsp;think the &amp;nbsp;history &amp;nbsp;of &amp;nbsp;free &amp;nbsp;software contradicts &amp;nbsp;this. &amp;nbsp;For
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; example, bundling &amp;nbsp;lots of code into libX11 &amp;nbsp;certainly didn't help
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; &amp;nbsp;it be &amp;nbsp;maintained any &amp;nbsp;better. :-) &amp;nbsp;Conversely, lots &amp;nbsp;of projects
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; &amp;nbsp;abandoned &amp;nbsp;by their &amp;nbsp;original &amp;nbsp;authors &amp;nbsp;have &amp;nbsp;been picked &amp;nbsp;up &amp;nbsp;by
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; &amp;nbsp;somebody else &amp;nbsp;who needed &amp;nbsp;them, despite &amp;nbsp;not being &amp;nbsp;bundled with
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; anything else.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt;&amp;gt; Moreover, &amp;nbsp;xcb-util/icccm and xcb-util/image are &amp;nbsp;already used in
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt;&amp;gt; other projects, but are still parts of xcb-util.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; Yes, so are aux, and render-util I think, and awesome is using the
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; property and event libraries &amp;nbsp;apparently. And yes, I'd like all of
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; those &amp;nbsp;split out, &amp;nbsp;but just because &amp;nbsp;that hasn't &amp;nbsp;happened doesn't
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; mean we should add anything more to the mess.
&lt;br&gt;&lt;br&gt;I think it &amp;nbsp;does make sense and &amp;nbsp;I will put it in &amp;nbsp;a separate repository
&lt;br&gt;then. However, I think it would &amp;nbsp;be good to share at least configure.ac,
&lt;br&gt;coding style (I &amp;nbsp;have not found anything like that &amp;nbsp;except by looking at
&lt;br&gt;existing &amp;nbsp;code but &amp;nbsp;it's &amp;nbsp;pretty unconsistent &amp;nbsp;ATM &amp;nbsp;AFAIK), and &amp;nbsp;Doxygen
&lt;br&gt;configuration in &amp;nbsp;order to &amp;nbsp;have something consistent &amp;nbsp;across libraries,
&lt;br&gt;even though I'm &amp;nbsp;not sure how it could be achieve. &amp;nbsp; Maybe a document on
&lt;br&gt;the &amp;nbsp;wiki giving &amp;nbsp;some templates &amp;nbsp;such as &amp;nbsp;Doxygen and &amp;nbsp;configure.ac and
&lt;br&gt;another one for the coding style as it's more general?
&lt;br&gt;&lt;br&gt;Thank you &amp;nbsp;very much for all &amp;nbsp;your comments. The code &amp;nbsp;looks much better
&lt;br&gt;now!
&lt;br&gt;&lt;br&gt;Cheers,
&lt;br&gt;Arnaud
&lt;br&gt;&lt;br&gt;[0] &lt;a href=&quot;http://cgit.freedesktop.org/~arnau/xcb-util/commit/?h=xcb-ewmh&amp;id=d9fa9092f0b7dadef0797a01b301605c7d35984e&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cgit.freedesktop.org/~arnau/xcb-util/commit/?h=xcb-ewmh&amp;id=d9fa9092f0b7dadef0797a01b301605c7d35984e&lt;/a&gt;&lt;br&gt;[1] &lt;a href=&quot;http://cgit.freedesktop.org/~arnau/xcb-util/commit/?h=xcb-ewmh&amp;id=d301f9210a3594829451e4559644747c1f88444a&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cgit.freedesktop.org/~arnau/xcb-util/commit/?h=xcb-ewmh&amp;id=d301f9210a3594829451e4559644747c1f88444a&lt;/a&gt;&lt;br&gt;[2] &lt;a href=&quot;http://cgit.freedesktop.org/~arnau/xcb-util/commit/?h=xcb-ewmh&amp;id=9e76acc5599026d22c329e10c4e9a14ada90900d&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cgit.freedesktop.org/~arnau/xcb-util/commit/?h=xcb-ewmh&amp;id=9e76acc5599026d22c329e10c4e9a14ada90900d&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Xcb mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26804231&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Xcb@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://lists.freedesktop.org/mailman/listinfo/xcb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.freedesktop.org/mailman/listinfo/xcb&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/EWMH-API-for-XCB-tp26760629p26804231.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26794935</id>
	<title>Re: POSIX threads cancellation / VLC</title>
	<published>2009-12-15T00:23:44Z</published>
	<updated>2009-12-15T00:23:44Z</updated>
	<author>
		<name>Josh Triplett-9</name>
	</author>
	<content type="html">On Tue, Dec 15, 2009 at 07:54:13AM +0100, Rémi Denis-Courmont wrote:
&lt;br&gt;&amp;gt; I am happy to announce that VLC media player (what will become vesion
&lt;br&gt;&amp;gt; 1.1.0) has been almost completely ported to XCB. Namely, the X11 and XVideo
&lt;br&gt;&amp;gt; outputs, the screen capture input, the (new) screen capture wizard, the
&lt;br&gt;&amp;gt; windowing code, the &amp;quot;global hotkeys&amp;quot;, and the seldom used panaromic video
&lt;br&gt;&amp;gt; filter are now purely XCB-based. Also, the GLX output was rewritten to
&lt;br&gt;&amp;gt; X11-XCB. This just leave the Qt4 UI, the VAAPI bindings to libavcodec, and
&lt;br&gt;&amp;gt; the skin engine using Xlib.
&lt;br&gt;&lt;br&gt;Incredibly awesome! &amp;nbsp;Thank you for telling us about this!
&lt;br&gt;&lt;br&gt;&amp;gt; The main driver for XCB was saner error/event handling and thread safety.
&lt;br&gt;&amp;gt; It was practically impossible to use Xlib properly with the multi-thread
&lt;br&gt;&amp;gt; and plugin-based architecture that VLC has. Also, this was a good
&lt;br&gt;&amp;gt; opportunity to rebuild our X11 competence and refactor the aging code.
&lt;br&gt;&lt;br&gt;Glad to hear you've had a good experience with those particular pieces
&lt;br&gt;of XCB; we spent a disproportionately large amount of effort getting
&lt;br&gt;those pieces *right*, making it really gratifying to hear that we
&lt;br&gt;succeeded. &amp;nbsp;Thank you!
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Anyway. VLC uses *synchronous* thread cancellation in many code paths, and
&lt;br&gt;&amp;gt; our XCB event handling looks like:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; for (;;)
&lt;br&gt;&amp;gt; {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; poll(xcb_fd);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; disable_cancel();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; handle_xcb_events...;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; enable_cancel();
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; This is not terribly efficient. We could use XCB in blocking mode, but we
&lt;br&gt;&amp;gt; need to catch the cancel signal from a safe place. So I'm wondering if
&lt;br&gt;&amp;gt; handling thread cancellation directly inside XCB would be acceptable.
&lt;br&gt;&amp;gt; Mostly, this means installing cleanup handlers in strategic places, and
&lt;br&gt;&amp;gt; disabling cancellation in some other ones in the core XCB code.
&lt;/div&gt;&lt;br&gt;Handling cancellation seems fairly reasonable. &amp;nbsp;We've used pthreads in
&lt;br&gt;XCB, so that makes it fairly reasonable that we ought to support
&lt;br&gt;the use of pthreads functionality, including cancellation.
&lt;br&gt;&lt;br&gt;&amp;gt; I had a partial patch for this, but I wouldn't bother rebasing it you guys
&lt;br&gt;&amp;gt; don't like the idea at all.
&lt;br&gt;&lt;br&gt;I'd like to see the patch. &amp;nbsp;Please do go ahead and send it. &amp;nbsp;You don't
&lt;br&gt;necessarily have to go to the trouble of rebasing it before sending it,
&lt;br&gt;if you've written it against a relatively recent XCB. &amp;nbsp;Go ahead and send
&lt;br&gt;it, tell us what version it applies to, and we can evaluate it enough to
&lt;br&gt;get the idea and figure out if you should go ahead and rebase.
&lt;br&gt;&lt;br&gt;- Josh Tiplett
&lt;br&gt;_______________________________________________
&lt;br&gt;Xcb mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26794935&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Xcb@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://lists.freedesktop.org/mailman/listinfo/xcb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.freedesktop.org/mailman/listinfo/xcb&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/POSIX-threads-cancellation---VLC-tp26790366p26794935.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26790677</id>
	<title>Re: POSIX threads cancellation / VLC</title>
	<published>2009-12-14T23:28:49Z</published>
	<updated>2009-12-14T23:28:49Z</updated>
	<author>
		<name>Barton C Massey</name>
	</author>
	<content type="html">You wrote:
&lt;br&gt;&amp;gt; I am happy to announce that VLC media player (what will become vesion
&lt;br&gt;&amp;gt; 1.1.0) has been almost completely ported to XCB. Namely, the X11 and XVideo
&lt;br&gt;&amp;gt; outputs, the screen capture input, the (new) screen capture wizard, the
&lt;br&gt;&amp;gt; windowing code, the &amp;quot;global hotkeys&amp;quot;, and the seldom used panaromic video
&lt;br&gt;&amp;gt; filter are now purely XCB-based. Also, the GLX output was rewritten to
&lt;br&gt;&amp;gt; X11-XCB. This just leave the Qt4 UI, the VAAPI bindings to libavcodec, and
&lt;br&gt;&amp;gt; the skin engine using Xlib.
&lt;br&gt;&lt;br&gt;Wow! &amp;nbsp;Cool!
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Anyway. VLC uses *synchronous* thread cancellation in many code paths, and
&lt;br&gt;&amp;gt; our XCB event handling looks like:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; for (;;)
&lt;br&gt;&amp;gt; {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; poll(xcb_fd);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; disable_cancel();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; handle_xcb_events...;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; enable_cancel();
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; This is not terribly efficient. We could use XCB in blocking mode, but we
&lt;br&gt;&amp;gt; need to catch the cancel signal from a safe place. So I'm wondering if
&lt;br&gt;&amp;gt; handling thread cancellation directly inside XCB would be acceptable.
&lt;br&gt;&amp;gt; Mostly, this means installing cleanup handlers in strategic places, and
&lt;br&gt;&amp;gt; disabling cancellation in some other ones in the core XCB code.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I had a partial patch for this, but I wouldn't bother rebasing it you guys
&lt;br&gt;&amp;gt; don't like the idea at all.
&lt;/div&gt;&lt;br&gt;Hmmm. &amp;nbsp;I don't know if I have a strong opinion on this. &amp;nbsp;On
&lt;br&gt;the one hand it would muck up the code some, but on the
&lt;br&gt;other hand other folks might want it also, in which case it
&lt;br&gt;would be worth it.
&lt;br&gt;&lt;br&gt;Let's see what the rest of the list thinks?
&lt;br&gt;&lt;br&gt;Thanks much for the note.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Bart
&lt;br&gt;_______________________________________________
&lt;br&gt;Xcb mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26790677&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Xcb@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://lists.freedesktop.org/mailman/listinfo/xcb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.freedesktop.org/mailman/listinfo/xcb&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/POSIX-threads-cancellation---VLC-tp26790366p26790677.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26790366</id>
	<title>POSIX threads cancellation / VLC</title>
	<published>2009-12-14T22:54:13Z</published>
	<updated>2009-12-14T22:54:13Z</updated>
	<author>
		<name>Rémi Denis-Courmont</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp;Hello,
&lt;br&gt;&lt;br&gt;I am happy to announce that VLC media player (what will become vesion
&lt;br&gt;1.1.0) has been almost completely ported to XCB. Namely, the X11 and XVideo
&lt;br&gt;outputs, the screen capture input, the (new) screen capture wizard, the
&lt;br&gt;windowing code, the &amp;quot;global hotkeys&amp;quot;, and the seldom used panaromic video
&lt;br&gt;filter are now purely XCB-based. Also, the GLX output was rewritten to
&lt;br&gt;X11-XCB. This just leave the Qt4 UI, the VAAPI bindings to libavcodec, and
&lt;br&gt;the skin engine using Xlib.
&lt;br&gt;&lt;br&gt;The main driver for XCB was saner error/event handling and thread safety.
&lt;br&gt;It was practically impossible to use Xlib properly with the multi-thread
&lt;br&gt;and plugin-based architecture that VLC has. Also, this was a good
&lt;br&gt;opportunity to rebuild our X11 competence and refactor the aging code.
&lt;br&gt;&lt;br&gt;Anyway. VLC uses *synchronous* thread cancellation in many code paths, and
&lt;br&gt;our XCB event handling looks like:
&lt;br&gt;&lt;br&gt;for (;;)
&lt;br&gt;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; poll(xcb_fd);
&lt;br&gt;&amp;nbsp; &amp;nbsp; disable_cancel();
&lt;br&gt;&amp;nbsp; &amp;nbsp; handle_xcb_events...;
&lt;br&gt;&amp;nbsp; &amp;nbsp; enable_cancel();
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;This is not terribly efficient. We could use XCB in blocking mode, but we
&lt;br&gt;need to catch the cancel signal from a safe place. So I'm wondering if
&lt;br&gt;handling thread cancellation directly inside XCB would be acceptable.
&lt;br&gt;Mostly, this means installing cleanup handlers in strategic places, and
&lt;br&gt;disabling cancellation in some other ones in the core XCB code.
&lt;br&gt;&lt;br&gt;I had a partial patch for this, but I wouldn't bother rebasing it you guys
&lt;br&gt;don't like the idea at all.
&lt;br&gt;&lt;br&gt;Best regards,
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Rémi Denis-Courmont
&lt;br&gt;&lt;a href=&quot;http://www.remlab.net&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.remlab.net&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;http://fi.linkedin.com/in/remidenis&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://fi.linkedin.com/in/remidenis&lt;/a&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Xcb mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26790366&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Xcb@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://lists.freedesktop.org/mailman/listinfo/xcb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.freedesktop.org/mailman/listinfo/xcb&lt;/a&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/POSIX-threads-cancellation---VLC-tp26790366p26790366.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26790044</id>
	<title>Re: XCB Workshop?</title>
	<published>2009-12-14T22:27:56Z</published>
	<updated>2009-12-14T22:27:56Z</updated>
	<author>
		<name>Barton C Massey</name>
	</author>
	<content type="html">X.Org can easily afford to send you, and in my opinion
&lt;br&gt;(which matters) it would be really relevant to have you
&lt;br&gt;here. &amp;nbsp;Let me know if I can change your mind.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Bart
&lt;br&gt;&lt;br&gt;In message &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26790044&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;sa51vixnlam.fsf@...&lt;/a&gt;&amp;gt; you wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I would have been happy to come but it would be too expensive for me and
&lt;br&gt;&amp;gt; considering that I'm &amp;nbsp;not a core developer at all, I &amp;nbsp;think it would not
&lt;br&gt;&amp;gt; make sense &amp;nbsp;to ask for sponsorship. &amp;nbsp;Hope there will &amp;nbsp;be another meeting
&lt;br&gt;&amp;gt; nearer ;).
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Cheers,
&lt;br&gt;&amp;gt; Arnaud
&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; Xcb mailing list
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26790044&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Xcb@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://lists.freedesktop.org/mailman/listinfo/xcb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.freedesktop.org/mailman/listinfo/xcb&lt;/a&gt;&lt;/div&gt;_______________________________________________
&lt;br&gt;Xcb mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26790044&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Xcb@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://lists.freedesktop.org/mailman/listinfo/xcb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.freedesktop.org/mailman/listinfo/xcb&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/XCB-Workshop--tp26633868p26790044.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26788135</id>
	<title>Re: XCB Workshop?</title>
	<published>2009-12-14T17:42:41Z</published>
	<updated>2009-12-14T17:42:41Z</updated>
	<author>
		<name>Jamey Sharp</name>
	</author>
	<content type="html">On Tue, Dec 15, 2009 at 01:16:49AM +0100, Arnaud Fontaine wrote:
&lt;br&gt;&amp;gt; I would have been happy to come but it would be too expensive for me and
&lt;br&gt;&amp;gt; considering that I'm &amp;nbsp;not a core developer at all, I &amp;nbsp;think it would not
&lt;br&gt;&amp;gt; make sense &amp;nbsp;to ask for sponsorship. &amp;nbsp;Hope there will &amp;nbsp;be another meeting
&lt;br&gt;&amp;gt; nearer ;).
&lt;br&gt;&lt;br&gt;The Awesome window manager is one of the most extensive users of XCB.
&lt;br&gt;Can I encourage you to at least ask Bart and X.org, and see what they
&lt;br&gt;say?
&lt;br&gt;&lt;br&gt;Seriously folks, there's no harm in asking. Don't be shy. :-)
&lt;br&gt;&lt;br&gt;Jamey
&lt;br&gt;&lt;br /&gt; &lt;br /&gt;_______________________________________________
&lt;br&gt;Xcb mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26788135&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Xcb@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://lists.freedesktop.org/mailman/listinfo/xcb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.freedesktop.org/mailman/listinfo/xcb&lt;/a&gt;&lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://old.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;signature.asc&lt;/strong&gt; (205 bytes) &lt;a href=&quot;http://old.nabble.com/attachment/26788135/0/signature.asc&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/XCB-Workshop--tp26633868p26788135.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26788099</id>
	<title>Re: EWMH API for XCB</title>
	<published>2009-12-14T17:39:13Z</published>
	<updated>2009-12-14T17:39:13Z</updated>
	<author>
		<name>Jamey Sharp</name>
	</author>
	<content type="html">On Tue, Dec 15, 2009 at 01:13:38AM +0100, Arnaud Fontaine wrote:
&lt;div class='shrinkable-quote'&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;Jamey&amp;quot; == Jamey Sharp &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26788099&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jamey@...&lt;/a&gt;&amp;gt; writes:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;gt; &amp;nbsp;In &amp;nbsp; xcb_ewmh_send_client_message, &amp;nbsp;you &amp;nbsp;probably &amp;nbsp; should &amp;nbsp;check
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;gt; data_len before copying &amp;nbsp;data into a fixed-size buffer--unless you
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;gt; &amp;nbsp;want to &amp;nbsp;declare that &amp;nbsp;function static &amp;nbsp;and ensure &amp;nbsp;that &amp;nbsp;all the
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;gt; callers &amp;nbsp;are safe. If &amp;nbsp;you want to &amp;nbsp;go the latter route &amp;nbsp;you might
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;gt; look at the BUILD_BUG_ON macro from include/linux/kernel.h, to get
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;gt; a compile-time check.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; When adding the following macro:
&lt;br&gt;&amp;gt; #define BUILD_BUG_OR_ZERO(e) ((void) (sizeof(struct { int:-!!(e); })))
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; And the following line before the memcpy:
&lt;br&gt;&amp;gt; BUILD_BUG_OR_ZERO((data_len &amp;gt;&amp;gt; 2) &amp;gt; 5);
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I get the following error I can't get rid of:
&lt;br&gt;&amp;gt; ewmh.c:563: error: bit-field ‘&amp;lt;anonymous&amp;gt;’ width not an integer constant
&lt;/div&gt;&lt;/div&gt;Yeah, the data_len parameter in xcb_ewmh_send_client_message isn't a
&lt;br&gt;constant, so it can't be checked at compile time. I meant that you'd add
&lt;br&gt;something like this in every caller:
&lt;br&gt;&lt;br&gt;BUILD_BUG_ON(sizeof data &amp;gt; sizeof ((xcb_client_message_event_t *) 0)-&amp;gt;data);
&lt;br&gt;&lt;br&gt;Unlike an assertion, this doesn't generate any code; instead the
&lt;br&gt;compiler can prove that all those calls are safe, but only if you've
&lt;br&gt;checked all the callers, which is why I suggested making this function
&lt;br&gt;static. Also, you could wrap xcb_ewmh_send_client_message up in a macro
&lt;br&gt;that does this, if you wanted.
&lt;br&gt;&lt;br&gt;&amp;gt; I'm &amp;nbsp;a bit &amp;nbsp;confused &amp;nbsp;by this &amp;nbsp;macro &amp;nbsp;and does &amp;nbsp;not understand &amp;nbsp;anything
&lt;br&gt;&amp;gt; besides of &amp;nbsp;the basic principle. I &amp;nbsp;was thinking about &amp;nbsp;simply adding an
&lt;br&gt;&amp;gt; assertion otherwise.
&lt;br&gt;&lt;br&gt;Absolutely, that would be better than nothing.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;gt; &amp;nbsp;Huh. So &amp;nbsp;an &amp;nbsp;xcb_ewmh_connection_t &amp;nbsp;is only &amp;nbsp;usable &amp;nbsp;on a &amp;nbsp;single
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;gt; screen, and you have to &amp;nbsp;pick which one to use when you initialize
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;gt; it? I &amp;nbsp;know X's concept of screens is &amp;nbsp;becoming pretty obsolete in
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;gt; the RandR era, but if anything still has to deal with multi-screen
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;gt; setups it'd be window managers.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Actually, it's &amp;nbsp;the caller who takes care &amp;nbsp;of xcb_ewmh_connection_t. For
&lt;br&gt;&amp;gt; instance, a window manager managing two displays would simply initialize
&lt;br&gt;&amp;gt; xcb_ewmh_connection_t by calling xcb_ewmh_init_atoms() twice. I think it
&lt;br&gt;&amp;gt; can't be done otherwise, because the Atoms are specific to a display and
&lt;br&gt;&amp;gt; so &amp;nbsp;do &amp;nbsp;xcb_connection_t. &amp;nbsp;That's &amp;nbsp;why &amp;nbsp;xcb_ewmh_connection_t &amp;nbsp;has &amp;nbsp;been
&lt;br&gt;&amp;gt; defined, &amp;nbsp;only to avoid &amp;nbsp;extra parameters &amp;nbsp;such as &amp;nbsp;xcb_connection_t and
&lt;br&gt;&amp;gt; EWMH Atoms in each function of the API.
&lt;/div&gt;&lt;/div&gt;I'm not talking about different connections. I'm talking about different
&lt;br&gt;screens on the same connection. All the atoms are guaranteed to be the
&lt;br&gt;same in that case, except for _NET_WM_CM_Sn.
&lt;br&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;gt; &amp;nbsp;I'm a &amp;nbsp;little dismayed &amp;nbsp;that xcb_ewmh_init_atoms_replies &amp;nbsp;gets 82
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;gt; copies &amp;nbsp;of four nearly-identical lines &amp;nbsp;of code ...
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Hope &amp;nbsp;that's not &amp;nbsp;too &amp;nbsp;ugly[1] &amp;nbsp;;)
&lt;br&gt;&lt;br&gt;The patch looks good to me, except that I think it's wrong. :-) You're
&lt;br&gt;assigning an XID to a dereferenced pointer of type &amp;quot;char&amp;quot;, as far as I
&lt;br&gt;can tell. I think you need one more cast on the left-hand side,
&lt;br&gt;something like this:
&lt;br&gt;&lt;br&gt;*(xcb_atom_t *) ((char *) ewmh + ewmh_atoms[i].m_offset) = reply-&amp;gt;atom;
&lt;br&gt;&lt;br&gt;Assuming I'm right, I'd think this bug would be pretty obvious, since at
&lt;br&gt;least in my setup the X server looks like it's allocating more than 256
&lt;br&gt;atoms before the window manager starts.
&lt;br&gt;&lt;br&gt;&amp;gt; That's why I have only defined accessors for _NET_WM_SYNC_REQUEST_COUNTER.
&lt;br&gt;&lt;br&gt;Yes, all your functions are named *_request_counter, but they all use
&lt;br&gt;ewmh-&amp;gt;_NET_WM_SYNC_REQUEST. Isn't that wrong?
&lt;br&gt;&lt;br&gt;And the comment header still has that typo of missing a &amp;quot;T&amp;quot;. ;-)
&lt;br&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;gt; &amp;nbsp;Do you &amp;nbsp;really want &amp;nbsp;it in &amp;nbsp;the xcb-util &amp;nbsp;bundle though?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Well, I think &amp;nbsp;it's better to keep it within &amp;nbsp;xcb-util.
&lt;br&gt;&lt;br&gt;I'd be interested in hearing your thoughts on the discussion Julien and
&lt;br&gt;I had today on this topic.
&lt;br&gt;&lt;br&gt;&amp;gt; For instance, if all the libraries provided in xcb-util &amp;nbsp;would have
&lt;br&gt;&amp;gt; not been shipped as a bundle, I think they would be &amp;nbsp;in a much worst
&lt;br&gt;&amp;gt; shape, mainly because the original author of &amp;nbsp;the code is rarely the
&lt;br&gt;&amp;gt; maintainer &amp;nbsp;on a long stretch of time. Keeping it as a bundle ensures
&lt;br&gt;&amp;gt; that even if the author does not have time anymore to maintain his
&lt;br&gt;&amp;gt; code, someone else will take over the maintenance and &amp;nbsp;update it &amp;nbsp;when
&lt;br&gt;&amp;gt; necessary (this &amp;nbsp;is what &amp;nbsp;happened with xcb-util/icccm at &amp;nbsp;least).
&lt;br&gt;&lt;br&gt;I think the history of free software contradicts this. For example,
&lt;br&gt;bundling lots of code into libX11 certainly didn't help it be maintained
&lt;br&gt;any better. :-) Conversely, lots of projects abandoned by their original
&lt;br&gt;authors have been picked up by somebody else who needed them, despite
&lt;br&gt;not being bundled with anything else.
&lt;br&gt;&lt;br&gt;&amp;gt; Moreover, xcb-util/icccm &amp;nbsp;and xcb-util/image are &amp;nbsp;already &amp;nbsp; used &amp;nbsp;in
&lt;br&gt;&amp;gt; other &amp;nbsp;projects, &amp;nbsp;but &amp;nbsp; are &amp;nbsp;still &amp;nbsp; parts &amp;nbsp;of xcb-util.
&lt;br&gt;&lt;br&gt;Yes, so are aux, and render-util I think, and awesome is using the
&lt;br&gt;property and event libraries apparently. And yes, I'd like all of those
&lt;br&gt;split out, but just because that hasn't happened doesn't mean we should
&lt;br&gt;add anything more to the mess.
&lt;br&gt;&lt;br&gt;Jamey
&lt;br&gt;&lt;br /&gt; &lt;br /&gt;_______________________________________________
&lt;br&gt;Xcb mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26788099&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Xcb@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://lists.freedesktop.org/mailman/listinfo/xcb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.freedesktop.org/mailman/listinfo/xcb&lt;/a&gt;&lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://old.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;signature.asc&lt;/strong&gt; (205 bytes) &lt;a href=&quot;http://old.nabble.com/attachment/26788099/0/signature.asc&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/EWMH-API-for-XCB-tp26760629p26788099.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26787457</id>
	<title>Re: XCB Workshop?</title>
	<published>2009-12-14T16:16:49Z</published>
	<updated>2009-12-14T16:16:49Z</updated>
	<author>
		<name>Arnaud Fontaine</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;I would have been happy to come but it would be too expensive for me and
&lt;br&gt;considering that I'm &amp;nbsp;not a core developer at all, I &amp;nbsp;think it would not
&lt;br&gt;make sense &amp;nbsp;to ask for sponsorship. &amp;nbsp;Hope there will &amp;nbsp;be another meeting
&lt;br&gt;nearer ;).
&lt;br&gt;&lt;br&gt;Cheers,
&lt;br&gt;Arnaud
&lt;br&gt;_______________________________________________
&lt;br&gt;Xcb mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26787457&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Xcb@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://lists.freedesktop.org/mailman/listinfo/xcb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.freedesktop.org/mailman/listinfo/xcb&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/XCB-Workshop--tp26633868p26787457.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26787432</id>
	<title>Re: EWMH API for XCB</title>
	<published>2009-12-14T16:13:38Z</published>
	<updated>2009-12-14T16:13:38Z</updated>
	<author>
		<name>Arnaud Fontaine</name>
	</author>
	<content type="html">&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;Jamey&amp;quot; == Jamey Sharp &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26787432&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jamey@...&lt;/a&gt;&amp;gt; writes:
&lt;br&gt;&lt;br&gt;Hi,
&lt;br&gt;&lt;br&gt;Thanks for reviewing it Jamey.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; &amp;nbsp;Do you &amp;nbsp;really want &amp;nbsp;it in &amp;nbsp;the xcb-util &amp;nbsp;bundle though? &amp;nbsp;Why not
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; manage it as its own &amp;nbsp;project? I originally intended xcb-util as a
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; collection &amp;nbsp;of sample, &amp;nbsp;proof-of-concept code, more &amp;nbsp;than anything
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; else. &amp;nbsp;I'd &amp;nbsp;really like to see somebody split &amp;nbsp;the useful bits out
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; into their own repositories. &amp;nbsp;&amp;quot;Useful&amp;quot; is probably best defined as
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; &amp;quot;somebody &amp;nbsp;outside of &amp;nbsp;xcb-util is using &amp;nbsp;this,&amp;quot; which &amp;nbsp;would mean
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; your ewmh bits already don't belong. :-)
&lt;br&gt;&lt;br&gt;Well, I think &amp;nbsp;it's better to keep it within &amp;nbsp;xcb-util. For instance, if
&lt;br&gt;all the libraries provided in xcb-util &amp;nbsp;would have not been shipped as a
&lt;br&gt;bundle, I think they would be &amp;nbsp;in a much worst shape, mainly because the
&lt;br&gt;original author of &amp;nbsp;the code is rarely the maintainer &amp;nbsp;on a long stretch
&lt;br&gt;of time. Keeping it as a bundle ensures that even if the author does not
&lt;br&gt;have time anymore to maintain his &amp;nbsp;code, someone else will take over the
&lt;br&gt;maintenance and &amp;nbsp;update it &amp;nbsp;when necessary (this &amp;nbsp;is what &amp;nbsp;happened with
&lt;br&gt;xcb-util/icccm at &amp;nbsp;least). &amp;nbsp;Moreover, xcb-util/icccm &amp;nbsp;and xcb-util/image
&lt;br&gt;are &amp;nbsp;already &amp;nbsp; used &amp;nbsp;in &amp;nbsp; other &amp;nbsp;projects, &amp;nbsp;but &amp;nbsp; are &amp;nbsp;still &amp;nbsp; parts &amp;nbsp;of
&lt;br&gt;xcb-util.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; This seems like a perfectly sensible implementation of EWMH to me,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; macros &amp;nbsp;and m4 &amp;nbsp;and all. (By &amp;nbsp;all means, &amp;nbsp;do whatever it &amp;nbsp;takes to
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; avoid copying and pasting code.) I do have a few minor comments:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; &amp;nbsp;In &amp;nbsp; xcb_ewmh_send_client_message, &amp;nbsp;you &amp;nbsp;probably &amp;nbsp; should &amp;nbsp;check
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; data_len before copying &amp;nbsp;data into a fixed-size buffer--unless you
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; &amp;nbsp;want to &amp;nbsp;declare that &amp;nbsp;function static &amp;nbsp;and ensure &amp;nbsp;that &amp;nbsp;all the
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; callers &amp;nbsp;are safe. If &amp;nbsp;you want to &amp;nbsp;go the latter route &amp;nbsp;you might
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; look at the BUILD_BUG_ON macro from include/linux/kernel.h, to get
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; a compile-time check.
&lt;br&gt;&lt;br&gt;When adding the following macro:
&lt;br&gt;#define BUILD_BUG_OR_ZERO(e) ((void) (sizeof(struct { int:-!!(e); })))
&lt;br&gt;&lt;br&gt;And the following line before the memcpy:
&lt;br&gt;BUILD_BUG_OR_ZERO((data_len &amp;gt;&amp;gt; 2) &amp;gt; 5);
&lt;br&gt;&lt;br&gt;I get the following error I can't get rid of:
&lt;br&gt;ewmh.c:563: error: bit-field ‘&amp;lt;anonymous&amp;gt;’ width not an integer constant
&lt;br&gt;&lt;br&gt;I'm &amp;nbsp;a bit &amp;nbsp;confused &amp;nbsp;by this &amp;nbsp;macro &amp;nbsp;and does &amp;nbsp;not understand &amp;nbsp;anything
&lt;br&gt;besides of &amp;nbsp;the basic principle. I &amp;nbsp;was thinking about &amp;nbsp;simply adding an
&lt;br&gt;assertion otherwise.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; Also &amp;nbsp;in xcb_ewmh_send_client_message, I'd &amp;nbsp;encourage using memcpy
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; &amp;nbsp;instead of &amp;nbsp;a hand-coded &amp;nbsp;loop: It's &amp;nbsp;easier to &amp;nbsp;understand &amp;nbsp;at a
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; glance, and GCC will generate better code from it.
&lt;br&gt;&lt;br&gt;Thanks, I have just committed it[0].
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; &amp;nbsp;Huh. So &amp;nbsp;an &amp;nbsp;xcb_ewmh_connection_t &amp;nbsp;is only &amp;nbsp;usable &amp;nbsp;on a &amp;nbsp;single
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; screen, and you have to &amp;nbsp;pick which one to use when you initialize
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; it? I &amp;nbsp;know X's concept of screens is &amp;nbsp;becoming pretty obsolete in
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; the RandR era, but if anything still has to deal with multi-screen
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; setups it'd be window managers.
&lt;br&gt;&lt;br&gt;Actually, it's &amp;nbsp;the caller who takes care &amp;nbsp;of xcb_ewmh_connection_t. For
&lt;br&gt;instance, a window manager managing two displays would simply initialize
&lt;br&gt;xcb_ewmh_connection_t by calling xcb_ewmh_init_atoms() twice. I think it
&lt;br&gt;can't be done otherwise, because the Atoms are specific to a display and
&lt;br&gt;so &amp;nbsp;do &amp;nbsp;xcb_connection_t. &amp;nbsp;That's &amp;nbsp;why &amp;nbsp;xcb_ewmh_connection_t &amp;nbsp;has &amp;nbsp;been
&lt;br&gt;defined, &amp;nbsp;only to avoid &amp;nbsp;extra parameters &amp;nbsp;such as &amp;nbsp;xcb_connection_t and
&lt;br&gt;EWMH Atoms in each function of the API.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; xcb_ewmh_init_atoms_replies probably should explicitly discard the
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; rest of the InternAtom replies if one fails.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; &amp;nbsp;I'm a &amp;nbsp;little dismayed &amp;nbsp;that xcb_ewmh_init_atoms_replies &amp;nbsp;gets 82
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; copies &amp;nbsp;of four nearly-identical lines &amp;nbsp;of code, even &amp;nbsp;if they are
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; all auto-generated &amp;nbsp;from a bit of m4. I would &amp;nbsp;be inclined to turn
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; it into a simple loop, &amp;nbsp;either by casting the address of the first
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; atom to (uint32_t *) and &amp;nbsp;treating it as an array, or by including
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; &amp;nbsp;offsetof(xcb_ewmh_connection_t, $1) &amp;nbsp;in the &amp;nbsp;internal ewmh_atom_t
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; struct.
&lt;br&gt;&lt;br&gt;Hope &amp;nbsp;that's not &amp;nbsp;too &amp;nbsp;ugly[1] &amp;nbsp;;). Concerning &amp;nbsp;discarding &amp;nbsp;the rest &amp;nbsp;of
&lt;br&gt;InternAtom replies &amp;nbsp;if one &amp;nbsp;fails, I have &amp;nbsp;just requested &amp;nbsp;the remaining
&lt;br&gt;replies anyway.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; The _NET_WM_SYNC_REQUEST &amp;nbsp;section doesn't look right to &amp;nbsp;me, but I
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; don't know the EWMH spec &amp;nbsp;well enough to figure out why.
&lt;br&gt;&lt;br&gt;Why doesn't it look right to you? 
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; &amp;nbsp;At &amp;nbsp;least, &amp;nbsp;the &amp;nbsp;comment &amp;nbsp;header &amp;nbsp;is &amp;nbsp;missing &amp;nbsp;a &amp;nbsp;&amp;quot;T&amp;quot;. &amp;nbsp; :-) &amp;nbsp;And
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; &amp;nbsp;_NET_WM_SYNC_REQUEST_COUNTER &amp;nbsp;is mentioned &amp;nbsp;only &amp;nbsp;in the &amp;nbsp;comment
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; header.
&lt;br&gt;&lt;br&gt;From EWMH specification:
&lt;br&gt;&lt;br&gt;&amp;quot;A client indicates that it is willing to participate in the protocol by
&lt;br&gt;listing _NET_WM_SYNC_REQUEST in the &amp;nbsp;WM_PROTOCOLS property of the client
&lt;br&gt;window &amp;nbsp;and &amp;nbsp;storing &amp;nbsp;the &amp;nbsp;XID &amp;nbsp;of &amp;nbsp;an XSync &amp;nbsp;counter &amp;nbsp;in &amp;nbsp;the &amp;nbsp;property
&lt;br&gt;_NET_WM_SYNC_REQUEST_COUNTER.&amp;quot;
&lt;br&gt;&lt;br&gt;That's why I have only defined accessors for _NET_WM_SYNC_REQUEST_COUNTER.
&lt;br&gt;But not for _NET_WM_SYNC_REQUEST &amp;nbsp;(only a ClientMessage function indeed)
&lt;br&gt;as &amp;nbsp;it's &amp;nbsp; listed &amp;nbsp;in &amp;nbsp;WM_PROTOCOLS &amp;nbsp; on &amp;nbsp;a &amp;nbsp;client &amp;nbsp; window, &amp;nbsp;therefore
&lt;br&gt;xcb_set_wm_protocols &amp;nbsp;from &amp;nbsp;xcb-util/icccm &amp;nbsp;should &amp;nbsp;be called &amp;nbsp;for &amp;nbsp;this
&lt;br&gt;Atom. Does it make sense?
&lt;br&gt;&lt;br&gt;Thanks again for your review, it does help a lot.
&lt;br&gt;&lt;br&gt;Cheers,
&lt;br&gt;Arnaud
&lt;br&gt;&lt;br&gt;[0] &lt;a href=&quot;http://cgit.freedesktop.org/~arnau/xcb-util/commit/?h=xcb-ewmh&amp;id=ff5eae62cee4f13ae4df5f1bb58c62b605c03290&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cgit.freedesktop.org/~arnau/xcb-util/commit/?h=xcb-ewmh&amp;id=ff5eae62cee4f13ae4df5f1bb58c62b605c03290&lt;/a&gt;&lt;br&gt;[1] &lt;a href=&quot;http://cgit.freedesktop.org/~arnau/xcb-util/commit/?h=xcb-ewmh&amp;id=ae4e594200e41f809e07f1133bb04da5e2752ebb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cgit.freedesktop.org/~arnau/xcb-util/commit/?h=xcb-ewmh&amp;id=ae4e594200e41f809e07f1133bb04da5e2752ebb&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Xcb mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26787432&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Xcb@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://lists.freedesktop.org/mailman/listinfo/xcb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.freedesktop.org/mailman/listinfo/xcb&lt;/a&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/EWMH-API-for-XCB-tp26760629p26787432.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26783311</id>
	<title>Re: EWMH API for XCB</title>
	<published>2009-12-14T11:26:56Z</published>
	<updated>2009-12-14T11:26:56Z</updated>
	<author>
		<name>Julien Danjou-2</name>
	</author>
	<content type="html">At 1260817099 time_t, Jamey Sharp wrote:
&lt;br&gt;&amp;gt; I'm only complaining about all the libraries being in the same git repo.
&lt;br&gt;&amp;gt; If you want those libraries at git://anongit.freedesktop.org/xcb/libewmh
&lt;br&gt;&amp;gt; or similar, with issues discussed on this list and documentation and
&lt;br&gt;&amp;gt; tarballs at xcb.freedesktop.org, that's fine with me.
&lt;br&gt;&lt;br&gt;Ok, I see your point, and it seems reasonable.
&lt;br&gt;Arnaud, would I also suggest you do not merge and build a libxcb-ewmh?
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Julien Danjou
&lt;br&gt;// ᐰ &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26783311&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;julien@...&lt;/a&gt;&amp;gt; &amp;nbsp; &lt;a href=&quot;http://julien.danjou.info&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://julien.danjou.info&lt;/a&gt;&lt;br&gt;// 9A0D 5FD9 EB42 22F6 8974 &amp;nbsp;C95C A462 B51E C2FE E5CD
&lt;br&gt;// In the Sixth Sense, Bruce Willis is dead.
&lt;br&gt;&lt;br /&gt; &lt;br /&gt;_______________________________________________
&lt;br&gt;Xcb mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26783311&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Xcb@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://lists.freedesktop.org/mailman/listinfo/xcb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.freedesktop.org/mailman/listinfo/xcb&lt;/a&gt;&lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://old.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;signature.asc&lt;/strong&gt; (205 bytes) &lt;a href=&quot;http://old.nabble.com/attachment/26783311/0/signature.asc&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/EWMH-API-for-XCB-tp26760629p26783311.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26787689</id>
	<title>Re: EWMH API for XCB</title>
	<published>2009-12-14T11:19:30Z</published>
	<updated>2009-12-14T11:19:30Z</updated>
	<author>
		<name>Josh Triplett-9</name>
	</author>
	<content type="html">On Mon, Dec 14, 2009 at 10:58:19AM -0800, Jamey Sharp wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On Mon, Dec 14, 2009 at 10:14:54AM +0100, Julien Danjou wrote:
&lt;br&gt;&amp;gt; &amp;gt; At 1260732594 time_t, Jamey Sharp wrote:
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; Do you really want it in the xcb-util bundle though? Why not manage
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; it as its own project?
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; Not sure it's a good idea to keep things out. We [awesome] use
&lt;br&gt;&amp;gt; &amp;gt; xcb-util heavily, and I spent some time last year rewriting and
&lt;br&gt;&amp;gt; &amp;gt; ehancing many parts of it so it can be useful.
&lt;br&gt;&amp;gt; &amp;gt; Many functions are needed for Xlib users that want to bring XCB to
&lt;br&gt;&amp;gt; &amp;gt; their app/lib, and telling them to go somewhere else where upstream
&lt;br&gt;&amp;gt; &amp;gt; might disapear does not seem like a valuable option right now.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I'm only complaining about all the libraries being in the same git repo.
&lt;br&gt;&amp;gt; If you want those libraries at git://anongit.freedesktop.org/xcb/libewmh
&lt;br&gt;&amp;gt; or similar, with issues discussed on this list and documentation and
&lt;br&gt;&amp;gt; tarballs at xcb.freedesktop.org, that's fine with me.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I'm concerned that keeping everything together makes it harder to have
&lt;br&gt;&amp;gt; healthy competition in library interfaces. I think X client architecture
&lt;br&gt;&amp;gt; has stagnated over the last 20 years because when people had a problem,
&lt;br&gt;&amp;gt; they came up with a quick fix, blessed it by putting it in Xlib, and
&lt;br&gt;&amp;gt; then no matter how much people hated it they couldn't change it. I don't
&lt;br&gt;&amp;gt; want to avoid quick fixes---I want to avoid blessed implementations.
&lt;/div&gt;&lt;br&gt;I wouldn't go so far as to think of the bits in xcb-util as somehow
&lt;br&gt;&amp;quot;blessed&amp;quot;. &amp;nbsp;(I'd probably call them &amp;quot;special&amp;quot;, with all the
&lt;br&gt;meanings thereof. ;) ) &amp;nbsp;Or did you have concerns about putting these
&lt;br&gt;bits in the xcb directory of git repos at all?
&lt;br&gt;&lt;br&gt;But I second Jamey's sentiment: new code should not go in xcb-util, it
&lt;br&gt;should go in its own module. &amp;nbsp;That module can most certainly live in the
&lt;br&gt;xcb directory of git repositories, just in its own repository. &amp;nbsp;xcb-util
&lt;br&gt;really neds splitting into one repo per library. &amp;nbsp;Having more than one
&lt;br&gt;library in a single project makes things painful for many reasons,
&lt;br&gt;particularly with libraries of varying usefulness, completeness, and
&lt;br&gt;API/ABI stability.
&lt;br&gt;&lt;br&gt;- Josh Triplett
&lt;br&gt;_______________________________________________
&lt;br&gt;Xcb mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26787689&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Xcb@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://lists.freedesktop.org/mailman/listinfo/xcb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.freedesktop.org/mailman/listinfo/xcb&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/EWMH-API-for-XCB-tp26760629p26787689.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26782887</id>
	<title>Re: EWMH API for XCB</title>
	<published>2009-12-14T10:58:19Z</published>
	<updated>2009-12-14T10:58:19Z</updated>
	<author>
		<name>Jamey Sharp</name>
	</author>
	<content type="html">On Mon, Dec 14, 2009 at 10:14:54AM +0100, Julien Danjou wrote:
&lt;div class='shrinkable-quote'&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; At 1260732594 time_t, Jamey Sharp wrote:
&lt;br&gt;&amp;gt; &amp;gt; Do you really want it in the xcb-util bundle though? Why not manage
&lt;br&gt;&amp;gt; &amp;gt; it as its own project?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Not sure it's a good idea to keep things out. We [awesome] use
&lt;br&gt;&amp;gt; xcb-util heavily, and I spent some time last year rewriting and
&lt;br&gt;&amp;gt; ehancing many parts of it so it can be useful.
&lt;br&gt;&amp;gt; Many functions are needed for Xlib users that want to bring XCB to
&lt;br&gt;&amp;gt; their app/lib, and telling them to go somewhere else where upstream
&lt;br&gt;&amp;gt; might disapear does not seem like a valuable option right now.
&lt;/div&gt;&lt;/div&gt;I'm only complaining about all the libraries being in the same git repo.
&lt;br&gt;If you want those libraries at git://anongit.freedesktop.org/xcb/libewmh
&lt;br&gt;or similar, with issues discussed on this list and documentation and
&lt;br&gt;tarballs at xcb.freedesktop.org, that's fine with me.
&lt;br&gt;&lt;br&gt;I'm concerned that keeping everything together makes it harder to have
&lt;br&gt;healthy competition in library interfaces. I think X client architecture
&lt;br&gt;has stagnated over the last 20 years because when people had a problem,
&lt;br&gt;they came up with a quick fix, blessed it by putting it in Xlib, and
&lt;br&gt;then no matter how much people hated it they couldn't change it. I don't
&lt;br&gt;want to avoid quick fixes---I want to avoid blessed implementations.
&lt;br&gt;&lt;br&gt;But I absolutely agree that discouraging people from using XCB would be
&lt;br&gt;bad. :-)
&lt;br&gt;&lt;br&gt;&amp;gt; unless we are blocking developement, which we are not currently, at
&lt;br&gt;&amp;gt; least. :-)
&lt;br&gt;&lt;br&gt;Thank goodness you're better at that than I am. :-)
&lt;br&gt;&lt;br&gt;Jamey
&lt;br&gt;&lt;br /&gt; &lt;br /&gt;_______________________________________________
&lt;br&gt;Xcb mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26782887&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Xcb@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://lists.freedesktop.org/mailman/listinfo/xcb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.freedesktop.org/mailman/listinfo/xcb&lt;/a&gt;&lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://old.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;signature.asc&lt;/strong&gt; (205 bytes) &lt;a href=&quot;http://old.nabble.com/attachment/26782887/0/signature.asc&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/EWMH-API-for-XCB-tp26760629p26782887.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26774980</id>
	<title>Re: EWMH API for XCB</title>
	<published>2009-12-14T01:14:54Z</published>
	<updated>2009-12-14T01:14:54Z</updated>
	<author>
		<name>Julien Danjou-2</name>
	</author>
	<content type="html">At 1260732594 time_t, Jamey Sharp wrote:
&lt;br&gt;&amp;gt; Do you really want it in the xcb-util bundle though? Why not manage it
&lt;br&gt;&amp;gt; as its own project? I originally intended xcb-util as a collection of
&lt;br&gt;&amp;gt; sample, proof-of-concept code, more than anything else. I'd really like
&lt;br&gt;&amp;gt; to see somebody split the useful bits out into their own repositories.
&lt;br&gt;&amp;gt; &amp;quot;Useful&amp;quot; is probably best defined as &amp;quot;somebody outside of xcb-util is
&lt;br&gt;&amp;gt; using this,&amp;quot; which would mean your ewmh bits already don't belong. :-)
&lt;br&gt;&lt;br&gt;Not sure it's a good idea to keep things out. We [awesome] use xcb-util
&lt;br&gt;heavily, and I spent some time last year rewriting and ehancing many parts
&lt;br&gt;of it so it can be useful.
&lt;br&gt;Many functions are needed for Xlib users that want to bring XCB to
&lt;br&gt;their app/lib, and telling them to go somewhere else where upstream
&lt;br&gt;might disapear does not seem like a valuable option right now. XCB is
&lt;br&gt;not yet a wide deployed library (if you don't count Xlib usage of it).
&lt;br&gt;Having basic bricks managed by the XCB team until many more competents
&lt;br&gt;people come and make things better does not seems a bad idea to me,
&lt;br&gt;unless we are blocking developement, which we are not currently, at
&lt;br&gt;least. :-)
&lt;br&gt;&lt;br&gt;Cheers,
&lt;br&gt;-- 
&lt;br&gt;Julien Danjou
&lt;br&gt;// ᐰ &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26774980&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;julien@...&lt;/a&gt;&amp;gt; &amp;nbsp; &lt;a href=&quot;http://julien.danjou.info&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://julien.danjou.info&lt;/a&gt;&lt;br&gt;// 9A0D 5FD9 EB42 22F6 8974 &amp;nbsp;C95C A462 B51E C2FE E5CD
&lt;br&gt;// Trust me.
&lt;br&gt;&lt;br /&gt; &lt;br /&gt;_______________________________________________
&lt;br&gt;Xcb mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26774980&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Xcb@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://lists.freedesktop.org/mailman/listinfo/xcb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.freedesktop.org/mailman/listinfo/xcb&lt;/a&gt;&lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://old.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;signature.asc&lt;/strong&gt; (205 bytes) &lt;a href=&quot;http://old.nabble.com/attachment/26774980/0/signature.asc&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/EWMH-API-for-XCB-tp26760629p26774980.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26774125</id>
	<title>Re: EWMH API for XCB</title>
	<published>2009-12-13T23:58:20Z</published>
	<updated>2009-12-13T23:58:20Z</updated>
	<author>
		<name>Barton C Massey</name>
	</author>
	<content type="html">In message &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26774125&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;20091214050249.GA30448@...&lt;/a&gt;&amp;gt; you wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On Sun, Dec 13, 2009 at 05:50:56PM -0800, Barton C Massey wrote:
&lt;br&gt;&amp;gt; &amp;gt; In message &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26774125&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;20091214011643.GA29653@...&lt;/a&gt;&amp;gt; you wrote:
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; These atoms are ones that *aren't* predefined, but are specified by
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; EWMH (or I think, in a couple of cases, by ICCCM).
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; I understand.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Um... At least one of us doesn't. :-)
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; But shouldn't we just use the Python thing on XML instead of the m4
&lt;br&gt;&amp;gt; &amp;gt; thing on, well, m4 to generate the C code anyway, is all I'm saying?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Sure, Arnaud *could* write some Python to generate tiny parts of the C
&lt;br&gt;&amp;gt; source for his library, but it wouldn't bear any resemblance to the
&lt;br&gt;&amp;gt; Python we already have, because these atoms are not specified by the X
&lt;br&gt;&amp;gt; protocol. You have to call InternAtom on them--they don't have constant
&lt;br&gt;&amp;gt; values, unlike the core protocol atoms. Not only would it be all-new
&lt;br&gt;&amp;gt; code, but m4 is much better suited to the way this code is using it than
&lt;br&gt;&amp;gt; Python would be, and XML is a poor choice when this code only needs a
&lt;br&gt;&amp;gt; single list of short strings.
&lt;/div&gt;&lt;br&gt;Never mind.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Bart
&lt;br&gt;_______________________________________________
&lt;br&gt;Xcb mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26774125&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Xcb@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://lists.freedesktop.org/mailman/listinfo/xcb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.freedesktop.org/mailman/listinfo/xcb&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/EWMH-API-for-XCB-tp26760629p26774125.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26773058</id>
	<title>Re: EWMH API for XCB</title>
	<published>2009-12-13T21:02:49Z</published>
	<updated>2009-12-13T21:02:49Z</updated>
	<author>
		<name>Jamey Sharp</name>
	</author>
	<content type="html">On Sun, Dec 13, 2009 at 05:50:56PM -0800, Barton C Massey wrote:
&lt;br&gt;&amp;gt; In message &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26773058&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;20091214011643.GA29653@...&lt;/a&gt;&amp;gt; you wrote:
&lt;br&gt;&amp;gt; &amp;gt; These atoms are ones that *aren't* predefined, but are specified by
&lt;br&gt;&amp;gt; &amp;gt; EWMH (or I think, in a couple of cases, by ICCCM).
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I understand.
&lt;br&gt;&lt;br&gt;Um... At least one of us doesn't. :-)
&lt;br&gt;&lt;br&gt;&amp;gt; But shouldn't we just use the Python thing on XML instead of the m4
&lt;br&gt;&amp;gt; thing on, well, m4 to generate the C code anyway, is all I'm saying?
&lt;br&gt;&lt;br&gt;Sure, Arnaud *could* write some Python to generate tiny parts of the C
&lt;br&gt;source for his library, but it wouldn't bear any resemblance to the
&lt;br&gt;Python we already have, because these atoms are not specified by the X
&lt;br&gt;protocol. You have to call InternAtom on them--they don't have constant
&lt;br&gt;values, unlike the core protocol atoms. Not only would it be all-new
&lt;br&gt;code, but m4 is much better suited to the way this code is using it than
&lt;br&gt;Python would be, and XML is a poor choice when this code only needs a
&lt;br&gt;single list of short strings.
&lt;br&gt;&lt;br&gt;Jamey
&lt;br&gt;&lt;br /&gt; &lt;br /&gt;_______________________________________________
&lt;br&gt;Xcb mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26773058&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Xcb@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://lists.freedesktop.org/mailman/listinfo/xcb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.freedesktop.org/mailman/listinfo/xcb&lt;/a&gt;&lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://old.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;signature.asc&lt;/strong&gt; (205 bytes) &lt;a href=&quot;http://old.nabble.com/attachment/26773058/0/signature.asc&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/EWMH-API-for-XCB-tp26760629p26773058.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26771966</id>
	<title>Re: EWMH API for XCB</title>
	<published>2009-12-13T17:50:56Z</published>
	<updated>2009-12-13T17:50:56Z</updated>
	<author>
		<name>Barton C Massey</name>
	</author>
	<content type="html">In message &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26771966&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;20091214011643.GA29653@...&lt;/a&gt;&amp;gt; you wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On Sun, Dec 13, 2009 at 04:41:20PM -0800, Barton C Massey wrote:
&lt;br&gt;&amp;gt; &amp;gt; In message &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26771966&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;20091213192954.GA21824@...&lt;/a&gt;&amp;gt; you wrote:
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; This seems like a perfectly sensible implementation of EWMH to me,
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; macros and m4 and all.
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; I'm quite confused. &amp;nbsp;Didn't someone just add a patch to XCB
&lt;br&gt;&amp;gt; &amp;gt; to get the predefined atoms out of the m4 and into xml where
&lt;br&gt;&amp;gt; &amp;gt; they belong? &amp;nbsp;If so, shouldn't the same approach be taken
&lt;br&gt;&amp;gt; &amp;gt; here? &amp;nbsp;Or am I missing something?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; These atoms are ones that *aren't* predefined, but are specified by EWMH
&lt;br&gt;&amp;gt; (or I think, in a couple of cases, by ICCCM).
&lt;/div&gt;&lt;br&gt;I understand. &amp;nbsp;But shouldn't we just use the Python thing on
&lt;br&gt;XML instead of the m4 thing on, well, m4 to generate the C
&lt;br&gt;code anyway, is all I'm saying?
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Bart
&lt;br&gt;_______________________________________________
&lt;br&gt;Xcb mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26771966&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Xcb@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://lists.freedesktop.org/mailman/listinfo/xcb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.freedesktop.org/mailman/listinfo/xcb&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/EWMH-API-for-XCB-tp26760629p26771966.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26771751</id>
	<title>Re: EWMH API for XCB</title>
	<published>2009-12-13T17:16:43Z</published>
	<updated>2009-12-13T17:16:43Z</updated>
	<author>
		<name>Jamey Sharp</name>
	</author>
	<content type="html">On Sun, Dec 13, 2009 at 04:41:20PM -0800, Barton C Massey wrote:
&lt;br&gt;&amp;gt; In message &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26771751&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;20091213192954.GA21824@...&lt;/a&gt;&amp;gt; you wrote:
&lt;br&gt;&amp;gt; &amp;gt; This seems like a perfectly sensible implementation of EWMH to me,
&lt;br&gt;&amp;gt; &amp;gt; macros and m4 and all.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I'm quite confused. &amp;nbsp;Didn't someone just add a patch to XCB
&lt;br&gt;&amp;gt; to get the predefined atoms out of the m4 and into xml where
&lt;br&gt;&amp;gt; they belong? &amp;nbsp;If so, shouldn't the same approach be taken
&lt;br&gt;&amp;gt; here? &amp;nbsp;Or am I missing something?
&lt;br&gt;&lt;br&gt;These atoms are ones that *aren't* predefined, but are specified by EWMH
&lt;br&gt;(or I think, in a couple of cases, by ICCCM).
&lt;br&gt;&lt;br&gt;Jamey
&lt;br&gt;&lt;br /&gt; &lt;br /&gt;_______________________________________________
&lt;br&gt;Xcb mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26771751&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Xcb@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://lists.freedesktop.org/mailman/listinfo/xcb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.freedesktop.org/mailman/listinfo/xcb&lt;/a&gt;&lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://old.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;signature.asc&lt;/strong&gt; (205 bytes) &lt;a href=&quot;http://old.nabble.com/attachment/26771751/0/signature.asc&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/EWMH-API-for-XCB-tp26760629p26771751.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26771543</id>
	<title>Re: EWMH API for XCB</title>
	<published>2009-12-13T16:41:20Z</published>
	<updated>2009-12-13T16:41:20Z</updated>
	<author>
		<name>Barton C Massey</name>
	</author>
	<content type="html">In message &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26771543&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;20091213192954.GA21824@...&lt;/a&gt;&amp;gt; you wrote:
&lt;br&gt;&amp;gt; This seems like a perfectly sensible implementation of EWMH to me,
&lt;br&gt;&amp;gt; macros and m4 and all. (By all means, do whatever it takes to avoid
&lt;br&gt;&amp;gt; copying and pasting code.)
&lt;br&gt;&lt;br&gt;I'm quite confused. &amp;nbsp;Didn't someone just add a patch to XCB
&lt;br&gt;to get the predefined atoms out of the m4 and into xml where
&lt;br&gt;they belong? &amp;nbsp;If so, shouldn't the same approach be taken
&lt;br&gt;here? &amp;nbsp;Or am I missing something?
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Bart
&lt;br&gt;_______________________________________________
&lt;br&gt;Xcb mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26771543&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Xcb@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://lists.freedesktop.org/mailman/listinfo/xcb&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.freedesktop.org/mailman/listinfo/xcb&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/EWMH-API-for-XCB-tp26760629p26771543.html" />
</entry>

</feed>
