Documentation for <wlr/types/wlr_text_input_v3.h>

Back to index

Table of contents

struct wlr_text_input_manager_v3

struct wlr_text_input_manager_v3 {
	struct wl_global *global;
	struct wl_list text_inputs; // struct wlr_text_input_v3.resource.link
	
	struct wl_listener display_destroy;
	
	struct {
		struct wl_signal text_input; // struct wlr_text_input_v3
		struct wl_signal destroy; // struct wlr_input_method_manager_v3
	} events;
};

wlr_text_input_manager_v3_create()

struct wlr_text_input_manager_v3 *wlr_text_input_manager_v3_create(​struct wl_display *wl_display);

struct wlr_text_input_v3

struct wlr_text_input_v3 {
	struct wlr_seat *seat; // becomes null when seat destroyed
	struct wl_resource *resource;
	struct wlr_surface *focused_surface;
	struct wlr_text_input_v3_state pending;
	struct wlr_text_input_v3_state current;
	uint32_t current_serial; // next in line to send
	bool pending_enabled;
	bool current_enabled;
	// supported in the current text input, more granular than surface
	uint32_t active_features; // bitfield of enum wlr_text_input_v3_features
	
	struct wl_list link;
	
	struct wl_listener surface_destroy;
	struct wl_listener seat_destroy;
	
	struct {
		struct wl_signal enable; // struct wlr_text_input_v3
		struct wl_signal commit; // struct wlr_text_input_v3
		struct wl_signal disable; // struct wlr_text_input_v3
		struct wl_signal destroy; // struct wlr_text_input_v3
	} events;
};

enum wlr_text_input_v3_features

enum wlr_text_input_v3_features {
	WLR_TEXT_INPUT_V3_FEATURE_SURROUNDING_TEXT,
	WLR_TEXT_INPUT_V3_FEATURE_CONTENT_TYPE,
	WLR_TEXT_INPUT_V3_FEATURE_CURSOR_RECTANGLE,
};

wlr_text_input_v3_send_commit_string()

void wlr_text_input_v3_send_commit_string(​struct wlr_text_input_v3 *text_input, const char *text);

wlr_text_input_v3_send_delete_surrounding_text()

void wlr_text_input_v3_send_delete_surrounding_text(​struct wlr_text_input_v3 *text_input, uint32_t before_length, uint32_t after_length);

wlr_text_input_v3_send_done()

void wlr_text_input_v3_send_done(​struct wlr_text_input_v3 *text_input);

wlr_text_input_v3_send_enter()

void wlr_text_input_v3_send_enter(​struct wlr_text_input_v3 *text_input, struct wlr_surface *wlr_surface);

wlr_text_input_v3_send_leave()

void wlr_text_input_v3_send_leave(​struct wlr_text_input_v3 *text_input);

wlr_text_input_v3_send_preedit_string()

void wlr_text_input_v3_send_preedit_string(​struct wlr_text_input_v3 *text_input, const char *text, int32_t cursor_begin, int32_t cursor_end);

struct wlr_text_input_v3_state

struct wlr_text_input_v3_state {
	struct {
		char *text; // NULL is allowed and equivalent to empty string
		uint32_t cursor;
		uint32_t anchor;
	} surrounding;
	
	uint32_t text_change_cause;
	
	struct {
		uint32_t hint;
		uint32_t purpose;
	} content_type;
	
	struct wlr_box cursor_rectangle;
	
	// Tracks which features were used in the current commit.
	// Useful in the enabling commit, where usage means support.
	uint32_t features; // bitfield of enum wlr_text_input_v3_features
};