From 8473a1dfde3193e989c4d1fd371db99cf5a104c6 Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Fri, 06 Aug 2021 18:42:05 -0400 Subject: tk: Add (de)focus methods --- (limited to 'src/tk/window.c') diff --git a/src/tk/window.c b/src/tk/window.c index 64040bf..651a37b 100644 --- a/src/tk/window.c +++ b/src/tk/window.c @@ -49,6 +49,7 @@ mftk_window_new(struct mftk_widget *root) mftk_widget_index(w->root, w); w->focus = w->first; w->focus->focused = SDL_TRUE; + mftk_widget_focus(w->focus); return w; } @@ -80,12 +81,14 @@ mftk_window_event(struct mftk_window *w, SDL_Event *e) switch (e->key.keysym.sym) { case SDLK_TAB: w->focus->focused = SDL_FALSE; + mftk_widget_defocus(w->focus); if (e->key.keysym.mod & KMOD_SHIFT) { w->focus = w->focus->prev; } else { w->focus = w->focus->next; } w->focus->focused = SDL_TRUE; + mftk_widget_focus(w->focus); break; default: return mftk_widget_key_event(w->focus, @@ -105,8 +108,10 @@ void mftk_window_focus(struct mftk_window *win, struct mftk_widget *wid) { win->focus->focused = SDL_FALSE; + mftk_widget_defocus(win->focus); win->focus = wid; win->focus->focused = SDL_TRUE; + mftk_widget_focus(win->focus); } int -- cgit v0.9.1