all repos — openbox @ 5ff0d07aba5399e1c8eeb8064d1d800e78c4fe9b

openbox fork - make it a bit more like ryudo

update the user-interaction timestamp when running a (non-interactive) action on the focused window
update it at the end of running actions instead of multiple times (once for
 each action)
Dana Jansens danakj@orodu.net
commit

5ff0d07aba5399e1c8eeb8064d1d800e78c4fe9b

parent

d614bebf6a0c4b79d62cf4f703ee6a511fd0b904

3 files changed, 19 insertions(+), 1 deletions(-)

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

@@ -23,6 +23,7 @@ #include "screen.h"

#include "event.h" #include "config.h" #include "client.h" +#include "focus.h" #include "openbox.h" #include "debug.h"

@@ -300,6 +301,7 @@ ObFrameContext con,

struct _ObClient *client) { GSList *it; + gboolean update_user_time; /* Don't allow saving the initial state when running things from the menu */

@@ -309,6 +311,7 @@ /* If x and y are < 0 then use the current pointer position */

if (x < 0 && y < 0) screen_pointer_pos(&x, &y); + update_user_time = FALSE; for (it = acts; it; it = g_slist_next(it)) { ObActionsData data; ObActionsAct *act = it->data;

@@ -337,6 +340,8 @@ if (ok) {

if (!act->def->run(&data, act->options)) { if (actions_act_is_interactive(act)) actions_interactive_end_act(); + if (client && client == focus_client) + update_user_time = TRUE; } else { /* make sure its interactive if it returned TRUE */ g_assert(act->i_input);

@@ -346,6 +351,8 @@ break;

} } } + if (update_user_time) + event_update_user_time(); } gboolean actions_interactive_act_running(void)
M openbox/event.copenbox/event.c

@@ -2246,3 +2246,8 @@ void event_reset_time(void)

{ next_time(); } + +void event_update_user_time(void) +{ + event_last_user_time = event_time(); +}
M openbox/event.hopenbox/event.h

@@ -76,7 +76,13 @@

/*! A time at which an event happened that caused this current event to be generated. This is a user-provided time and not to be trusted. Returns CurrentTime if there was no source time provided. - */ +*/ Time event_source_time(void); + +/*! Update the timestamp for when the user has last used the focused window. + This updates the timestamp to the time of the last event, given by + event_time(). +*/ +void event_update_user_time(void); #endif