return NULL;
}
+static E_Input_Panel_Surface *
+_e_input_floating_panel_surface_get()
+{
+ E_Input_Panel_Surface *floating_ips = NULL;
+ E_Input_Panel_Surface *ips = NULL;
+ Eina_List *l;
+ Eina_List *l_next;
+
+ EINA_LIST_FOREACH_SAFE(g_input_panel->surfaces, l, l_next, ips)
+ {
+ if (!ips || !ips->ec) continue;
+ if (e_client_view_get(ips->ec) && ips->ec->vkbd.floating)
+ {
+ floating_ips = ips;
+ break;
+ }
+ }
+
+ return floating_ips;
+}
+
static void
_e_input_panel_start_drawing(E_Input_Panel_Surface *ips)
{
int cur_angle;
E_Client *floating_ec = NULL;
E_Input_Panel_Surface *floating_ips = NULL;
- E_Input_Panel_Surface *ips = NULL;
- Eina_List *l;
- Eina_List *l_next;
- EINA_LIST_FOREACH_SAFE(g_input_panel->surfaces, l, l_next, ips)
- {
- if (!ips || !ips->ec) continue;
- if (e_client_view_get(ips->ec) && ips->ec->vkbd.floating)
- {
- floating_ec = ips->ec;
- floating_ips = ips;
- break;
- }
- }
+ floating_ips = _e_input_floating_panel_surface_get();
+ floating_ec = floating_ips->ec;
if (!floating_ec || !floating_ips)
{
void e_input_panel_floating_position_align_set(int x, int y, int align)
{
E_Input_Panel_Surface *floating_ips = NULL;
- E_Input_Panel_Surface *ips = NULL;
- Eina_List *l;
- Eina_List *l_next;
if (g_floating_info)
{
g_floating_info->align = (E_Input_Panel_Align)align;
}
- EINA_LIST_FOREACH_SAFE(g_input_panel->surfaces, l, l_next, ips)
- {
- if (!ips || !ips->ec) continue;
- if (e_client_view_get(ips->ec) && ips->ec->vkbd.floating)
- {
- floating_ips = ips;
- break;
- }
- }
-
+ floating_ips = _e_input_floating_panel_surface_get();
if (floating_ips && floating_ips->showing)
_e_input_panel_floating_position_align_set(floating_ips->ec);
}
void e_input_panel_floating_panel_move_resize(int x, int y, int w, int h)
{
+ E_Input_Panel_Surface *floating_ips = NULL;
+ int angle = 0;
+
LOGI("x : %d, y : %d, w : %d, h : %d", x, y, w, h);
if (g_floating_info->align_position.x >= 0 || g_floating_info->align_position.y >= 0)
g_floating_info->align_position.y = -1;
}
- g_floating_info->new_width = w;
- g_floating_info->new_height = h;
+ floating_ips = _e_input_floating_panel_surface_get();
+ if (floating_ips && floating_ips->ec)
+ angle = floating_ips->ec->e.state.rot.ang.curr;
+
+ if (angle == 90 || angle == 270)
+ {
+ g_floating_info->new_width = h;
+ g_floating_info->new_height = w;
+ }
+ else
+ {
+ g_floating_info->new_width = w;
+ g_floating_info->new_height = h;
+ }
+
e_input_panel_floating_position_set(x, y);
}