+5
src/Loop.zig
+5
src/Loop.zig
···
292
292
return self.postEvent(.{ .mouse = vx.translateMouse(mouse) });
293
293
}
294
294
},
295
+
.mouse_leave => {
296
+
if (@hasField(Event, "mouse_leave")) {
297
+
return self.postEvent(.mouse_leave);
298
+
}
299
+
},
295
300
.focus_in => {
296
301
if (@hasField(Event, "focus_in")) {
297
302
return self.postEvent(.focus_in);
+4
src/Parser.zig
+4
src/Parser.zig
···
25
25
const shift: u8 = 0b00000100;
26
26
const alt: u8 = 0b00001000;
27
27
const ctrl: u8 = 0b00010000;
28
+
const leave: u16 = 0b100000000;
28
29
};
29
30
30
31
// the state of the parser
···
678
679
} else {
679
680
return null_event;
680
681
}
682
+
683
+
if (button_mask & mouse_bits.leave > 0)
684
+
return .{ .event = .mouse_leave, .n = if (xterm) 6 else input.len };
681
685
682
686
const button: Mouse.Button = @enumFromInt(button_mask & mouse_bits.buttons);
683
687
const motion = button_mask & mouse_bits.motion > 0;