X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=openbox%2Fevent.c;h=e198eaa1aacfacaea51e32ba19ff03862ffe846c;hb=8f988b2bef5af05f0b5cddbc11b05c833158df5a;hp=2dde13299585928cbd62966b0b969c3162312c0c;hpb=99ec7f6f7bc8a09a091de0d1ef81370bcd13887a;p=chaz%2Fopenbox diff --git a/openbox/event.c b/openbox/event.c index 2dde1329..e198eaa1 100644 --- a/openbox/event.c +++ b/openbox/event.c @@ -700,6 +700,8 @@ static void event_process(const XEvent *ec, gpointer data) static guint pressed = 0; static Window pressed_win = None; + event_sourcetime = event_curtime; + /* If the button press was on some non-root window, or was physically on the root window... */ if (window != obt_root(ob_screen) || @@ -726,12 +728,17 @@ static void event_process(const XEvent *ec, gpointer data) else if (e->type == KeyPress || e->type == KeyRelease || e->type == MotionNotify) { + event_sourcetime = event_curtime; + used = event_handle_user_input(client, e); if (prompt && !used) used = event_handle_prompt(prompt, e); } + /* show any debug prompts that are queued */ + ob_debug_show_prompts(); + /* if something happens and it's not from an XEvent, then we don't know the time, so clear it here until the next event is handled */ event_curtime = event_sourcetime = CurrentTime; @@ -806,11 +813,14 @@ void event_enter_client(ObClient *client) g_assert(config_focus_follow); if (is_enter_focus_event_ignored(event_curserial)) { - ob_debug_type(OB_DEBUG_FOCUS, "Ignoring enter event with serial %lu\n" + ob_debug_type(OB_DEBUG_FOCUS, "Ignoring enter event with serial %lu " "on client 0x%x", event_curserial, client->window); return; } + ob_debug_type(OB_DEBUG_FOCUS, "using enter event with serial %lu " + "on client 0x%x", event_curserial, client->window); + if (client_enter_focusable(client) && client_can_focus(client)) { if (config_focus_delay) { ObFocusDelayData *data; @@ -1488,7 +1498,8 @@ static void event_handle_client(ObClient *client, XEvent *e) } else if ((Atom)e->xclient.data.l[2] == OBT_PROP_ATOM(NET_WM_MOVERESIZE_CANCEL)) - moveresize_end(TRUE); + if (moveresize_client) + moveresize_end(TRUE); } else if (msgtype == OBT_PROP_ATOM(NET_MOVERESIZE_WINDOW)) { gint ograv, x, y, w, h; @@ -1674,6 +1685,9 @@ static void event_handle_client(ObClient *client, XEvent *e) event_last_user_time = t; } } + else if (msgtype == OBT_PROP_ATOM(NET_WM_WINDOW_OPACITY)) { + client_update_opacity(client); + } #ifdef SYNC else if (msgtype == OBT_PROP_ATOM(NET_WM_SYNC_REQUEST_COUNTER)) { /* if they are resizing right now this would cause weird behaviour.