all repos — openbox @ 2c98204dfedafcf3d2fa010c1b6ac72110256c8c

openbox fork - make it a bit more like ryudo

make _NET_ACTIVE_WINDOW requests look at the timestamp when the user didn't
request it
Dana Jansens danakj@orodu.net
commit

2c98204dfedafcf3d2fa010c1b6ac72110256c8c

parent

6a61f0c433eeecfb289ab6c9db635e25958a6340

2 files changed, 9 insertions(+), 5 deletions(-)

jump to
M openbox/client.copenbox/client.c

@@ -1859,6 +1859,8 @@ interaction, so in that case, don't change the last user time.

*/ if (new_event) client_last_user_time = time; + + /*ob_debug("window 0x%x user time %u\n", self->window, time);*/ } }

@@ -2950,14 +2952,17 @@ focus_fallback(OB_FOCUS_FALLBACK_CLOSED);

} } -void client_activate(ObClient *self, gboolean here, gboolean user, - Time timestamp) +void client_activate(ObClient *self, gboolean here, gboolean user, Time time) { /* XXX do some stuff here if user is false to determine if we really want to activate it or not (a parent or group member is currently active)? */ - if (!user) + ob_debug("Want to activate window 0x%x with time %u (last time %u), " + "source=%s\n", + self->window, time, client_last_user_time, + (user ? "user" : "application")); + if (!user && time && time < client_last_user_time) client_hilite(self, TRUE); else { if (client_normal(self) && screen_showing_desktop)
M openbox/client.hopenbox/client.h

@@ -486,8 +486,7 @@ @param user If true, then a user action is what requested the activation;

otherwise, it means an application requested it on its own @param timestamp The time at which the activate was requested. */ -void client_activate(ObClient *self, gboolean here, gboolean user, - Time timestamp); +void client_activate(ObClient *self, gboolean here, gboolean user, Time time); /*! Calculates the stacking layer for the client window */ void client_calc_layer(ObClient *self);