]> git.decadent.org.uk Git - ion3.git/blobdiff - ioncore/focus.c
Imported upstream version 20090526
[ion3.git] / ioncore / focus.c
index 573dcebb0203d334cc2a2dcdf455d44c36e8da5f..1ea72a71175ac48029767264a96236df2d9bfce0 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * ion/ioncore/focus.c
  *
- * Copyright (c) Tuomo Valkonen 1999-2007
+ * Copyright (c) Tuomo Valkonen 1999-2009
  *
  * See the included file LICENSE for details.
  */
@@ -101,7 +101,8 @@ WRegion *ioncore_goto_previous()
 
 /*EXTL_DOC
  * Iterate over focus history until \var{iterfn} returns \code{false}.
- * The function itself returns \code{true} if it reaches the end of list
+ * The function is called in protected mode.
+ * This routine returns \code{true} if it reaches the end of list
  * without this happening.
  */
 EXTL_EXPORT
@@ -300,13 +301,14 @@ void region_lost_focus(WRegion *reg)
  */
 EXTL_SAFE
 EXTL_EXPORT_MEMBER
-bool region_is_active(WRegion *reg)
+bool region_is_active(WRegion *reg, bool pseudoact_ok)
 {
-    return REGION_IS_ACTIVE(reg);
+    return (REGION_IS_ACTIVE(reg) || 
+            (pseudoact_ok && REGION_IS_PSEUDOACTIVE(reg)));
 }
 
 
-static bool region_manager_is_focusnext(WRegion *reg)
+bool region_manager_is_focusnext(WRegion *reg)
 {
     if(reg==NULL || ioncore_g.focus_next==NULL)
         return FALSE;
@@ -345,7 +347,7 @@ bool region_may_control_focus(WRegion *reg)
 /*Time ioncore_focus_time=CurrentTime;*/
 
 
-void region_finalise_focusing(WRegion* reg, Window win, bool warp)
+void region_finalise_focusing(WRegion* reg, Window win, bool warp, Time time)
 {
     if(warp)
         region_do_warp(reg);
@@ -354,10 +356,7 @@ void region_finalise_focusing(WRegion* reg, Window win, bool warp)
         return;
     
     region_set_await_focus(reg);
-    /*xwindow_do_set_focus(win);*/
-    XSetInputFocus(ioncore_g.dpy, win, RevertToParent, 
-                   CurrentTime/*ioncore_focus_time*/);
-    /*ioncore_focus_time=CurrentTime;*/
+    XSetInputFocus(ioncore_g.dpy, win, RevertToParent, time);
 }