}
}
+static void
+ _e_input_panel_surface_cb_floating_panel_set(struct wl_client *client EINA_UNUSED, struct wl_resource *resource, uint32_t state)
+{
+ E_Input_Panel_Surface *ips = wl_resource_get_user_data(resource);
+
+ if (!ips)
+ {
+ WTI_WARNING(resource,
+ WL_DISPLAY_ERROR_INVALID_OBJECT,
+ "No Input Panel Surface For Surface");
+ return;
+ }
+
+ if (ips->ec)
+ ips->ec->vkbd.floating = !!state;
+}
+
static const struct wl_input_panel_surface_interface _e_input_panel_surface_implementation = {
_e_input_panel_surface_cb_toplevel_set,
_e_input_panel_surface_cb_overlay_panel_set,
- _e_input_panel_surface_cb_ready_set
+ _e_input_panel_surface_cb_ready_set,
+ _e_input_panel_surface_cb_floating_panel_set
};
static void
break;
}
- e_client_util_move_without_frame(ec, nx, ny);
+ if (!ec->vkbd.floating)
+ e_client_util_move_without_frame(ec, nx, ny);
}
static void