X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fevent.c;h=d3ffae12d87952450ffd1d5c54fd553675582e79;hb=4eb9a0c59efb6bfd598e35fe692e6b4b994e499c;hp=cfa3b4e39147b7f0dfca232798182842f3ac19b4;hpb=0d98c4fa7c29b9dec4da74380f4d0e695be53349;p=chaz%2Fopenbox diff --git a/openbox/event.c b/openbox/event.c index cfa3b4e3..d3ffae12 100644 --- a/openbox/event.c +++ b/openbox/event.c @@ -98,13 +98,13 @@ static gboolean focus_delay_func(gpointer data); static gboolean unfocus_delay_func(gpointer data); static void focus_delay_client_dest(ObClient *client, gpointer data); -Time event_last_user_time; +Time event_last_user_time = CurrentTime; /*! The time of the current X event (if it had a timestamp) */ -static Time event_curtime; +static Time event_curtime = CurrentTime; /*! The source time that started the current X event (user-provided, so not to be trusted) */ -static Time event_sourcetime; +static Time event_sourcetime = CurrentTime; /*! The serial of the current X event */ static gulong event_curserial; @@ -146,10 +146,6 @@ void event_startup(gboolean reconfig) #endif client_add_destroy_notify(focus_delay_client_dest, NULL); - - event_curtime = CurrentTime; - event_sourcetime = CurrentTime; - event_last_user_time = CurrentTime; } void event_shutdown(gboolean reconfig) @@ -709,6 +705,9 @@ static void event_process(const XEvent *ec, gpointer data) { used = event_handle_user_input(client, e); + if (prompt && !used) + used = event_handle_prompt(prompt, e); + if (e->type == ButtonPress) { pressed = e->xbutton.button; pressed_win = e->xbutton.subwindow; @@ -1634,7 +1633,6 @@ static void event_handle_client(ObClient *client, XEvent *e) client_update_title(client); } else if (msgtype == OBT_PROP_ATOM(WM_PROTOCOLS)) { client_update_protocols(client); - client_setup_decor_and_functions(client, TRUE); } else if (msgtype == OBT_PROP_ATOM(NET_WM_STRUT) || msgtype == OBT_PROP_ATOM(NET_WM_STRUT_PARTIAL)) { @@ -1859,7 +1857,8 @@ static gboolean event_handle_menu_input(XEvent *ev) else if (sym == XK_Right) { /* Right goes to the selected submenu */ - if (frame->selected->entry->type == OB_MENU_ENTRY_TYPE_SUBMENU) + if (frame->selected && + frame->selected->entry->type == OB_MENU_ENTRY_TYPE_SUBMENU) { /* make sure it is visible */ menu_frame_select(frame, frame->selected, TRUE); @@ -2206,7 +2205,7 @@ gboolean event_time_after(guint32 t1, guint32 t2) gboolean find_timestamp(XEvent *e, gpointer data) { const Time t = event_get_timestamp(e); - if (t != CurrentTime) { + if (t > event_curtime) { event_curtime = t; return TRUE; } @@ -2214,10 +2213,8 @@ gboolean find_timestamp(XEvent *e, gpointer data) return FALSE; } -Time event_time(void) +static Time next_time(void) { - if (event_curtime) return event_curtime; - /* Some events don't come with timestamps :( ...but we can get one anyways >:) */ @@ -2236,7 +2233,19 @@ Time event_time(void) return event_curtime; } +Time event_time(void) +{ + if (event_curtime) return event_curtime; + + return next_time(); +} + Time event_source_time(void) { return event_sourcetime; } + +void event_reset_time(void) +{ + next_time(); +}