| 3125 | }, |
| 3126 | |
| 3127 | extendedPointerEvent(sock, x, y, mask) { |
| 3128 | sock.sQpush8(5); // msg-type |
| 3129 | |
| 3130 | let higherBits = (mask >> 7) & 0xff; |
| 3131 | |
| 3132 | // Bits 2-7 are reserved |
| 3133 | if (higherBits & 0xfc) { |
| 3134 | throw new Error("Invalid mouse button mask: " + mask); |
| 3135 | } |
| 3136 | |
| 3137 | let lowerBits = mask & 0x7f; |
| 3138 | lowerBits |= 0x80; // Set marker bit to 1 |
| 3139 | |
| 3140 | sock.sQpush8(lowerBits); |
| 3141 | sock.sQpush16(x); |
| 3142 | sock.sQpush16(y); |
| 3143 | sock.sQpush8(higherBits); |
| 3144 | |
| 3145 | sock.flush(); |
| 3146 | }, |
| 3147 | |
| 3148 | // Used to build Notify and Request data. |
| 3149 | _buildExtendedClipboardFlags(actions, formats) { |