i3-input: restore the keyboard focus instead of the pointer focus
Patch status: rejected
Patch by Adrien Schildknecht
Long description:
When a window is focused using a bindsym, the pointer focus remain on the previous windows, thus when i3-input is closed this windows will be focused even if i3 draw the focused border on the other windows.
To apply this patch, use:
curl http://cr.i3wm.org/patch/30/raw.patch | git am
b/i3-input/main.c
17 |
@@ -90,7 +90,7 @@ static void restore_input_focus(void) { |
18 |
fprintf(stderr, "[i3-input] ERROR: Could not restore input focus (X error %d)\n", error->error_code); |
19 |
return; |
20 |
} |
21 |
- xcb_set_input_focus(conn, XCB_INPUT_FOCUS_POINTER_ROOT, reply->focus, XCB_CURRENT_TIME); |
22 |
+ xcb_set_input_focus(conn, XCB_INPUT_FOCUS_FOLLOW_KEYBOARD, reply->focus, XCB_CURRENT_TIME); |
23 |
xcb_flush(conn); |
24 |
} |
25 |
|
26 |
@@ -424,7 +424,7 @@ int main(int argc, char *argv[]) { |
27 |
|
28 |
/* Set input focus (we have override_redirect=1, so the wm will not do |
29 |
* this for us) */ |
30 |
- xcb_set_input_focus(conn, XCB_INPUT_FOCUS_POINTER_ROOT, win, XCB_CURRENT_TIME); |
31 |
+ xcb_set_input_focus(conn, XCB_INPUT_FOCUS_FOLLOW_KEYBOARD, win, XCB_CURRENT_TIME); |
32 |
|
33 |
/* Grab the keyboard to get all input */ |
34 |
xcb_flush(conn); |