2026-07-13  Theppitak Karoonboonyanan  <theppitak@gmail.com>

	* NEWS:
	  === Version 0.1.6 ===

2026-07-10  Theppitak Karoonboonyanan  <theppitak@gmail.com>

	Switch to newer AM_GNU_GETTEXT_REQUIRE_VERSION

	The AM_GNU_GETTEXT_REQUIRE_VERSION macro introduced in
	gettext 0.19.6 allows 'autopoint' to use any gettext version
	that meets the minimum requirement, instead of fixed version
	as in the old AM_GNU_GETTEXT_VERSION.

	In addition, this also gets rid of a lot of automake/autoconf
	warnings against deprecated macros still required by the old
	AM_GNU_GETTEXT_VERSION.

	* configure.ac:
	  - Replace AM_GNU_GETTEXT_VERSION with
	    AM_GNU_GETTEXT_REQUIRE_VERSION.
	  - Bump the gettext required version to 0.19.6.

2021-10-31  Theppitak Karoonboonyanan  <theppitak@gmail.com>

	Apply only changed options, not all.

	* src/ibus_config.h, src/ibus_config.c (ibus_libthai_write_config):
	  - Add 'prev_opt' arg for comparison and apply only 'opt' members
	    that differ.
	  - Helper function n_option_diffs() is added for determining
	    whether to use delay-apply mode for GSettings.
	* src/setup.c (main):
	  - Read values from setup dialog into separate 'new_opt'
	    and pass new and old options to ibus_libthai_write_config().

2021-10-30  Theppitak Karoonboonyanan  <theppitak@gmail.com>

	Remove watch on GSettings key.

	IBus appears to call engine init every time it gets focus,
	which already makes all config changes immediately effective.

	* src/engine.c:
	  - [libthai_engine_init] Remove "changed" GSettings signal handling.
	  - [-config_value_changed_cb] Remove the now-unused callback.

2021-10-30  Theppitak Karoonboonyanan  <theppitak@gmail.com>

	Fix failure to set GSettings keys next to the first.

	ibus_libthai_write_config() failed to set all keys but the first.

	* src/ibus_config.c (ibus_libthai_write_config):
	  - Delay and apply key changes in batch.

2021-10-20  Theppitak Karoonboonyanan  <theppitak@gmail.com>

	* NEWS:
	  === Version 0.1.5 ===

2021-10-19  Theppitak Karoonboonyanan  <theppitak@gmail.com>

	Modify rare keys of Pattachote keymap.

	As discussed with @sirn@mastodon.in.th, some keys in
	Pattachote are rarely used and unsettled among platforms.
	We can make use of them for extra Thai characters.

	https://lemmy.ml/post/81580

	- QWERTY grave: MacOS=[฿,]; Windows=[_,฿]
	  We choose Windows layout, but replace the rarely used '_' with 'ๅ'.
	- QWERTY digit one: MacOS=[,]; Windows=[=,+]
	  Just like how [ฃ,ฅ] is placed upon QWERTY [\,|] in Ketmanee,
	  we choose to place it here for Pattachote.
	- QWERTY B: MacOS=Windows=[SARA I, MAI HAN AKAT]
	  MAI HAN AKAT here duplicates the QWERTY g key and is rarely used.
	  It is just a legacy from typewriter key MAI HAN AKAT + MAI THO.
	  We choose to place YAMAKKAN here instead.

	* src/thaikb.c (pattachote_keycode_map):
	  - QWERTY grave: [_,฿] -> [ๅ,฿]
	  - QWERTY digit one: [=,+] -> [ฃ,ฅ]
	  - QWERTY B: [SARA I, MAI HAN AKAT] -> [SARA I, YAMAKKAN]

	Thanks Kridsada Thanabulpong (@sirn@mastodon.in.th) for the
	informative inputs.

2021-10-14  Theppitak Karoonboonyanan  <theppitak@gmail.com>

	Revise descriptions in GSettings schema.

	* data/dconf/org.freedesktop.ibus.libthai.gschema.xml:
	  - Add details on Thai keyboard layouts and ISC modes.
	  - Add 'gettext-domain' attribute for translation.
	* po/POTFILES.in:
	  - Drop main engine files which do not contain messages.
	  - Classify sources with comments.
	  - Add gschema file.

2021-10-12  Theppitak Karoonboonyanan  <theppitak@gmail.com>

	Switch from IBusConfig to GSettings.

	IBusConfig failed somhow to save configs, and even IBus core
	itself has switched to GSettings.

	* configure.ac, data/Makefile.am, +data/dconf/,
	  +data/dconf/Makefile.am,
	  +data/dconf/org.freedesktop.ibus.libthai.gschema.xml:
	  - Add GSettings schema.
	* src/engine_const.h:
	  - Replace CONFIG_SECTION macro with CONFIG_SCHEMA.
	  - Redefine CONFIG_* keys according to GSettings convention.
	* src/ibus_config.h, src/ibus_config.c:
	  - Rewrite ibus_libthai_read_config() and ibus_libthai_write_config()
	    to use GSettings.
	  - Drop set_default_config(), as we always read full config anyway.
	* src/engine.h, src/engine.c:
	  - Replace ibus_config global var with ibus_libthai_settings.
	  - Rewrite ibus_libthai_init() to use GSettings. With this,
	    the IBusBus arg is dropped.
	  - Update ibus_libthai_read_config() call with the GSettings version.
	  - [ibus_libthai_engine_init, config_value_changed_cb]
	    Replace IBusConfig "value-changed" signal handler with that for
	    GSettings "changed" signal.
	* src/main.c (init):
	  - Update ibus_libthai_init() call with the arg-less version.
	* setup/setup.c (main):
	  - Replace IBusConfig uses with GSettings.

2021-10-11  Theppitak Karoonboonyanan  <theppitak@gmail.com>

	Add data subdir and move icons under it.

	* configure.ac, Makefile.am, +data/, +data/Makefile.am:
	  - Add data subdir.
	* configure.ac, data/Makefile.am, icons/* -> data/icons/*:
	  - Move icons subdir to be under data.

2021-10-10  Theppitak Karoonboonyanan  <theppitak@gmail.com>

	Watch config changes instead of reloading ibus.

	* src/engine.c (+config_value_changed_cb, ibus_libthai_engine_init):
	  - Watch config and trap "value-changed" signal from IBusConfig
	    with a callback that reads the changed value.
	* setup/setup.c (entries, main):
	  - Drop call to force_engine_to_reload_config().
	  - Drop now-unused '--engine' and '-x' option.
	* src/ibus_config.h, src/ibus_config.c (-force_engine_to_reload_config):
	  - Drop now-unused function.

2021-10-08  Theppitak Karoonboonyanan  <theppitak@gmail.com>

	Add Manoonchai keymap.

	Some keys are currently omitted, such as '×' and '÷', until
	we support non-TIS-620 chars.

	* src/thaikb.h, src/thaikb.c (+THAI_KB_MANOONCHAI,
	  +manoonchai_keycode_map, thai_keycode_map, thai_map_keycode):
	  - Add Manoonchai keycode table.
	* src/dlg_setup.c (ibus_libthai_setup_dialog_new,
	  ibus_libthai_setup_set_values, ibus_libthai_setup_get_values):
	  - Add "Manoonchai" keyboard layout radio button,
	    with get/set functions.

2021-09-19  Theppitak Karoonboonyanan  <theppitak@gmail.com>

	Fix some keys in Pattachote key map.

	Some keys are not explicitly mentioned in Pattachote tutorials.
	This fix is to make it more compatible with most implementations.

	* src/thaikb.c (pattachote_keycode_map):
	  - Shift + CHO CHOE = LU (previously comma)
	  - QWERTY '\' = PHINTHU (previously LAKKHANGYAO)
	  - Shift + SARA I = MAI HAN AKAT (previously PHINTHU)

	For discussion, see: https://lemmy.ml/post/81580

2021-09-18  Theppitak Karoonboonyanan  <theppitak@gmail.com>

	Swap keymap indexing order for managability.

	* src/thaikb.c
	  (tis_keycode_map, ketmanee_keycode_map, pattachote_keycode_map):
	  - Index keycode before shift level.
	  - Introduce N_LEVELS macro rather than hard coding.
	* src/thaikb.c (thai_keycode_map, thai_map_keycode):
	  - Reorder indexing accordingly.

2021-09-18  Theppitak Karoonboonyanan  <theppitak@gmail.com>

	Replace hex codes in keymaps with characters.

	* src/thaikb.c
	  (tis_keycode_map, ketmanee_keycode_map, pattachote_keycode_map):
	  - Replace hex codes for Latin characters with char literals.
	  - Replace hex codes for Thai characters with TIS_* macros.

2019-12-20  Theppitak Karoonboonyanan  <theppitak@gmail.com>

	Use GitHub issue tracker as bug report address.

	* configure.ac:
	  - Replace bug report e-mail address with GitHub issue tracker URL.

2018-02-19  Theppitak Karoonboonyanan  <theppitak@gmail.com>

	Update my e-mail address in POT

	* po/Makevars:
	  - Update my e-mail address to the gmail one.

2017-09-12  Theppitak Karoonboonyanan  <theppitak@gmail.com>

	Get dummy surrounding text on engine enabling

	* src/engine.c (+ibus_libthai_engine_enable,
	  ibus_libthai_engine_class_init):
	  - Issue a dummy ibus_engine_get_surrounding_text() call when
	    engine is enabled, to tell input context that the engine will
	    utilize surrounding text, according to IBus reference manual.

2016-12-31  Theppitak Karoonboonyanan  <theppitak@gmail.com>

	* NEWS:
	  === Version 0.1.4 ===

2016-12-29  Theppitak Karoonboonyanan  <theppitak@gmail.com>

	Drop unused code

	* src/engine.c (-keyval_to_tis):
	* src/thaikb.h, src/thaikb.c (-thai_map_qwerty, -tis_qwerty_map,
	  -pattachote_qwerty_map, ketmanee_qwerty_map):
	  - Drop unused functions & variables.

2016-12-29  Kridsada Thanabulpong  <sirn@ogsite.net>

	Fix incorrect keys in Pattachote layout.

	* src/thaikb.c (pattachote_keycode_map):
	  - 0xEA (Mai Tri) -> 0xEB (Mai Chattawa)
	  - 0xD2 (Sara Aa) -> 0xD3 (Sara Am)

2016-12-29  Theppitak Karoonboonyanan  <theppitak@gmail.com>

	Use versioning based on Git snapshot.

	* Makefile.am:
	  - Add dist-hook to generate VERSION file on tarball generation.
	* Makefile.am, +build-aux/git-version-gen:
	  - Add script to generate version based on 'git describe'
	    if in git tree, or using VERSION file if in release tarball.
	* configure.ac:
	  - Call git-version-gen to get package version.

2016-03-28  Theppitak Karoonboonyanan  <theppitak@gmail.com>

	* configure.ac, NEWS:
	  === Version 0.1.3 ===

2016-01-22  Theppitak Karoonboonyanan  <theppitak@gmail.com>

	Replace deprecated GtkMisc alignment functions.

	* setup/dlg_setup.c (ibus_libthai_setup_dialog_new):
	  - Replace deprecated gtk_misc_set_alignment() (since GTK+ 3.16)
	    with gtk_label_set_xalign() and gtk_label_set_yalign().
	* configure.ac:
	  - Require GTK+ >= 3.16.

2016-01-22  Theppitak Karoonboonyanan  <theppitak@gmail.com>

	Replace deprecated GtkWidget margin functions.

	* setup/dlg_setup.c (ibus_libthai_setup_dialog_new):
	  - Replace deprecated gtk_widget_set_margin_left() and
	    gtk_widget_set_margin_right() (since GTK+ 3.12) with
	    gtk_widget_set_margin_start() and gtk_widget_set_margin_end()
	    respectively.
	* configure.ac:
	  - Require GTK+ >= 3.12.

2016-01-22  Theppitak Karoonboonyanan  <theppitak@gmail.com>

	Drop deprecated GtkStock.

	* setup/dlg_setup.c (ibus_libthai_setup_dialog_new):
	  - Replace deprecated GTK_STOCK* (since GTK+ 3.10) with
	    literal labels, as suggested in the reference.

2016-01-22  Theppitak Karoonboonyanan  <theppitak@gmail.com>

	Add missing include

	* src/ibus_config.c:
	  - Add missing include for system().

2016-01-21  Theppitak Karoonboonyanan  <theppitak@gmail.com>

	Update my e-mail address.

	* AUTHORS, configure.ac, setup/*.[ch], src/*.[ch],
	  src/libthai.xml.in.in:
	  - Update my e-mail address.

2016-01-21  Theppitak Karoonboonyanan  <theppitak@gmail.com>

	* configure.ac:
	  - Post-release version suffix added.

2013-10-31  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	* configure.ac, NEWS:
	  === Version 0.1.2 ===

2013-10-31  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	* po/th.po: Regenerated. Updated copyright years.

2013-10-30  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	Allow typing Thai digits using numpad with CapsLock or level 3.

	* src/engine.c (ibus_libthai_engine_process_key_event):
	  - Check for numpad keys with CapsLock or level 3 shift and translate
	    them to Thai digits.
	  - When a numpad keysym is got while NumLock is off, by means of
	    Shift modifier, it should get Arabic digit, not Thai.

2013-10-04  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	Use "us,th" layout to allow Thai accelerators.

	* src/libthai.xml.in.in:
	* src/utils.c (ibus_libthai_get_component):
	  - Declare engine's keyboard layout as "us,th". This also allows
	    Thai UI accelerators (e.g. Alt-<FoFan>) while the engine is
	    active. (Note: the ideal solution should be to have the key event
	    handler translate the keycode with internal map. Unfortunately,
	    ibus_engine_forward_key_event() just doesn't work as expected.)

2013-09-07  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	Use "us" layout to allow shortcut keys.

	* src/libthai.xml.in.in:
	* src/utils.c (ibus_libthai_get_component):
	  - Declare engine's keyboard layout as "us". This allows program
	    shortcut keys (e.g. Ctrl-W) while the engine is being active.

2013-09-07  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	* configure.ac:
	  - Post-release version suffix added.

2013-07-11  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	* configure.ac, NEWS:
	  === Version 0.1.1 ===

2013-07-10  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	Update icon.

	* icons/ibus-libthai.svg:
	  - Use regular weight instead of bold face.
	  - Use gradient and outline to improve visibility on various
	    background colors.
	  - Unblur shadow and use alpha channel instead.

2013-07-03  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	Use scancode mapping instead of keysym mapping.

	* src/thaikb.h, src/thaikb.c (+thai_map_keycode):
	  - Add keycode-to-TIS mapping function, with the map tables.
	* src/engine.c (+keycode_to_tis):
	  - Add the wrapper for mapping.
	* src/engine.c (ibus_libthai_engine_process_key_event):
	  - Call keycode_to_tis(), with shift level, instead of
	    keyval_to_tis().

2013-07-03  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	* configure.ac:
	  - Post-release version suffix added.

2013-02-19  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	* NEWS:
	  === Version 0.1.0 ===

2013-02-19  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	Adjust README.

	* README:
	  - Add that XKB symbols are also supported.
	  - A little wording adjustment.

2013-02-19  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	Write README contents.

2013-02-18  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	Switch to XZ tarball compression.

	* configure.ac:
	  - Invoke AM_INIT_AUTOMAKE with dist-xz, no-dist-gzip options.

2013-02-18  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	Adjust icon.

	* icons/ibus-libthai.svg:
	  - Enlarge character.
	  - Convert text to path, so it does not require external font.
	  - Adjust color, add outline stroke, add drop shadow.

2013-02-18  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	Add missing file in distribution.

	* icons/Makefile.am:
	  - Add ibus-libthai.svg to EXTRA_DIST.

2013-02-18  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	Add missing backslash in Makefile.

	* src/Makefile.am:
	  - Add missing backslash at line end for source file list.

2013-01-29  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	Bump libthai dep to 0.1.19.

	* configure.ac:
	  - libthai 0.1.19 has been released, require it instead of SVN
	    snapshot.

2012-11-13  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	Pass unhandled keysyms over to app.

	* src/engine.c (ibus_libthai_engine_process_key_event):
	  - Return FALSE for unknown keysyms.

2012-11-13  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	Remove usused code.

	* src/engine.c (keyval_to_tis):
	  - Remove unused code.

2012-11-12  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	Add missing backslash.

	* icons/Makefile.am: Add missing continuation backslash.

2012-11-08  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	Fix config I/O for GConf.

	* src/ibus_config.c
	  (ibus_libthai_read_config, ibus_libthai_write_config):
	  - Read/write gint32 and boolean, not bytes.

2012-11-08  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	Add dialog source for translation.

	* po/POTFILES.in: Add setup/dlg.c.

2012-11-08  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	Make preferences dialog scale with window size.

	* src/dlg_setup.c (ibus_libthai_setup_dialog_new):
	  - Make widgets expand with container box.
	  - Drop GtkAlignment usage and use widget margins instead, so that
	    the children get expanded with the container.
	  - Add margins around dialog content area.
	  - Rearrange call sequence for each widget.

2012-11-08  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	Add tooltip to correct_input_checkbox.

	* src/dlg_setup.c (ibus_libthai_setup_dialog_new):
	  - Add tooltip to correct_input_checkbox.

2012-11-07  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	Get rid of GObject warnings of unref-ing non-GObject.

	* src/engine.c (ibus_libthai_engine_commit_chars):
	  - Don't unref IBusText object, as GObject asserts that it's not
	    a GObject.

2012-11-07  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	Add preferences GUI for 'do_correct' flag.

	* setup/dlg_setup.c:
	  - (ibus_libthai_setup_dialog_new): Add the checkbox widget.
	  - (ibus_libthai_setup_set_values): Set the checkbox state.
	  - (ibus_libthai_setup_get_values): Get the checkbox state.

2012-11-07  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	Add 'do_correct' config and validate with new libthai API.

	* src/ibus_config.h (IBusLibThaiSetupOptions):
	  - Add 'do_correct' member.
	* src/engine_const.h:
	  - Add CONFIG_DO_CORRECT config item name.
	* src/ibus_config.c (set_default_config, ibus_libthai_read_config,
	  ibus_libthai_write_config):
	  - Set, read, write the new config member.
	* configure.ac:
	  - Bump required libthai version to 0.1.18svn, the unreleased
	    development version. Let's bump it again once the new libthai is
	    released.
	* src/engine.c:
	  - (IBusLibThaiEngine): Add 'do_correct' member.
	  - (ibus_libthai_engine_init): Initialize it.
	  - (+ibus_libthai_engine_get_prev_char): Added for retrieving
	    single-char context in case of no correction.
	  - (ibus_libthai_engine_process_key_event):
	    @ Add code for no-correction case.
	    @ For correction case, call the new libthai th_validate_leveled()
	      API so the input sequence is properly maintained for the
	      given strictness level.

2012-11-05  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	Make Thai KB map types & vars consistent.

	* src/thaikb.h, src/thaikb.c (ThaiKBMap, thai_map_qwerty):
	  - ThaiKBMode -> ThaiKBMap type.
	  - (thai_map_qwerty): layout -> map arg.

	* src/ibus_config.h, src/ibus_config.c, setup/dlg_setup.c
	  (IBusLibThaiSetupOptions):
	  - thai_kb_mode -> thai_kb_map member.

	* src/engine.c (IBusLibThaiEngine, keyval_to_tis):
	  - kb_layout -> kb_map member.
	  - thai_int_layout -> thai_kb_map arg.

2012-11-05  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	Add setup UI (WIP).

	Known problem: ibus config fails (with DBus errors) to read/write
	with ibus 1.4.1-8 on Debian.

	* configure.ac, src/Makefile.am, +src/engine_const.h,
	  +src/ibus_config.h, +src/ibus_config.c:
	  - Add common code as static lib for reading/writing configurations.
	  - This also requires AC_PROG_RANLIB in configure.

	* configure.ac, Makefile.am, +setup/Makefile.am, +setup/setup.c,
	  +setup/dlg_setup.h, +setup/dlg_setup.c:
	  - Add GUI for preferences setup.
	  - This also requires gtk+-3.0 in configure.

	* src/engine.c, src/engine.h, src/main.c:
	  - Add kb_layout member to IBusLibThaiEngine.
	  - Read config for keyboard layout and ISC mode.

	* src/engine.c (keyval_to_tis, ibus_libthai_engine_process_key_event),
	  src/thaikb.h, src/thaikb.c (thai_map_qwerty, -thai_set_keyboard):
	  - (keyval_to_tis) takes keyboard layout as argument.
	  - (ibus_libthai_engine_process_key_event) calls keyval_to_tis with
	    engine's keyboard layout config.
	  - (thai_map_qwerty) takes keyboard layout as argument and look up
	    keys with two-dimensional array.
	  - (thai_set_keyboard) is now obsolete.

	* src/libthai.xml.in.in:
	  - Add 'setup' element.

2012-11-04  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	Reformat hex numbers in key map.

	* src/thaikb.c (ketmanee_qwerty_map, pattachote_qwerty_map,
	  tis_qwerty_map):
	  - Reformat hex numbers to two-digit lower cases.

2012-11-04  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	Add Pattachote key map.

	* src/thaikb.h (enum _ThaiKBMode):
	* src/thaikb.c (pattachote_qwerty_map, thai_set_keyboard):
	  - Add Pattachote QWERTY-to-TH map.

2012-11-04  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	Fix missing quotation marks in XML.

	* src/libthai.xml.in.in:
	  - Escape quotation marks so they get preserved on shell evaluation.

2012-11-03  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	Do the most likely case first for key mapping.

	* src/engine.c (keyval_to_tis):
	  - Check & convert English keysyms first.

2012-11-02  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	Add internal QWERTY-to-TH keyboard mapping.

	* src/Makefile.am, +src/thaikb.h, +src/thaikb.c:
	  - Add internal QWERTY-to-TH keyboard mapping.

	* src/engine.c (keyval_to_tis):
	  - If keyval is in English range, map it to Thai TIS-620 char.

2012-11-02  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	* First working version.

2011-12-13  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	* First create the project.

