mirror of
https://github.com/danbulant/node-x11
synced 2026-07-05 11:10:58 +00:00
Merge pull request #104 from santigimeno/test_create_notify
src: fix CreateNotify parsing and add new test
This commit is contained in:
commit
71599b100f
2 changed files with 48 additions and 5 deletions
10
lib/xcore.js
10
lib/xcore.js
|
|
@ -301,7 +301,7 @@ XClient.prototype.unpackEvent = function(type, seq, extra, code, raw, headerBuf)
|
||||||
event.height = values[3];
|
event.height = values[3];
|
||||||
event.count = values[4]; // TODO: ???
|
event.count = values[4]; // TODO: ???
|
||||||
} else if (type == 16) { // CreateNotify
|
} else if (type == 16) { // CreateNotify
|
||||||
var values = raw.unpack('LLssSSSc');
|
var values = raw.unpack('LssSSSc');
|
||||||
event.name = 'CreateNotify'
|
event.name = 'CreateNotify'
|
||||||
event.parent = extra;
|
event.parent = extra;
|
||||||
event.wid = values[0];
|
event.wid = values[0];
|
||||||
|
|
@ -313,24 +313,24 @@ XClient.prototype.unpackEvent = function(type, seq, extra, code, raw, headerBuf)
|
||||||
event.overrideRedirect = values[6] ? true : false;
|
event.overrideRedirect = values[6] ? true : false;
|
||||||
// x, y, width, height, border
|
// x, y, width, height, border
|
||||||
} else if (type == 17) { // destroy notify
|
} else if (type == 17) { // destroy notify
|
||||||
var values = raw.unpack('LL');
|
var values = raw.unpack('L');
|
||||||
event.name = 'DestroyNotify'
|
event.name = 'DestroyNotify'
|
||||||
event.event = extra;
|
event.event = extra;
|
||||||
event.wid = values[0];
|
event.wid = values[0];
|
||||||
} else if (type == 18) { // UnmapNotify
|
} else if (type == 18) { // UnmapNotify
|
||||||
var values = raw.unpack('LLC');
|
var values = raw.unpack('LC');
|
||||||
event.name = 'UnmapNotify'
|
event.name = 'UnmapNotify'
|
||||||
event.event = extra;
|
event.event = extra;
|
||||||
event.wid = values[0];
|
event.wid = values[0];
|
||||||
event.fromConfigure = values[1] ? true : false;
|
event.fromConfigure = values[1] ? true : false;
|
||||||
} else if (type == 19) { // MapNotify
|
} else if (type == 19) { // MapNotify
|
||||||
var values = raw.unpack('LLC');
|
var values = raw.unpack('LC');
|
||||||
event.name = 'MapNotify'
|
event.name = 'MapNotify'
|
||||||
event.event = extra;
|
event.event = extra;
|
||||||
event.wid = values[0];
|
event.wid = values[0];
|
||||||
event.overrideRedirect = values[1] ? true : false;
|
event.overrideRedirect = values[1] ? true : false;
|
||||||
} else if (type == 20) {
|
} else if (type == 20) {
|
||||||
var values = raw.unpack('LL');
|
var values = raw.unpack('L');
|
||||||
event.name = 'MapRequest'
|
event.name = 'MapRequest'
|
||||||
event.parent = extra;
|
event.parent = extra;
|
||||||
event.wid = values[0];
|
event.wid = values[0];
|
||||||
|
|
|
||||||
|
|
@ -57,4 +57,47 @@ describe('CreateWindow request', function() {
|
||||||
done();
|
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) {
|
||||||
|
switch (ev.name) {
|
||||||
|
case '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);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'MapNotify':
|
||||||
|
ev.event.should.equal(root);
|
||||||
|
ev.wid.should.equal(wid);
|
||||||
|
ev.overrideRedirect.should.equal(false);
|
||||||
|
X.UnmapWindow(wid);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'UnmapNotify':
|
||||||
|
ev.event.should.equal(root);
|
||||||
|
ev.wid.should.equal(wid);
|
||||||
|
ev.fromConfigure.should.equal(false);
|
||||||
|
X.DestroyWindow(wid);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'DestroyNotify':
|
||||||
|
ev.event.should.equal(root);
|
||||||
|
ev.wid.should.equal(wid);
|
||||||
|
done();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
X.CreateWindow(wid, root, 0, 0, 1, 1); // 1x1 pixel window
|
||||||
|
X.MapWindow(wid);
|
||||||
|
})
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue