pointer_focus(0),
pointer_grabbed(false),
input_focus(0),
+ saved_input_focus(0),
touch_focus(0)
{ }
return false;
}
+void Container::focus_in()
+{
+ if(saved_input_focus && saved_input_focus->get_parent()==this)
+ set_input_focus(saved_input_focus);
+ Widget::focus_in();
+}
+
void Container::focus_out()
{
+ saved_input_focus = input_focus;
set_input_focus(0);
Widget::focus_out();
}
Widget *pointer_focus;
bool pointer_grabbed;
Widget *input_focus;
+ Widget *saved_input_focus;
Widget *touch_focus;
Container();
virtual bool key_press(unsigned, unsigned);
virtual bool key_release(unsigned, unsigned);
virtual bool character(wchar_t);
+ virtual void focus_in();
virtual void focus_out();
virtual bool navigate(Navigation);
virtual void animate(const Time::TimeDelta &);