forked from enlightenment/enlightenment
Add ability for policy to handle activate code itself.
SVN revision: 44217
This commit is contained in:
parent
ca0ebba0e4
commit
3f55fcf7f4
|
@ -622,22 +622,8 @@ _cb_event_client_message(void *data, int type, void *event)
|
||||||
ev = event;
|
ev = event;
|
||||||
if (ev->message_type != ECORE_X_ATOM_NET_ACTIVE_WINDOW) return 1;
|
if (ev->message_type != ECORE_X_ATOM_NET_ACTIVE_WINDOW) return 1;
|
||||||
bd = e_border_find_by_client_window(ev->win);
|
bd = e_border_find_by_client_window(ev->win);
|
||||||
if ((bd) && (!bd->focused))
|
if (bd->stolen) return 1;
|
||||||
{
|
if ((mode) && (mode->funcs.border_activate))
|
||||||
if ((e_config->focus_setting == E_FOCUS_NEW_WINDOW) ||
|
mode->funcs.border_activate(bd);
|
||||||
((bd->parent) &&
|
|
||||||
((e_config->focus_setting == E_FOCUS_NEW_DIALOG) ||
|
|
||||||
((bd->parent->focused) &&
|
|
||||||
(e_config->focus_setting == E_FOCUS_NEW_DIALOG_IF_OWNER_FOCUSED)))))
|
|
||||||
{
|
|
||||||
if (bd->iconic)
|
|
||||||
{
|
|
||||||
if (!bd->lock_user_iconify) e_border_uniconify(bd);
|
|
||||||
}
|
|
||||||
if (!bd->lock_user_stacking) e_border_raise(bd);
|
|
||||||
if (!bd->lock_focus_out) e_border_focus_set(bd, 1, 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,6 +29,7 @@ struct _Illume_Layout_Mode
|
||||||
void (*zone_layout) (E_Zone *zone);
|
void (*zone_layout) (E_Zone *zone);
|
||||||
void (*zone_move_resize) (E_Zone *zone);
|
void (*zone_move_resize) (E_Zone *zone);
|
||||||
// --- add more below (activate callback, and more)
|
// --- add more below (activate callback, and more)
|
||||||
|
void (*border_activate) (E_Border *bd);
|
||||||
} funcs;
|
} funcs;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -118,6 +118,27 @@ _zone_move_resize(E_Zone *z)
|
||||||
_zone_layout(z);
|
_zone_layout(z);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_border_activate(E_Border *bd)
|
||||||
|
{
|
||||||
|
if ((bd) && (!bd->focused))
|
||||||
|
{
|
||||||
|
if ((e_config->focus_setting == E_FOCUS_NEW_WINDOW) ||
|
||||||
|
((bd->parent) &&
|
||||||
|
((e_config->focus_setting == E_FOCUS_NEW_DIALOG) ||
|
||||||
|
((bd->parent->focused) &&
|
||||||
|
(e_config->focus_setting == E_FOCUS_NEW_DIALOG_IF_OWNER_FOCUSED)))))
|
||||||
|
{
|
||||||
|
if (bd->iconic)
|
||||||
|
{
|
||||||
|
if (!bd->lock_user_iconify) e_border_uniconify(bd);
|
||||||
|
}
|
||||||
|
if (!bd->lock_user_stacking) e_border_raise(bd);
|
||||||
|
if (!bd->lock_focus_out) e_border_focus_set(bd, 1, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* local functions */
|
/* local functions */
|
||||||
static void
|
static void
|
||||||
_border_calc_position(E_Zone *z, E_Border *bd, int *x, int *y, int *w, int *h)
|
_border_calc_position(E_Zone *z, E_Border *bd, int *x, int *y, int *w, int *h)
|
||||||
|
@ -150,7 +171,8 @@ const Illume_Layout_Mode laymode =
|
||||||
_border_focus_in,
|
_border_focus_in,
|
||||||
_border_focus_out,
|
_border_focus_out,
|
||||||
_zone_layout,
|
_zone_layout,
|
||||||
_zone_move_resize
|
_zone_move_resize,
|
||||||
|
_border_activate
|
||||||
};
|
};
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
Loading…
Reference in New Issue