- if (win->ws->r != NULL) {
- if (win->java == 0)
- xcb_set_input_focus(conn, XCB_INPUT_FOCUS_PARENT,
- win->id, XCB_CURRENT_TIME);
- xcb_change_window_attributes(conn, win->id,
- XCB_CW_BORDER_PIXEL,
- &win->ws->r->s->c[SWM_S_COLOR_FOCUS].pixel);
- if (win->ws->cur_layout->flags & SWM_L_MAPONFOCUS ||
- win->ws->always_raise)
- map_window_raised(win->id);
+ if (cfw != win) {
+ if (cfw)
+ unfocus_win(cfw);
+
+ if (win->ws->r != NULL) {
+ if (win->java == 0)
+ xcb_set_input_focus(conn,
+ XCB_INPUT_FOCUS_PARENT, win->id,
+ XCB_CURRENT_TIME);
+
+ xcb_change_window_attributes(conn, win->id,
+ XCB_CW_BORDER_PIXEL,
+ &win->ws->r->s->c[SWM_S_COLOR_FOCUS].pixel);