diff options
author | Michael Drake <tlsa@netsurf-browser.org> | 2012-07-31 22:14:48 +0100 |
---|---|---|
committer | Michael Drake <tlsa@netsurf-browser.org> | 2012-07-31 22:14:48 +0100 |
commit | 72cb5b6ea47986acab5ec2bc0463db31b9330237 (patch) | |
tree | 5d86e9d98acd8ae6a1e59a312df5f3cd1b24d9cf /framebuffer | |
parent | daa47fce528aa2dc5eb2c089ac106c744c91a8bb (diff) | |
download | netsurf-72cb5b6ea47986acab5ec2bc0463db31b9330237.tar.gz netsurf-72cb5b6ea47986acab5ec2bc0463db31b9330237.tar.bz2 |
Add widget callback for getting stripped of focus. Call it in the input setter, on previous input holder.
Diffstat (limited to 'framebuffer')
-rw-r--r-- | framebuffer/fbtk.h | 1 | ||||
-rw-r--r-- | framebuffer/fbtk/fbtk.c | 10 |
2 files changed, 11 insertions, 0 deletions
diff --git a/framebuffer/fbtk.h b/framebuffer/fbtk.h index a3f01557a..f2b09e51f 100644 --- a/framebuffer/fbtk.h +++ b/framebuffer/fbtk.h @@ -48,6 +48,7 @@ typedef enum fbtk_callback_type { FBTK_CBT_REDRAW, FBTK_CBT_DESTROY, FBTK_CBT_USER, + FBTK_CBT_STRIP_FOCUS, FBTK_CBT_END, } fbtk_callback_type; diff --git a/framebuffer/fbtk/fbtk.c b/framebuffer/fbtk/fbtk.c index d333d20ff..b29fe9fb1 100644 --- a/framebuffer/fbtk/fbtk.c +++ b/framebuffer/fbtk/fbtk.c @@ -729,6 +729,9 @@ fbtk_post_callback(fbtk_widget_t *widget, fbtk_callback_type cbt, ...) case FBTK_CBT_USER: break; + case FBTK_CBT_STRIP_FOCUS: + break; + default: break; } @@ -749,6 +752,13 @@ fbtk_set_focus(fbtk_widget_t *widget) /* ensure we have the root widget */ root = fbtk_get_root_widget(widget); + if (root->u.root.input != NULL && + root->u.root.input != widget) { + /* inform previous holder of focus that it's being stripped + * of focus */ + fbtk_post_callback(root->u.root.input, FBTK_CBT_STRIP_FOCUS); + } + root->u.root.input = widget; } |