diff --git a/lib/xcore.js b/lib/xcore.js index 975a485..fc93bfc 100644 --- a/lib/xcore.js +++ b/lib/xcore.js @@ -301,7 +301,7 @@ XClient.prototype.unpackEvent = function(type, seq, extra, code, raw, headerBuf) event.height = values[3]; event.count = values[4]; // TODO: ??? } else if (type == 16) { // CreateNotify - var values = raw.unpack('LLssSSSc'); + var values = raw.unpack('LssSSSc'); event.name = 'CreateNotify' event.parent = extra; event.wid = values[0]; diff --git a/test/core-CreateWindow.js b/test/core-CreateWindow.js index 11aa147..197288b 100644 --- a/test/core-CreateWindow.js +++ b/test/core-CreateWindow.js @@ -57,4 +57,24 @@ describe('CreateWindow request', function() { done(); }); }); + + it('should emit CreateNotify event when', function(done) { + var wid = X.AllocID(); + var root = display.screen[0].root; + X.ChangeWindowAttributes(root, { eventMask: x11.eventMask.SubstructureNotify }); + X.on('event', function(ev) { + ev.name.should.equal('CreateNotify'); + ev.parent.should.equal(root); + ev.wid.should.equal(wid); + ev.x.should.equal(0); + ev.y.should.equal(0); + ev.width.should.equal(1); + ev.height.should.equal(1); + ev.borderWidth.should.equal(0); + ev.overrideRedirect.should.equal(false); + done(); + }); + + X.CreateWindow(wid, root, 0, 0, 1, 1); // 1x1 pixel window + }) });