((ec->x != kbd_x) || (ec->y != kbd_y)))
e_client_util_move_without_frame(ec, kbd_x, kbd_y);
}
+
+EINTERN void
+e_mod_pol_keyboard_configure(Ecore_X_Event_Window_Configure_Request *ev)
+{
+ E_Client *ec;
+
+ ec = e_pixmap_find_client(E_PIXMAP_TYPE_X, ev->win);
+ if (!ec)
+ {
+ char *name = NULL, *class = NULL;
+
+ ecore_x_icccm_name_class_get(ev->win, &name, &class);
+ if ((class) && (!strcmp(class, "ISF")))
+ {
+ /* pass through configure requests if it is a request for keyboard */
+ ecore_x_window_configure(ev->win, ev->value_mask,
+ ev->x, ev->y, ev->w, ev->h,
+ ev->border, ev->abovewin, ev->detail);
+ }
+ }
+}
EINTERN Eina_Bool e_mod_pol_client_is_keyboard(E_Client *ec);
EINTERN Eina_Bool e_mod_pol_client_is_keyboard_sub(E_Client *ec);
EINTERN void e_mod_pol_keyboard_layout_apply(E_Client *ec);
+EINTERN void e_mod_pol_keyboard_configure(Ecore_X_Event_Window_Configure_Request *ev);
#endif
}
static Eina_Bool
+_pol_cb_window_configure_request(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore_X_Event_Window_Configure_Request *ev)
+{
+ e_mod_pol_keyboard_configure(ev);
+
+ return ECORE_CALLBACK_PASS_ON;
+}
+
+static Eina_Bool
_pol_cb_zone_rotation_change_begin(void *data EINA_UNUSED, int ev_type EINA_UNUSED, E_Event_Zone_Rotation_Change_Begin *ev)
{
if ((!ev) || (!ev->zone)) return ECORE_CALLBACK_PASS_ON;
_pol_cb_window_property, NULL);
E_LIST_HANDLER_APPEND(handlers, ECORE_X_EVENT_WINDOW_CONFIGURE,
_pol_cb_window_configure, NULL);
+ E_LIST_HANDLER_APPEND(handlers, ECORE_X_EVENT_WINDOW_CONFIGURE_REQUEST,
+ _pol_cb_window_configure_request, NULL);
E_LIST_HANDLER_APPEND(handlers, ECORE_X_EVENT_CLIENT_MESSAGE,
_pol_cb_window_message, NULL);
E_LIST_HANDLER_APPEND(handlers, E_EVENT_ZONE_ROTATION_CHANGE_BEGIN,