fix in rates calculations in GetScreenInfo

This commit is contained in:
Andrey Sidorov 2014-10-04 20:43:29 +10:00
parent 3e3846d6e6
commit cb3cfa91eb

View file

@ -122,11 +122,13 @@ exports.requireExt = function(display, callback)
config_timestamp : res[2], config_timestamp : res[2],
sizeID : res[4], sizeID : res[4],
rotation : res[5], rotation : res[5],
rate : res[6] rate : res[6],
rates: []
}; };
var nSizes = res[3]; var nSizes = res[3];
var nInfo = res[7]; var nRates = res[7];
var screens_len = nSizes << 2; var screens_len = nSizes << 2;
var format = Array(screens_len + 1).join('S'); var format = Array(screens_len + 1).join('S');
res = buf.unpack(format, 24); res = buf.unpack(format, 24);
@ -140,12 +142,8 @@ exports.requireExt = function(display, callback)
}); });
} }
format = Array(nInfo + 1).join('S'); format = Array(nRates + 1).join('S');
res = buf.unpack(format, 24 + screens_len * 2); info.rates = buf.unpack(format, 24 + screens_len * 2);
for (i = 0, j = 0; i < info.screens.length; ++i, j += res[j] + 1) {
info.screens[i].rates = res.slice(j + 1, j + 1 + res[j]);
}
return info; return info;
}, },
cb cb
@ -259,10 +257,15 @@ exports.requireExt = function(display, callback)
event.physHeight = values[8]; event.physHeight = values[8];
event.name = 'RRScreenChangeNotify'; event.name = 'RRScreenChangeNotify';
console.log(event);
return event; return event;
}; };
ext.QueryVersion(255, 255, function(err, version) {
if (err) return callback(err);
ext.major_version = version[0];
ext.minor_version = version[1];
callback(null, ext); callback(null, ext);
}); });
});
} }