diff options
Diffstat (limited to 'src/ui/widget.cc')
-rw-r--r-- | src/ui/widget.cc | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/ui/widget.cc b/src/ui/widget.cc index 2e2f291..39fbe98 100644 --- a/src/ui/widget.cc +++ b/src/ui/widget.cc @@ -321,7 +321,21 @@ bool Widget::has_input_focus() const /* -- event distributors ------------------------------------------- */ +bool Widget::event_emit(Widget *sender, const Event event, void *data) +// Unhandled events are sent to the parent widget +{ + if (on_emit(sender, event, data)) { + return true; + } else if (parent()) { + return (parent()->on_emit(sender, event, data)); + } else { + return false; + } +} + + bool Widget::event_key(const bool pressed, const int key, const unsigned int modifier) +// Unhandled key events are sent to the parent widget { bool handled = false; @@ -400,6 +414,11 @@ bool Widget::on_keyrelease(const int key, const unsigned int modifier) return false; } +bool Widget::on_emit(Widget *sender, const Event event, void *data) +{ + return false; +} + /* -- draw functions ----------------------------------------------- */ void Widget::draw_debug_border() |