Merge pull request #2112 from Airblader/feature-multiple-tree-render

Avoid rendering the tree twice in a row
This commit is contained in:
Michael Stapelberg 2015-12-16 08:56:11 +01:00
commit dad9ec615b
3 changed files with 2 additions and 14 deletions

View File

@ -643,8 +643,8 @@ void binding_free(Binding *bind) {
/* /*
* Runs the given binding and handles parse errors. If con is passed, it will * Runs the given binding and handles parse errors. If con is passed, it will
* execute the command binding with that container selected by criteria. * execute the command binding with that container selected by criteria.
* Returns a CommandResult for running the binding's command. Caller should * Returns a CommandResult for running the binding's command. Free with
* render tree if needs_tree_render is true. Free with command_result_free(). * command_result_free().
* *
*/ */
CommandResult *run_binding(Binding *bind, Con *con) { CommandResult *run_binding(Binding *bind, Con *con) {

View File

@ -198,11 +198,7 @@ static int route_click(Con *con, xcb_button_press_event_t *event, const bool mod
xcb_allow_events(conn, XCB_ALLOW_ASYNC_POINTER, event->time); xcb_allow_events(conn, XCB_ALLOW_ASYNC_POINTER, event->time);
xcb_flush(conn); xcb_flush(conn);
if (result->needs_tree_render)
tree_render();
command_result_free(result); command_result_free(result);
return 0; return 0;
} }
} }
@ -370,10 +366,6 @@ int handle_button_press(xcb_button_press_event_t *event) {
Binding *bind = get_binding_from_xcb_event((xcb_generic_event_t *)event); Binding *bind = get_binding_from_xcb_event((xcb_generic_event_t *)event);
if (bind != NULL && bind->whole_window) { if (bind != NULL && bind->whole_window) {
CommandResult *result = run_binding(bind, NULL); CommandResult *result = run_binding(bind, NULL);
if (result->needs_tree_render) {
tree_render();
}
command_result_free(result); command_result_free(result);
} }
} }

View File

@ -31,9 +31,5 @@ void handle_key_press(xcb_key_press_event_t *event) {
return; return;
CommandResult *result = run_binding(bind, NULL); CommandResult *result = run_binding(bind, NULL);
if (result->needs_tree_render)
tree_render();
command_result_free(result); command_result_free(result);
} }