diff options
author | P. J. McDermott <pj@pehjota.net> | 2021-08-06 18:42:05 (EDT) |
---|---|---|
committer | P. J. McDermott <pj@pehjota.net> | 2021-08-06 18:53:02 (EDT) |
commit | 8473a1dfde3193e989c4d1fd371db99cf5a104c6 (patch) | |
tree | 4db27e02863b64a62bf21aef4dd92644de74ecd7 /src/tk/window.c | |
parent | 1402cf4dd9ee0450ed11fce7ca01c15da31aa8dd (diff) | |
download | mazefight-8473a1dfde3193e989c4d1fd371db99cf5a104c6.zip mazefight-8473a1dfde3193e989c4d1fd371db99cf5a104c6.tar.gz mazefight-8473a1dfde3193e989c4d1fd371db99cf5a104c6.tar.bz2 |
tk: Add (de)focus methods
Diffstat (limited to 'src/tk/window.c')
-rw-r--r-- | src/tk/window.c | 5 |
1 files changed, 5 insertions, 0 deletions
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 |