From 521cdeb10517cf66f097228398d0be7339f581e0 Mon Sep 17 00:00:00 2001 From: Andrey Sidorov Date: Fri, 1 Nov 2013 13:51:50 +1100 Subject: [PATCH] fix RRScreenChangeNotify event parser --- lib/ext/randr.js | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/lib/ext/randr.js b/lib/ext/randr.js index 17e37f2..e718ceb 100644 --- a/lib/ext/randr.js +++ b/lib/ext/randr.js @@ -41,33 +41,35 @@ exports.requireExt = function(display, callback) All: 15 }; - ext.SelectInput = function(mask) + ext.SelectInput = function(win, mask) { X.seq_num++; - X.pack_stream.pack('CCSL', [ext.majorOpcode, 6, 2, mask]); + X.pack_stream.pack('CCSLSS', [ext.majorOpcode, 4, 3, win, mask, 0]); X.pack_stream.flush(); }, X.eventParsers[ext.firstEvent + ext.events.RRScreenChangeNotify] = function(type, seq, extra, code, raw) { - var event = {}; - event.level = code; - event.seq = seq; - event.rotation = extra; // always 0 - var values = raw.unpack('LLLLSSSSSS'); - event.time = values[0]; - event.configtime = values[1]; - event.root = values[2]; - event.requestWindow = values[3]; - event.sizeId = values[4]; - event.subpixelOrder = values[5]; - event.width = values[6]; - event.height = values[7]; - event.physWidth = values[8]; - event.physHeight = values[9]; + var event = {}; + event.raw = raw; + event.type = type + event.seq = seq; + event.rotation = code; + var values = raw.unpack('LLLSSSSSS'); + event.time = extra + event.configtime = values[0]; + event.root = values[1]; + event.requestWindow = values[2]; + event.sizeId = values[3]; + event.subpixelOrder = values[4]; + event.width = values[5]; + event.height = values[6]; + event.physWidth = values[7]; + event.physHeight = values[8]; event.name = 'RRScreenChangeNotify'; - return event; + console.log(event); + return event; }; callback(ext);