/* config options */
static gboolean follow_mouse = TRUE;
-static gboolean warp_on_desk_switch = TRUE;
+static gboolean warp_on_desk_switch = FALSE;
static gboolean focus_new = FALSE;
-static int skip_enter = 0;
+/*static int skip_enter = 0;*/
static gboolean focus_under_pointer()
{
for (it = focus_order[screen_desktop]; it != NULL; it = it->next)
if (client_normal(it->data) && client_focus(it->data)) {
- if (switching_desks && warp_on_desk_switch) {
+ if (switching_desks) {
XEvent e;
Client *c = it->data;
++skip_enter;
}*/
- /* I have to do this warp twice! Otherwise windows dont get
- Enter/Leave events when i warp on a desktop switch! */
- XWarpPointer(ob_display, None, c->window, 0, 0, 0, 0,
- c->area.width / 2, c->area.height / 2);
- XWarpPointer(ob_display, None, c->window, 0, 0, 0, 0,
- c->area.width / 2, c->area.height / 2);
+ if (warp_on_desk_switch) {
+ /* I have to do this warp twice! Otherwise windows dont get
+ Enter/Leave events when i warp on a desktop switch! */
+ XWarpPointer(ob_display, None, c->window, 0, 0, 0, 0,
+ c->area.width / 2, c->area.height / 2);
+ XWarpPointer(ob_display, None, c->window, 0, 0, 0, 0,
+ c->area.width / 2, c->area.height / 2);
+ }
}
break;
}
case Event_Client_Unmapped:
if (ob_state == State_Exiting) break;
- if (e->data.c.client->focused)
+ if (client_focused(e->data.c.client))
if (!follow_mouse || !focus_under_pointer())
focus_fallback(FALSE);
break;
break;
case Event_X_EnterNotify:
- if (skip_enter) {
+/* if (skip_enter) {
if (e->data.x.client != NULL)
g_message("skipped enter %lx", e->data.x.client->window);
else
g_message("skipped enter 'root'");
--skip_enter;
}
- else if (e->data.x.client != NULL && client_normal(e->data.x.client)) {
- g_message("enter %lx", e->data.x.client->window);
+ else*/
+ if (e->data.x.client != NULL && client_normal(e->data.x.client))
client_focus(e->data.x.client);
- }
break;
default: