aboutsummaryrefslogtreecommitdiff
path: root/teensy
diff options
context:
space:
mode:
Diffstat (limited to 'teensy')
-rw-r--r--teensy/teensy_ui.c32
1 files changed, 19 insertions, 13 deletions
diff --git a/teensy/teensy_ui.c b/teensy/teensy_ui.c
index 13993f0..8ee35fb 100644
--- a/teensy/teensy_ui.c
+++ b/teensy/teensy_ui.c
@@ -53,8 +53,10 @@ typedef struct {
ty_Recti rect;
uint32_t flags;
bool focused;
- bool has_lmb;
- bool has_rmb;
+ bool lmb_down;
+ bool rmb_down;
+ bool lmb_pressed;
+ bool rmb_pressed;
} Window;
typedef struct {
@@ -347,7 +349,7 @@ bool tyui_begin_window_ex(tyui_Window_Conf conf, bool *closed_ptr)
ty_pointi_in_recti(mouse_pos, resize_rect) ||
ty_pointi_in_recti(ty_mouse_pos(), resize_rect);
- if (win->has_lmb && hovering_resizer) {
+ if (win->lmb_down && hovering_resizer) {
win->rect.w += md.x;
win->rect.h += md.y;
@@ -362,7 +364,7 @@ bool tyui_begin_window_ex(tyui_Window_Conf conf, bool *closed_ptr)
// Grabbing title bar?
{
if (
- win->has_lmb &&
+ win->lmb_down &&
(ty_pointi_in_recti(mouse_pos, title_rect) ||
ty_pointi_in_recti(ty_mouse_pos(), title_rect))
) {
@@ -437,8 +439,8 @@ bool tyui_button(const char *text)
bool clicked = false;
if (is_hovered(rect)) {
- clicked = window()->has_lmb;
- bg_col = ty_button_down(TY_BTN_DB_LMB)
+ clicked = window()->lmb_pressed;
+ bg_col = window()->lmb_down
? uictx.style.bg_pressed
: uictx.style.bg_hover;
}
@@ -466,8 +468,8 @@ void tyui_slider_ex(
bool clicked = false;
if (is_hovered(rect)) {
- clicked = window()->has_lmb;
- if (ty_button_down(TY_BTN_DB_LMB)) {
+ clicked = window()->lmb_down;
+ if (window()->lmb_down) {
bg_col = uictx.style.bg_pressed;
fg_col = uictx.style.fg_pressed;
} else {
@@ -570,8 +572,10 @@ void update_windows(void)
{
for (int i = 0; i < uictx.window_count; i++) {
Window *win = &uictx.windows[i];
- win->has_lmb = false;
- win->has_rmb = false;
+ win->lmb_down = false;
+ win->rmb_down = false;
+ win->lmb_pressed = false;
+ win->rmb_pressed = false;
win->focused = false;
}
@@ -581,10 +585,12 @@ void update_windows(void)
if (!is_hovered(win->rect))
continue;
- win->has_lmb = ty_button_down(TY_BTN_DB_LMB);
- win->has_rmb = ty_button_down(TY_BTN_DB_RMB);
+ win->lmb_down = ty_button_down(TY_BTN_DB_LMB);
+ win->rmb_down = ty_button_down(TY_BTN_DB_RMB);
+ win->lmb_pressed = ty_button_pressed(TY_BTN_DB_LMB);
+ win->rmb_pressed = ty_button_pressed(TY_BTN_DB_RMB);
- if (win->has_lmb || win->has_rmb)
+ if (win->lmb_down || win->rmb_down)
focus_window(win_id);
break;