and respect focus lock out flag more

SVN revision: 35431
This commit is contained in:
Carsten Haitzler 2008-08-11 01:22:33 +00:00
parent 98a3c6d2fc
commit 99fc29f7aa
4 changed files with 9 additions and 4 deletions

View File

@ -984,7 +984,8 @@ ACT_FN_GO(window_desk_move_by)
e_zone_desk_flip_by(bd->zone, to_x - dx, to_y - dy);
/* send the border to the required desktop. */
e_border_desk_set(bd, desk);
e_border_focus_set(bd, 1, 1);
if (!bd->lock_focus_out)
e_border_focus_set(bd, 1, 1);
}
}
}

View File

@ -1371,7 +1371,8 @@ e_border_focus_set_with_pointer(E_Border *bd)
// printf(" 2accept:%i take:%i\n", bd->client.icccm.accepts_focus, bd->client.icccm.take_focus);
if ((!bd->client.icccm.accepts_focus) &&
(!bd->client.icccm.take_focus)) return;
if (bd->lock_focus_out) return;
/* Try to grab the pointer to make sure it's not "in use" */
if (!ecore_x_pointer_grab(bd->zone->container->win))
return;
@ -1412,6 +1413,7 @@ e_border_focus_set(E_Border *bd, int focus, int set)
if ((!bd->client.icccm.accepts_focus) &&
(!bd->client.icccm.take_focus))
return;
if ((set) && (focus) && (bd->lock_focus_out)) return;
/* dont focus an iconified window. that's silly! */
if ((focus) && (bd->iconic))
return;

View File

@ -367,7 +367,8 @@ e_desk_last_focused_focus(E_Desk *desk)
if ((!bd->iconic) && (bd->visible) && (bd->desk == desk))
{
/* this was the window last focused in this desktop */
e_border_focus_set(bd, 1, 1);
if (!bd->lock_focus_out)
e_border_focus_set(bd, 1, 1);
break;
}
}

View File

@ -1461,7 +1461,8 @@ _e_int_menus_lost_clients_item_cb(void *data, E_Menu *m, E_Menu_Item *mi)
e_border_move(bd, bd->zone->x + ((bd->zone->w - bd->w) / 2),
bd->zone->y + ((bd->zone->h - bd->h) / 2));
e_border_raise(bd);
e_border_focus_set(bd, 1, 1);
if (!bd->lock_focus_out)
e_border_focus_set(bd, 1, 1);
}
static void