diff --git a/examples/smoketest/selections.js b/examples/smoketest/selections.js new file mode 100644 index 0000000..0f2f601 --- /dev/null +++ b/examples/smoketest/selections.js @@ -0,0 +1,13 @@ +var x11 = require('../../lib/x11'); + +x11.createClient(function(display) { + var X = display.client; + var id = parseInt(process.argv[2]); + var root = display.screen[0].root; + X.SetSelectionOwner(root, X.atoms.PRIMARY); + X.GetSelectionOwner(X.atoms.PRIMARY, function(err, win) { + console.log(err, win, root); + }); + X.on('event', console.log); + X.on('error', console.error); +}); diff --git a/lib/x11/corereqs.js b/lib/x11/corereqs.js index 0cfc159..1519a21 100644 --- a/lib/x11/corereqs.js +++ b/lib/x11/corereqs.js @@ -334,6 +334,27 @@ module.exports = { } ], + SetSelectionOwner: [ + function(owner, selection, time) + { + if (!time) + time = 0; // current time + return ['CxSLLL', [22, 4, owner, selection, time]]; + } + ], + + GetSelectionOwner: [ + function(selection) + { + return ['CxSL', [23, 2, selection]]; + }, + + function(buf) { + console.log(buf); + return buf.unpack('L')[0]; + } + ], + SendEvent: [ function(destination, propagate, eventMask, eventRawData)