]> git.sur5r.net Git - i3/i3/commitdiff
Rerender on button press only when focus changes
authorTony Crisci <tony@dubstepdish.com>
Sun, 4 May 2014 11:50:23 +0000 (07:50 -0400)
committerMichael Stapelberg <michael@stapelberg.de>
Sun, 4 May 2014 20:55:50 +0000 (22:55 +0200)
On button press events, the only change in state that would presently
require rerendering the tree is when the focused window changes.

src/click.c

index 91964b939c8f59f766ec5c6069b1adff57dcb0e9..9b85b71102828bc5a45920db87ec60afd359e073 100644 (file)
@@ -171,6 +171,9 @@ static int route_click(Con *con, xcb_button_press_event_t *event, const bool mod
     DLOG("--> OUTCOME = %p\n", con);
     DLOG("type = %d, name = %s\n", con->type, con->name);
 
+    /* if focus changes, we must rerender */
+    Con *initially_focused = focused;
+
     /* don’t handle dockarea cons, they must not be focused */
     if (con->parent->type == CT_DOCKAREA)
         goto done;
@@ -297,7 +300,10 @@ static int route_click(Con *con, xcb_button_press_event_t *event, const bool mod
 done:
     xcb_allow_events(conn, XCB_ALLOW_REPLAY_POINTER, event->time);
     xcb_flush(conn);
-    tree_render();
+
+    if (initially_focused != focused)
+        tree_render();
+
     return 0;
 }