{
int angle = 0;
char geometry[128];
+ int new_x = x;
if (client_surface_ec)
{
LOGI("curr : %d, next : %d, angle : %d\n", client_surface_ec->e.state.rot.ang.curr,
client_surface_ec->e.state.rot.ang.next, angle);
+
+ if (!(e_input_panel_floating_mode_get()))
+ {
+ int client_y, client_w, client_h;
+ e_client_geometry_get(client_surface_ec, &new_x, &client_y, &client_w, &client_h);
+
+ if (angle == 0 || angle == 180)
+ new_x = (client_w - w) / 2;
+ else
+ new_x = (client_h - w) / 2;
+ }
}
- snprintf(geometry, sizeof(geometry), "%d,%d,%d,%d", x, y, w, h);
+ snprintf(geometry, sizeof(geometry), "%d,%d,%d,%d", new_x, y, w, h);
switch(angle)
{
break;
}
- LOGI("angle : %d, x : %d, y : %d, w : %d, h : %d\n", angle, x, y, w, h);
+ LOGI("angle : %d, x : %d, y : %d, w : %d, h : %d\n", angle, new_x, y, w, h);
- wl_text_input_send_input_panel_geometry(resource, x, y, w, h);
+ wl_text_input_send_input_panel_geometry(resource, new_x, y, w, h);
}
static gboolean