{
new_w = (int) ec->manage_resize.aw / ec->manage_resize.ah * new_h;
}
+ new_h += ec->manage_resize.header_h;
+ new_h += ec->manage_resize.footer_h;
}
if ((ec->resize_mode == E_POINTER_RESIZE_T) ||
ec->manage_resize.x = ec->manage_resize.y = ec->manage_resize.w = ec->manage_resize.h = 0;
ec->manage_resize.enable_aspect_ratio = EINA_FALSE;
ec->manage_resize.aw = ec->manage_resize.ah = 0;
+ ec->manage_resize.header_h = 0;
+ ec->manage_resize.footer_h = 0;
return ec;
}
{
ELOGF("RESIZE", "Set resize aspect ratio.. ratio(%dx%d)", ec, ec->w, ec->h);
ec->manage_resize.aw = ec->w;
- ec->manage_resize.ah = ec->h;
+ ec->manage_resize.ah = ec->h - ec->manage_resize.header_h - ec->manage_resize.footer_h;
}
_e_client_hook_call(E_CLIENT_HOOK_RESIZE_BEGIN, ec);
if (ec->transformed)
E_POLICY_HINT_TRANSIENT_FOR_ALWAYS_ON_TOP = 12,
E_POLICY_HINT_BELONG_TO_PARENT = 13,
E_POLICY_HINT_RESIZE_ASPECT_RATIO = 14,
+ E_POLICY_HINT_RESIZE_HEADER_HEIGHT = 15,
+ E_POLICY_HINT_RESIZE_FOOTER_HEIGHT = 16,
};
static const char *hint_names[] =
"wm.policy.win.transient_for.always_on_top",
"wm.policy.win.belong_to_parent",
"wm.policy.win.resize_aspect_ratio",
+ "wm.policy.win.resize.header_height",
+ "wm.policy.win.resize.footer_height",
};
static void _e_policy_wl_surf_del(E_Policy_Wl_Surface *psurf);
ec->manage_resize.enable_aspect_ratio = EINA_FALSE;
}
}
+ else if (!strncmp(hint->hint, hint_names[E_POLICY_HINT_RESIZE_HEADER_HEIGHT], strlen(hint->hint)))
+ {
+ int height = atoi(hint->val);
+ if (height > 0)
+ {
+ ELOGF("RESIZE", "Set resize HEADER height.. h(%d)", ec, height);
+ ec->manage_resize.header_h = height;
+ }
+ else
+ {
+ ELOGF("RESIZE", "Unset resize HEADER height", ec);
+ ec->manage_resize.header_h = 0;
+ }
+ }
+ else if (!strncmp(hint->hint, hint_names[E_POLICY_HINT_RESIZE_FOOTER_HEIGHT], strlen(hint->hint)))
+ {
+ int height = atoi(hint->val);
+ if (height > 0)
+ {
+ ELOGF("RESIZE", "Set resize FOOTER height.. h(%d)", ec, height);
+ ec->manage_resize.footer_h = height;
+ }
+ else
+ {
+ ELOGF("RESIZE", "Unset resize FOOTER height", ec);
+ ec->manage_resize.footer_h = 0;
+ }
+ }
}
e_policy_hook_call(E_POLICY_HOOK_CLIENT_AUX_HINT_CHANGED, ec);