| 3304 | }, |
| 3305 | |
| 3306 | extendedPointerEvent(sock, x, y, mask) { |
| 3307 | sock.sQpush8(5); // msg-type |
| 3308 | |
| 3309 | let higherBits = (mask >> 7) & 0xff; |
| 3310 | |
| 3311 | // Bits 2-7 are reserved |
| 3312 | if (higherBits & 0xfc) { |
| 3313 | throw new Error("Invalid mouse button mask: " + mask); |
| 3314 | } |
| 3315 | |
| 3316 | let lowerBits = mask & 0x7f; |
| 3317 | lowerBits |= 0x80; // Set marker bit to 1 |
| 3318 | |
| 3319 | sock.sQpush8(lowerBits); |
| 3320 | sock.sQpush16(x); |
| 3321 | sock.sQpush16(y); |
| 3322 | sock.sQpush8(higherBits); |
| 3323 | |
| 3324 | sock.flush(); |
| 3325 | }, |
| 3326 | |
| 3327 | // Used to build Notify and Request data. |
| 3328 | _buildExtendedClipboardFlags(actions, formats) { |