e17/ill/tablet:

- dont hide_border_below, makes it work with comp-scale
- fix single app layout wrt zone useful geometry


SVN revision: 62940
This commit is contained in:
Hannes Janetzek 2011-08-29 11:28:43 +00:00
parent 31a593b8e0
commit 79fa5b5efa
1 changed files with 57 additions and 20 deletions

View File

@ -59,7 +59,7 @@ _policy_border_set_focus(E_Border *bd)
/* focus the border */ /* focus the border */
e_border_focus_set(bd, 1, 1); e_border_focus_set(bd, 1, 1);
/* e_border_raise(bd); */
/* hide the border below this one */ /* hide the border below this one */
_policy_border_hide_below(bd); _policy_border_hide_below(bd);
@ -120,6 +120,8 @@ _policy_border_hide_below(E_Border *bd)
{ {
int pos = 0, i; int pos = 0, i;
return;
// printf("Hide Borders Below: %s %d %d\n", // printf("Hide Borders Below: %s %d %d\n",
// bd->client.icccm.name, bd->x, bd->y); // bd->client.icccm.name, bd->x, bd->y);
@ -360,12 +362,11 @@ _border_geometry_set(E_Border *bd, int x, int y, int w, int h, int layer)
{ {
if ((bd->w != w) || (bd->h != h)) if ((bd->w != w) || (bd->h != h))
_policy_border_resize(bd, w, h); _policy_border_resize(bd, w, h);
if ((bd->x != x) || (bd->y != y)) if ((bd->x != x) || (bd->y != y))
_policy_border_move(bd, x, y); _policy_border_move(bd, x, y);
if (bd->layer != layer) e_border_layer_set(bd, layer); if (bd->layer != layer) e_border_layer_set(bd, layer);
} }
static void static void
@ -488,15 +489,16 @@ _policy_zone_layout_app_single(E_Border *bd, E_Illume_Config_Zone *cz)
e_illume_keyboard_safe_app_region_get(bd->zone, NULL, &ky, NULL, &kh); e_illume_keyboard_safe_app_region_get(bd->zone, NULL, &ky, NULL, &kh);
if (kh >= bd->zone->h) if (kh >= h)
nh = (kh - cz->indicator.size - cz->softkey.size); nh = (kh - cz->indicator.size - cz->softkey.size);
else else
nh = (kh - cz->indicator.size); nh = (kh - cz->indicator.size);
if (h > nh) h = nh;
ny = (bd->zone->y + cz->indicator.size); ny = (bd->zone->y + cz->indicator.size);
if (ny > y) y = ny; if (y < ny) y = ny;
_border_geometry_set(bd, x, ny, w, nh, POL_APP_LAYER); _border_geometry_set(bd, x, y, w, h, POL_APP_LAYER);
} }
static void static void
@ -724,6 +726,27 @@ _policy_zone_layout_conformant_dual_left(E_Border *bd, E_Illume_Config_Zone *cz)
} }
#endif #endif
#if 0
typedef struct _App_Desk App_Desk;
struct _App_Desk
{
E_Desk *desk;
const char *class;
Eina_List *borders;
};
static Eina_List *desks = NULL;
#define EINA_LIST_FIND(_list, _item, _match) \
{ \
Eina_List *_l; \
EINA_LIST_FOREACH(_list, _l, _item) \
if (_match) break; \
}
#endif
/* policy functions */ /* policy functions */
void void
_policy_border_add(E_Border *bd) _policy_border_add(E_Border *bd)
@ -752,26 +775,43 @@ _policy_border_add(E_Border *bd)
{ {
E_Border *ind, *sft; E_Border *ind, *sft;
/* try to get the Indicator on this zone */
if ((ind = e_illume_border_indicator_get(bd->zone))) if ((ind = e_illume_border_indicator_get(bd->zone)))
{ {
/* we have the indicator, hide it if needed */
if (ind->visible) e_illume_border_hide(ind); if (ind->visible) e_illume_border_hide(ind);
} }
/* conformant - may not need softkey */
if ((sft = e_illume_border_softkey_get(bd->zone))) if ((sft = e_illume_border_softkey_get(bd->zone)))
{ {
if (e_illume_border_is_conformant(bd)) if (e_illume_border_is_conformant(bd))
{ {
if (sft->visible) e_illume_border_hide(sft); if (sft->visible)
} e_illume_border_hide(sft);
else else if (!sft->visible)
{ e_illume_border_show(sft);
if (!sft->visible) e_illume_border_show(sft); }
}
} }
} }
#if 0
if (bd->client.icccm.class)
{
Eina_List *l;
App_Desk *d;
EINA_LIST_FIND(desks, d, (d->class == bd->client.icccm.class));
if (!d)
{
d = E_NEW(App_Desk, 1);
d->desk
}
d->borders = eina_list_append(d->borders, bd);
e_border_desk_set(bd, d->desk);
}
#endif
/* Add this border to our focus stack if it can accept or take focus */ /* Add this border to our focus stack if it can accept or take focus */
if ((bd->client.icccm.accepts_focus) || (bd->client.icccm.take_focus)) if ((bd->client.icccm.accepts_focus) || (bd->client.icccm.take_focus))
_pol_focus_stack = eina_list_append(_pol_focus_stack, bd); _pol_focus_stack = eina_list_append(_pol_focus_stack, bd);
@ -1338,9 +1378,6 @@ _policy_focus_home(E_Zone *zone)
void void
_policy_property_change(Ecore_X_Event_Window_Property *event) _policy_property_change(Ecore_X_Event_Window_Property *event)
{ {
// printf("Property Change\n");
/* we are interested in state changes here */
if (event->atom == ECORE_X_ATOM_NET_WM_STATE) if (event->atom == ECORE_X_ATOM_NET_WM_STATE)
{ {
E_Border *bd, *ind; E_Border *bd, *ind;