- const Geometry &cgeom = pointer_focus->get_geometry();
- pointer_focus->pointer_motion(x-cgeom.x, y-cgeom.y);
- }
- else
- {
- set_pointer_focus(get_child_at(x, y));
- Container::pointer_motion(x, y);
- }
-}
-
-void Panel::pointer_leave()
-{
- Container::pointer_leave();
- set_pointer_focus(0);
-}
-
-void Panel::key_press(unsigned key, unsigned mod, wchar_t ch)
-{
- if(input_focus)
- input_focus->key_press(key, mod, ch);
-}
-
-void Panel::key_release(unsigned key, unsigned mod)
-{
- if(input_focus)
- input_focus->key_release(key, mod);
-}
-
-void Panel::focus_out()
-{
- set_input_focus(0);
-}
-
-void Panel::set_pointer_focus(Widget *wdg)
-{
- if(wdg!=pointer_focus)
- {
- if(pointer_focus)
- pointer_focus->pointer_leave();
-
- pointer_focus = wdg;
-
- if(pointer_focus)
- pointer_focus->pointer_enter();
- }
-}
-
-void Panel::set_input_focus(Widget *wdg)
-{
- if(wdg!=input_focus)
- {
- if(input_focus)
- input_focus->focus_out();
-
- input_focus = wdg;
-
- if(input_focus)
- {
- raise(*wdg);
- input_focus->focus_in();
- }