diff --git a/clients/editor.c b/clients/editor.c index ef1dd283..90ee4cd2 100644 --- a/clients/editor.c +++ b/clients/editor.c @@ -59,6 +59,7 @@ struct text_entry { xkb_mod_mask_t shift_mask; } keysym; uint32_t serial; + uint32_t content_purpose; }; struct editor { @@ -549,6 +550,19 @@ text_entry_update_layout(struct text_entry *entry) pango_attr_list_unref(attr_list); } +static void +text_entry_update(struct text_entry *entry) +{ + text_model_set_content_type(entry->model, + TEXT_MODEL_CONTENT_HINT_NONE, + entry->content_purpose); + + text_model_set_surrounding_text(entry->model, + entry->text, + entry->cursor, + entry->anchor); +} + static void text_entry_insert_at_cursor(struct text_entry *entry, const char *text) { @@ -568,10 +582,7 @@ text_entry_insert_at_cursor(struct text_entry *entry, const char *text) widget_schedule_redraw(entry->widget); - text_model_set_surrounding_text(entry->model, - entry->text, - entry->cursor, - entry->anchor); + text_entry_update(entry); } static void @@ -648,10 +659,7 @@ text_entry_set_cursor_position(struct text_entry *entry, widget_schedule_redraw(entry->widget); - text_model_set_surrounding_text(entry->model, - entry->text, - entry->cursor, - entry->anchor); + text_entry_update(entry); } static void @@ -669,10 +677,7 @@ text_entry_set_anchor_position(struct text_entry *entry, widget_schedule_redraw(entry->widget); - text_model_set_surrounding_text(entry->model, - entry->text, - entry->cursor, - entry->anchor); + text_entry_update(entry); } static void @@ -691,10 +696,7 @@ text_entry_delete_text(struct text_entry *entry, widget_schedule_redraw(entry->widget); - text_model_set_surrounding_text(entry->model, - entry->text, - entry->cursor, - entry->anchor); + text_entry_update(entry); } static void @@ -986,7 +988,8 @@ main(int argc, char *argv[]) editor.widget = frame_create(editor.window, &editor); editor.entry = text_entry_create(&editor, "Entry"); - editor.editor = text_entry_create(&editor, "Editor"); + editor.editor = text_entry_create(&editor, "Numeric"); + editor.editor->content_purpose = TEXT_MODEL_CONTENT_PURPOSE_NUMBER; window_set_title(editor.window, "Text Editor"); window_set_key_handler(editor.window, key_handler);