summaryrefslogtreecommitdiffstats
path: root/src/tk/window.c
diff options
context:
space:
mode:
authorP. 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)
commit8473a1dfde3193e989c4d1fd371db99cf5a104c6 (patch)
tree4db27e02863b64a62bf21aef4dd92644de74ecd7 /src/tk/window.c
parent1402cf4dd9ee0450ed11fce7ca01c15da31aa8dd (diff)
downloadmazefight-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.c5
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