forked from enlightenment/enlightenment
Fix focus_home function to hide windows below when home is focused.
No need to layout windows which are not visible. SVN revision: 48173
This commit is contained in:
parent
acfe42b0b6
commit
0736f6493f
|
@ -428,6 +428,9 @@ _policy_zone_layout_home_single(E_Border *bd, E_Illume_Config_Zone *cz)
|
|||
{
|
||||
int ny, nh;
|
||||
|
||||
/* no point in adjusting size or position if it's not visible */
|
||||
if (!bd->visible) return;
|
||||
|
||||
// printf("\tLayout Home Single: %s\n", bd->client.icccm.class);
|
||||
|
||||
/* make sure it's the required width & height */
|
||||
|
@ -450,6 +453,9 @@ _policy_zone_layout_home_dual_top(E_Border *bd, E_Illume_Config_Zone *cz)
|
|||
E_Border *home;
|
||||
int ny, nh;
|
||||
|
||||
/* no point in adjusting size or position if it's not visible */
|
||||
if (!bd->visible) return;
|
||||
|
||||
/* set some defaults */
|
||||
ny = (bd->zone->y + cz->indicator.size);
|
||||
nh = ((bd->zone->h - cz->indicator.size - cz->softkey.size) / 2);
|
||||
|
@ -481,6 +487,9 @@ _policy_zone_layout_home_dual_custom(E_Border *bd, E_Illume_Config_Zone *cz)
|
|||
|
||||
// printf("\tLayout Home Dual Custom: %s\n", bd->client.icccm.class);
|
||||
|
||||
/* no point in adjusting size or position if it's not visible */
|
||||
if (!bd->visible) return;
|
||||
|
||||
/* grab indicator position */
|
||||
e_illume_border_indicator_pos_get(bd->zone, NULL, &iy);
|
||||
|
||||
|
@ -519,6 +528,9 @@ _policy_zone_layout_home_dual_left(E_Border *bd, E_Illume_Config_Zone *cz)
|
|||
|
||||
// printf("\tLayout Home Dual Left: %s\n", bd->client.icccm.class);
|
||||
|
||||
/* no point in adjusting size or position if it's not visible */
|
||||
if (!bd->visible) return;
|
||||
|
||||
nh = (bd->zone->h - cz->indicator.size - cz->softkey.size);
|
||||
|
||||
/* set some defaults */
|
||||
|
@ -569,10 +581,10 @@ _policy_zone_layout_app_single(E_Border *bd, E_Illume_Config_Zone *cz)
|
|||
E_Border *home;
|
||||
int ky, kh, ny, nh;
|
||||
|
||||
// printf("\tLayout App Single: %s\n", bd->client.icccm.name);
|
||||
|
||||
if ((!bd->new_client) && (!bd->visible)) return;
|
||||
|
||||
// printf("\tLayout App Single: %s\n", bd->client.icccm.name);
|
||||
|
||||
/* grab keyboard safe region */
|
||||
e_illume_keyboard_safe_app_region_get(bd->zone, NULL, &ky, NULL, &kh);
|
||||
|
||||
|
@ -752,6 +764,9 @@ _policy_zone_layout_dialog(E_Border *bd, E_Illume_Config_Zone *cz)
|
|||
/* NB: This policy ignores any ICCCM requested positions and centers the
|
||||
* dialog on it's parent (if it exists) or on the zone */
|
||||
|
||||
/* no point in adjusting size or position if it's not visible */
|
||||
if (!bd->visible) return;
|
||||
|
||||
/* grab minimum size */
|
||||
e_illume_border_min_get(bd, &mw, &mh);
|
||||
|
||||
|
@ -812,6 +827,9 @@ _policy_zone_layout_splash(E_Border *bd, E_Illume_Config_Zone *cz)
|
|||
/* NB: This policy ignores any ICCCM requested positions and centers the
|
||||
* splash screen on it's parent (if it exists) or on the zone */
|
||||
|
||||
/* no point in adjusting size or position if it's not visible */
|
||||
if (!bd->visible) return;
|
||||
|
||||
/* grab minimum size */
|
||||
e_illume_border_min_get(bd, &mw, &mh);
|
||||
|
||||
|
@ -1172,6 +1190,8 @@ _policy_border_show(E_Border *bd)
|
|||
/* make sure we have a name so that we don't handle windows like E's root */
|
||||
if (!bd->client.icccm.name) return;
|
||||
|
||||
// printf("Border Show: %s\n", bd->client.icccm.class);
|
||||
|
||||
/* trap for special windows so we can ignore hides below them */
|
||||
if (e_illume_border_is_indicator(bd)) return;
|
||||
if (e_illume_border_is_softkey(bd)) return;
|
||||
|
@ -1207,6 +1227,11 @@ _policy_zone_layout(E_Zone *zone)
|
|||
(!bd->changes.visible) && (!bd->pending_move_resize) &&
|
||||
(!bd->need_shape_export) && (!bd->need_shape_merge)) continue;
|
||||
|
||||
// printf("Border Changed: %s\n", bd->client.icccm.class);
|
||||
// printf("\tVisible: %d\n", bd->changes.visible);
|
||||
// printf("\tPos: %d\n", bd->changes.pos);
|
||||
// printf("\tSize: %d\n", bd->changes.size);
|
||||
|
||||
/* are we laying out an indicator ? */
|
||||
if (e_illume_border_is_indicator(bd))
|
||||
_policy_zone_layout_indicator(bd, cz);
|
||||
|
@ -1508,10 +1533,7 @@ _policy_focus_home(E_Zone *zone)
|
|||
|
||||
// printf("Focus home\n");
|
||||
if (!(bd = e_illume_border_home_get(zone))) return;
|
||||
|
||||
if (!bd->visible) e_border_show(bd);
|
||||
|
||||
e_border_raise(bd);
|
||||
_policy_border_set_focus(bd);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
Loading…
Reference in New Issue