diff --git a/src/modules/illume2/e_mod_layout.c b/src/modules/illume2/e_mod_layout.c index bceeb8e5f..b79ac4c40 100644 --- a/src/modules/illume2/e_mod_layout.c +++ b/src/modules/illume2/e_mod_layout.c @@ -408,7 +408,7 @@ illume_border_in_region_get(int x, int y, int w, int h) bds = illume_border_valid_borders_get(); EINA_LIST_FOREACH(bds, l, bd) { - if (E_INSIDE(bd->x, bd->y, x, y, w, h)) + if (E_INSIDE(bd->x, bd->fx.y, x, y, w, h)) { b = bd; break; @@ -516,6 +516,25 @@ illume_border_min_get(E_Border *bd, int *mw, int *mh) } } +void +illume_border_max_get(E_Border *bd, int *mw, int *mh) +{ + if (mw) + { + if (bd->client.icccm.base_w > bd->client.icccm.max_w) + *mw = bd->client.icccm.base_w; + else + *mw = bd->client.icccm.max_w; + } + if (mh) + { + if (bd->client.icccm.base_h > bd->client.icccm.max_h) + *mh = bd->client.icccm.base_h; + else + *mh = bd->client.icccm.max_h; + } +} + void illume_border_app1_safe_region_get(E_Zone *zone, int *x, int *y, int *w, int *h) { diff --git a/src/modules/illume2/e_mod_layout.h b/src/modules/illume2/e_mod_layout.h index 71cb857d9..e128a3074 100644 --- a/src/modules/illume2/e_mod_layout.h +++ b/src/modules/illume2/e_mod_layout.h @@ -69,6 +69,7 @@ void illume_border_bottom_panel_pos_get(int *x, int *y); void illume_border_bottom_panel_size_get(int *w, int *h); void illume_border_slide_to(E_Border *bd, int x, int y, Illume_Anim_Class aclass); void illume_border_min_get(E_Border *bd, int *mw, int *mh); +void illume_border_max_get(E_Border *bd, int *mw, int *mh); void illume_border_app1_safe_region_get(E_Zone *zone, int *x, int *y, int *w, int *h); void illume_border_app2_safe_region_get(E_Zone *zone, int *x, int *y, int *w, int *h); diff --git a/src/modules/illume2/e_mod_layout_illume.c b/src/modules/illume2/e_mod_layout_illume.c index 8e0203850..b68ad1606 100644 --- a/src/modules/illume2/e_mod_layout_illume.c +++ b/src/modules/illume2/e_mod_layout_illume.c @@ -310,18 +310,23 @@ _zone_layout(E_Zone *z) int mw, mh; illume_border_min_get(bd, &mw, &mh); - if (mh > z->h) mh = z->h; if (mw > z->w) mw = z->w; + if (mh > z->h) mh = z->h; _border_resize_fx(bd, (z->x + ((z->w - mw) / 2)), (z->y + ((z->h - mh) / 2)), mw, mh); if (bd->layer != 160) e_border_layer_set(bd, 160); } else { + if (illume_border_is_conformant(bd)) + { + /* make conformant windows under the indicator bar */ + if (bd->layer != 90) e_border_layer_set(bd, 90); + } + /* normal border, handle layout based on policy mode */ if (il_cfg->policy.mode.dual) _zone_layout_dual(bd); else _zone_layout_single(bd); -// if (bd->layer != 120) e_border_layer_set(bd, 120); } } } @@ -463,17 +468,6 @@ _zone_layout_dual_top_custom(E_Border *bd) /* grab the 'safe' region. Safe region is space not occupied by keyboard */ e_kbd_safe_app_region_get(bd->zone, &kx, NULL, &kw, NULL); - /* - if (!conform) - { - if (!((bd->need_fullscreen) || (bd->fullscreen))) - { - if (kh >= bd->zone->h) ps = panelsize; - ss = shelfsize; - } - } - */ - illume_border_app1_safe_region_get(bd->zone, &ax, &ay, &aw, &ah); illume_border_app2_safe_region_get(bd->zone, &zx, &zy, &zw, &zh); @@ -512,6 +506,7 @@ _zone_layout_dual_top_custom(E_Border *bd) if ((bt) && (bd != bt)) { + /* is there a border in the bottom section */ bb = illume_border_at_xy_get(kx, zy); if (!bb) { @@ -528,6 +523,11 @@ _zone_layout_dual_top_custom(E_Border *bd) bh = zh; by = zy; } + else + { + bh = ah; + by = ay; + } } else if (bb = e_border_focused_get()) {