X-Git-Url: https://git.decadent.org.uk/gitweb/?p=ion3.git;a=blobdiff_plain;f=ioncore%2Ffocus.h;h=bf7cc06e4ac4295d362b13868cbafcdcf0b74993;hp=e995d6d087fb3f4421ab58a3d040dac3e7460b7c;hb=e3aec18706513a87eaa7839dfdaf7e0fcd0d8d2a;hpb=8366314611bf30a0f31d25bf5f5023186fa87692 diff --git a/ioncore/focus.h b/ioncore/focus.h index e995d6d..bf7cc06 100644 --- a/ioncore/focus.h +++ b/ioncore/focus.h @@ -1,12 +1,9 @@ /* * ion/ioncore/focus.h * - * Copyright (c) Tuomo Valkonen 1999-2006. + * Copyright (c) Tuomo Valkonen 1999-2009. * - * Ion is free software; you can redistribute it and/or modify it under - * the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation; either version 2.1 of the License, or - * (at your option) any later version. + * See the included file LICENSE for details. */ #ifndef ION_IONCORE_FOCUS_H @@ -17,22 +14,24 @@ #include "window.h" #include "region.h" -DYNFUN void region_do_set_focus(WRegion *reg, bool warp); /* Delayed (until return to main loop) warp/focus */ -extern void region_warp(WRegion *reg); -extern void region_set_focus(WRegion *reg); extern void region_maybewarp(WRegion *reg, bool warp); +/* warp/focus now; do not skip enter window events etc. in mainloop */ +extern void region_maybewarp_now(WRegion *reg, bool warp); -/* Immediate warp/focus */ -extern void region_do_warp(WRegion *reg); -extern bool region_do_warp_default(WRegion *reg); +extern void region_warp(WRegion *reg); /* maybewarp TRUE */ +extern void region_set_focus(WRegion *reg); /* maybewarp FALSE */ extern void region_finalise_focusing(WRegion* reg, Window win, bool warp); +DYNFUN void region_do_set_focus(WRegion *reg, bool warp); +extern void region_do_warp(WRegion *reg); +extern bool region_do_warp_default(WRegion *reg); + /* Awaiting focus state */ extern void region_set_await_focus(WRegion *reg); -extern bool ioncore_await_focus(); +extern WRegion *ioncore_await_focus(); /* Event handling */ extern void region_got_focus(WRegion *reg); @@ -40,25 +39,26 @@ extern void region_lost_focus(WRegion *reg); /* May reg transfer focus to its children? */ extern bool region_may_control_focus(WRegion *reg); +extern bool region_manager_is_focusnext(WRegion *reg); /* Does reg have focus? */ -extern bool region_is_active(WRegion *reg); +extern bool region_is_active(WRegion *reg, bool pseudoact_ok); /* Focus history */ -extern void region_focuslist_remove(WRegion *reg); +extern void region_focuslist_remove_with_mgrs(WRegion *reg); extern void region_focuslist_push(WRegion *reg); extern void region_focuslist_move_after(WRegion *reg, WRegion *after); extern void region_focuslist_deinit(WRegion *reg); extern WRegion *ioncore_goto_previous(); -/* Handlers to these shook should take WRegion* as parameter. */ +/* Handlers to this hook should take WRegion* as parameter. */ extern WHook *region_do_warp_alt; -extern WHook *region_activated_hook; -extern WHook *region_inactivated_hook; /* Misc. */ extern bool region_skip_focus(WRegion *reg); WRegion *ioncore_current(); +extern void region_pointer_focus_hack(WRegion *reg); + #endif /* ION_IONCORE_FOCUS_H */