@@ -110,9 +110,7 @@ static void sandbox_sdl_poll_events(void)
m->button.button = BUTTON_MIDDLE;
else if (event.button.button == SDL_BUTTON_RIGHT)
m->button.button = BUTTON_RIGHT;
- m->button.press_state = event.type ==
- SDL_MOUSEBUTTONDOWN ?
- BUTTON_PRESSED : BUTTON_RELEASED;
+ m->button.pressed = event.type == SDL_MOUSEBUTTONDOWN;
m->button.x = event.button.x;
m->button.y = event.motion.y;
break;
@@ -35,7 +35,7 @@ static int do_mouse_dump(struct cmd_tbl *cmdtp, int flag, int argc,
struct mouse_button *but = &evt.button;
printf("button: button==%d, press=%d, clicks=%d, X=%d, Y=%d\n",
- but->button, but->press_state,
+ but->button, but->pressed,
but->clicks, but->x, but->y);
break;
}
@@ -78,7 +78,7 @@ static int efi_mouse_get_event(struct udevice *dev, struct mouse_event *event)
u8 mask = 1 << i;
if (diff & mask) {
but->button = i;
- but->press_state = (new_buttons & mask) ? 1 : 0;
+ but->pressed = (new_buttons & mask) ? true : false;
but->clicks = 1;
but->x = priv->x;
but->y = priv->y;
@@ -51,18 +51,17 @@ int mouse_get_click(struct udevice *dev, struct vid_pos *pos)
/* Only process button events for left button */
if (event.type == MOUSE_EV_BUTTON &&
event.button.button == BUTTON_LEFT) {
- bool pressed = event.button.press_state == BUTTON_PRESSED;
bool pending = false;
/* Detect press->release transition (click) */
- if (uc_priv->left_pressed && !pressed) {
+ if (uc_priv->left_pressed && !event.button.pressed) {
pending = true;
uc_priv->click_pos.x = event.button.x;
uc_priv->click_pos.y = event.button.y;
}
/* Update button state */
- uc_priv->left_pressed = pressed;
+ uc_priv->left_pressed = event.button.pressed;
/* If we just detected a click, return it */
if (pending) {
@@ -142,7 +142,7 @@ static int usb_mouse_get_event(struct udevice *dev, struct mouse_event *event)
if (diff && mask) {
but->button = i;
- but->press_state = priv->buttons & mask;
+ but->pressed = priv->buttons & mask;
but->clicks = 1;
but->x = priv->x;
but->y = priv->y;
@@ -27,9 +27,6 @@ enum mouse_state_t {
BUTTON_SCROLL_MINUS = 1 << 4,
};
-#define BUTTON_RELEASED 0
-#define BUTTON_PRESSED 1
-
/**
* struct mouse_uc_priv - pre-device private data for mouse uclass
*
@@ -74,14 +71,14 @@ struct mouse_event {
/**
* @button: Button number that was pressed/released (BUTTON_...)
- * @state: BUTTON_PRESSED / BUTTON_RELEASED
+ * @pressed: True if button was pressed, false if released
* @clicks: number of clicks (normally 1; 2 = double-click)
* @x: X position of mouse
* @y: Y position of mouse
*/
struct mouse_button {
unsigned char button;
- unsigned char press_state;
+ bool pressed;
unsigned char clicks;
unsigned short x;
unsigned short y;
@@ -75,7 +75,7 @@ static int dm_test_mouse_button(struct unit_test_state *uts)
/* inject a button press event */
inject.type = MOUSE_EV_BUTTON;
inject.button.button = BUTTON_LEFT;
- inject.button.press_state = BUTTON_PRESSED;
+ inject.button.pressed = true;
inject.button.clicks = 1;
inject.button.x = 150;
inject.button.y = 250;
@@ -86,7 +86,7 @@ static int dm_test_mouse_button(struct unit_test_state *uts)
ut_assertok(mouse_get_event(dev, &event));
ut_asserteq(MOUSE_EV_BUTTON, event.type);
ut_asserteq(BUTTON_LEFT, event.button.button);
- ut_asserteq(BUTTON_PRESSED, event.button.press_state);
+ ut_asserteq(true, event.button.pressed);
ut_asserteq(1, event.button.clicks);
ut_asserteq(150, event.button.x);
ut_asserteq(250, event.button.y);
@@ -112,7 +112,7 @@ static int dm_test_mouse_click(struct unit_test_state *uts)
/* inject a left button press */
inject.type = MOUSE_EV_BUTTON;
inject.button.button = BUTTON_LEFT;
- inject.button.press_state = BUTTON_PRESSED;
+ inject.button.pressed = true;
inject.button.clicks = 1;
inject.button.x = 300;
inject.button.y = 400;
@@ -128,7 +128,7 @@ static int dm_test_mouse_click(struct unit_test_state *uts)
/* inject a left button release */
inject.type = MOUSE_EV_BUTTON;
inject.button.button = BUTTON_LEFT;
- inject.button.press_state = BUTTON_RELEASED;
+ inject.button.pressed = false;
inject.button.clicks = 1;
inject.button.x = 300;
inject.button.y = 400;
@@ -161,7 +161,7 @@ static int dm_test_mouse_click_no_coordinates(struct unit_test_state *uts)
/* inject press and release to create a click */
inject.type = MOUSE_EV_BUTTON;
inject.button.button = BUTTON_LEFT;
- inject.button.press_state = BUTTON_PRESSED;
+ inject.button.pressed = true;
inject.button.clicks = 1;
inject.button.x = 500;
inject.button.y = 600;
@@ -170,7 +170,7 @@ static int dm_test_mouse_click_no_coordinates(struct unit_test_state *uts)
/* process the press event */
ut_asserteq(-EAGAIN, mouse_get_click(dev, &pos));
- inject.button.press_state = BUTTON_RELEASED;
+ inject.button.pressed = false;
sandbox_mouse_inject(dev, &inject);
/* now test that click is detected (coordinates are ignored) */
@@ -197,7 +197,7 @@ static int dm_test_mouse_right_button(struct unit_test_state *uts)
*/
inject.type = MOUSE_EV_BUTTON;
inject.button.button = BUTTON_RIGHT;
- inject.button.press_state = BUTTON_PRESSED;
+ inject.button.pressed = true;
inject.button.clicks = 1;
inject.button.x = 100;
inject.button.y = 200;
@@ -205,7 +205,7 @@ static int dm_test_mouse_right_button(struct unit_test_state *uts)
ut_asserteq(-EAGAIN, mouse_get_click(dev, &pos));
- inject.button.press_state = BUTTON_RELEASED;
+ inject.button.pressed = false;
sandbox_mouse_inject(dev, &inject);
/* still no click detected since it was right button */