aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBad Diode <bd@badd10de.dev>2022-10-12 14:36:28 +0200
committerBad Diode <bd@badd10de.dev>2022-10-12 14:36:28 +0200
commite101b44b986811b3e37bccae230fcb73adc4dee2 (patch)
treec46793ff4af6cae5d7cac69c5a26c549ac0fb532
parent39b47de235fa881637606d777a0f6beb6a5a57dc (diff)
downloaduxnfb-e101b44b986811b3e37bccae230fcb73adc4dee2.tar.gz
uxnfb-e101b44b986811b3e37bccae230fcb73adc4dee2.zip
[WIP] Add mouse click input
-rw-r--r--src/main.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/main.c b/src/main.c
index c9bd4b1..2c0e397 100644
--- a/src/main.c
+++ b/src/main.c
@@ -118,7 +118,6 @@ poll_mouse(void) {
118 struct input_event mouse_event; 118 struct input_event mouse_event;
119 if (read(in.mouse_fd, &mouse_event, sizeof(mouse_event)) != -1) { 119 if (read(in.mouse_fd, &mouse_event, sizeof(mouse_event)) != -1) {
120 if (mouse_event.type == EV_REL) { 120 if (mouse_event.type == EV_REL) {
121 printf("MOUSE REL EVENT\n");
122 if (mouse_event.code == REL_X) { 121 if (mouse_event.code == REL_X) {
123 in.mouse.x = CLAMP( 122 in.mouse.x = CLAMP(
124 in.mouse.x / zoom + (s32)mouse_event.value, 0, (s32)screen_width); 123 in.mouse.x / zoom + (s32)mouse_event.value, 0, (s32)screen_width);
@@ -127,14 +126,12 @@ poll_mouse(void) {
127 in.mouse.y / zoom + (s32)mouse_event.value, 0, (s32)screen_height); 126 in.mouse.y / zoom + (s32)mouse_event.value, 0, (s32)screen_height);
128 } 127 }
129 } else if (mouse_event.type == EV_ABS) { 128 } else if (mouse_event.type == EV_ABS) {
130 printf("MOUSE ABS EVENT\n");
131 if (mouse_event.code == ABS_X) { 129 if (mouse_event.code == ABS_X) {
132 in.mouse.x = CLAMP((s32)mouse_event.value / zoom, 0, (s32)screen_width); 130 in.mouse.x = CLAMP((s32)mouse_event.value / zoom, 0, (s32)screen_width);
133 } else if (mouse_event.code == ABS_Y) { 131 } else if (mouse_event.code == ABS_Y) {
134 in.mouse.y = CLAMP((s32)mouse_event.value / zoom, 0, (s32)screen_height); 132 in.mouse.y = CLAMP((s32)mouse_event.value / zoom, 0, (s32)screen_height);
135 } 133 }
136 } else if (mouse_event.type == EV_KEY) { 134 } else if (mouse_event.type == EV_KEY) {
137 printf("MOUSE KEY EVENT\n");
138 switch (mouse_event.code) { 135 switch (mouse_event.code) {
139 case BTN_LEFT: { 136 case BTN_LEFT: {
140 if (mouse_event.value == 1) { 137 if (mouse_event.value == 1) {
@@ -150,7 +147,14 @@ poll_mouse(void) {
150 in.mouse.buttons &= ~0x10; 147 in.mouse.buttons &= ~0x10;
151 } 148 }
152 } break; 149 } break;
153 default: break; 150 default: {
151 // NOTE: nook press.
152 if (mouse_event.value == 1) {
153 in.mouse.buttons |= 0x01;
154 } else {
155 in.mouse.buttons &= ~0x01;
156 }
157 } break;
154 } 158 }
155 } 159 }
156 in.mouse.update = true; 160 in.mouse.update = true;