{NEXT]
======

CHANGES SINCE 0.99.0
* Introduced Qt5 input context, replacing the one provided by Qt. Can
  be enabled by CONFIG+=qt5-inputcontext
* Allow plugin window reactive area and input method area reported to
  application differ
* Fix window state to have transient hint and window type as with
  Maliit 0.8x

0.99.0
======

CHANGES SINCE 0.94.0
* Requires Qt 5
* GTK+ and Qt 4 input context are moved into a separate rpository/package
* Do not use debug config for unit tests
* Do not abort if there are no plugins.
* Improvements for QML plugins
  - Notify qml keyboard when editor target focus changes
  - Expose editor state better to QML input methods
  - Replace correctionEnabled with predictionEnabled in qml interface
  - Enhanced QML interface event sending
* Use QScreen::availableSize to calculate screenSize
* Add window group class managing plugins' QWindows
  - Replaces surface abstraction
* Remove CONFIG options
  - disable-background-translucency
  - disable-dbus
  - enable-qdbus
  - noqml
* Remove MIndicatorServiceClient
* Use QDBus instead of glib-dbus
* Remove unused code
* Update Wayland support to latest protocol changes
* Add support for input region also on wayland
* Add a proper Platform class
* Remove unneeded plugin factories

BUG FIXES
* Fix some quick input method docs a bit.
* Fix build when building without CONFIG+=wayland
* Fix build with CONFIG+=wayland.
* Fix unused parameter warning.
* Fix minputmethodquickplugin test for Qt 5
* Fix private include and use QT+=gui-private
* Fix some QDBus issues.
* Fix plugins windows are never added to WindowGroup
* Fix showing of nemo-keyboard
* Fix qdbus interface and adaptor generation

0.94.0
======

CHANGES SINCE 0.93.1
* Add Wayland input method support
* Auto-detect subviews based on system locale
  - If no configuration exists, Maliit uses LANGUAGE to guess plugin's
    subview(s).
* Don't write user configuration to disk for default values
  - Only write *actual* user configuration that's different from factory
    defaults.
* Remove version suffix from libraries and install directories
  - Affects packaging & {header, .pc , .prf} install directories
* Adjust to Qt 5.0.0 API changes
* Add surface support for QtQuick2
* Remove SDK
  - It was pretty much unmaintained.

0.93.1
======

CHANGES SINCE 0.93.0
* Use QtQtuick2 when compiling against Qt5
  - Only affects QML plugins such as Nemo Keyboard.

BUG FIXES
* Fixes: MALIIT#194 - Maliit can not input when QML viewer is set to full
  screen on QWS without x11
* Fixes: MALIIT#197 - Read initial SW_TABLET_MODE state correctly
* Fix qmake warnings about using CONFIG+=qdbus
* Fix qmake warnings about using deprecated IN_PWD variables

0.93.0
======

CHANGES SINCE 0.92.5
* Monitor SW_TABLET_MODE to determine hardware keyboard presence
  -  A new, default implementation for MImHwKeyboardTracker: we look for a
     readable evdev device which has a SW_TABLET_MODE switch. If found, we use
     that device for determining the presence/availability of the hardware
     keyboard.
* Allow QML plugins to send key events:
  - Use MInputMethodQuick.sendKey()

BUG FIXES
* Fix focus handling for Qt5
* Fix the build when disabling GTK+ support
* Fix QML plugin loading for Qt5
* Fix "fullscreen" surfaces (required by QtQuick still):
  - Events can be passed through to application again even if input method with
    a semi-translucent "fullscreen" surface is shown.

0.92.5
======

CHANGES SINCE 0.92.4
* Allow to disable GTK+ support:
  - Use qmake CONFIG+=nogtk to disable building the GTK+ input context module
    and the glib-based application support libraries.
* New "disable-background-translucency" option to workaround VKB's garbled visuals
  on non-compositing WMs. Use CONFIG+=disable-background-translucency.
* Make maliit-framework compile against Qt 5 beta release.

BUG FIXES
* Fixes: MALIIT#188 - maliit-server forgets active subview
* Fixes: MALIIT#183 - Can not rotate the keyboard

0.92.4
======

CHANGES SINCE 0.92.3
* GConf settings backend removed. This backend was deprecated in previous release, 0.92.3.
  Settings applications and other wishing to manipulate Maliit setting entries should
  use the libmaliit (Qt) or maliit-glib APIs.
* There is a change in the DBus interfaces to support invoking actions on application side
  (beside just copy and paste). A invokeAction was added to the
  com.meego.inputmethod.uiserver1 interface. The copy and paste methods were removed from
  the com.meego.inputmethod.inputcontext1 interface.

BUG FIXES
* Fixes: Extensions overrides are not registered for the first time.
* Fixes: Input context plugin does not load.

0.92.3
======

CHANGES SINCE 0.92.2.1
* GConf settings backend deprecated. The default backend is now QSettings.
  GConf backend can be enabled using CONFIG+=enable-gconf, but will be removed in 0.92.4
* Add maliit-exampleapp-settings-python3, a Python + maliit-glib based command-line
  application for settings. Is also useful while developing to configure settings.

0.92.2.1
========

CHANGES SINCE 0.92.2
* Revert to old install prefix behavior (<=0.92.1). By default the install prefix for
  files extending GTK+, Qt, gconf follows what the respective system component reports.
  For installing not system-wide, use CONFIG+=local-install. See INSTALL.local for details.
  This is equivalent to the old CONFIG+=enforce-install-prefix option.

0.92.2
======

CHANGES SINCE 0.92.1
* Use common environment variables to configure install behaviour of framework
  files.
  - Use PREFIX to specify install prefix and LIBDIR ($PREFIX/lib, by default)
    to specify library install directory (for example /usr/lib64 on x64, for
    Fedora systems). All other M_IM_INSTALL_SOMETHING variables have been
    changed to SOMETHINGDIR. Use qmake HELP=1 to see the configure options.
* Rename M_IM_DEFAULT_* environment variables for default plugin configuration
  to MALIIT_DEFAULT_*.
* Add settings API to maliit-glib, too.
* Add plugin settings API:
  - Plugins can export their settings to applications via the settings API, see
    the settings example for more.

BUG FIXES
* Fixes: Some examples and tests fail to link.
* Fixes: Settings are not propagated to plugins in some cases.
* Fixes: MALIIT#169 - Custom install prefix not respected for GTK, QT input context plugins
* Fixes: MALIIT#57 - Remove prefix from M_IM_* configure variables

0.92.1
======

CHANGES SINCE 0.92.0
* Added settings API
  - Added client API in libmaliit to enumarate and update settings
  - Allow changing enabled/active Maliit plugins
* Changed the format for onscreen/enabled and onscreen/active settings:
  onscreen/active is a single string with format <plugin id>:<subview id>
  (es. "libmaliit-keyboard-plugin.so:en_gb") and onscreen/enabled is a list
  of strings in the same format as onscreen/active
* Added libmaliit-glib
  - Allows GTK+ applications to control certain features of the input method
    directly (currently show/hide, but feature parity with libmaliit is the
    goal).
  - Uses gtk-doc instead of doxygen (which is normally used in framework), but
    will also be disabled when using CONFIG+=nodoc.
  - Comes with GObject instrospection. As a proof-of-concept, there's a GTK+
    Python demo app that can explicitly show and hide the virtual keyboard. See
    examples/apps/gtk3-python for more.

BUG FIXES
* Fixes: MALIIT#127 - Add settings API, as an integration point for settings applets
* Fixes library dependencies for tests linked to plugins
* Fix commit-string signal in connection-glib
* Fixes: MALIIT#140 - Add method to explicit show/hide the keyboard to libmaliit-glib
* Fixes OOT build by using extra compilers instead of targets
* Add maliit-glib to PKG_CONFIG path of sdk
* Fixes: MALIIT#144 - Empty region reported by inputMethodAreaChanged
* Remove INSTALLs from tests.pro
* Fixes: MALIIT#67 - Keyboard does not auto-show after a few auto hides
* Fixes: warning during qmake's run about unknown quick1.
* Fix position of overlay surfaces after rotation
* Fix geometry of surfaces after screen size change
* Fix WindowedSurface::relativePosition()
* Fix AbstractSurfaceFactory's screen size API

0.92.0
======

CHANGES SINCE 0.91.0
* Update maliit plugin interface from 0.80 to 1.0
* Add surfaces API for abstracting window/widget management for plugins
  - Add surfaces implementation for windowed widgets
* Removed legacy support for MeeGo Harmattan:
  - Remove Toolbar API
  - Remove legacy minputmethodnamespace.h
* Cleanup plugin API:
  - Rename MInputMethodPlugin to InputMethodPlugin
  - Remove MAbstractInputMethodSettings
  - Remove InputMethodPlugin::languages()
  - Remove MImWidget and MImGraphicsView
  - Move plugin headers and sources to maliit/plugins
  - Remove unused parameter from MAbstractInputMethod
  - Remove unused widget parameters from InputMethods
* Add config switch to enable QtDBus implementation
  - Use qmake CONFIG+=enable-qdbus to enable the QtDBus based DBus
    connection backend
* Add backend for QSettings backed by temporary file

BUG FIXES
* Fixes: MALIIT#118 - Child surfaces need to be working correctly
* Fixes: MALIIT#117 - Window surfaces need to be transient to the application window
* Fixes: MALIIT#101 - Allow to build without QtDbus (for non-*nix platforms)
* Fixes: MALIIT#23 - Maliit should work without a compositing window manager under X11
* Fixes: MALIIT#20 - Ubuntu's login screen (lightdm) is completely black apart from the Maliit keyboard 
* Fix unused parameter warning
* Fix clipping bug
* Fix compile error on Arch Linux current
* Fix warning when creating sdk
* Fix MAttributeExtensionId module
* Explicitly link to libmaliit-connection
* Add dependency in maliit-plugins pkg-config file
* Use .pri files in ut_minputmethodquickplugin
* Fix maliit-plugins pkg-config dependencies
* Fix include path in maliit-plugins.prf

0.91.0
======

CHANGES SINCE 0.90.0
* Removed legacy support for MeeGo Harmattan:
  - CONFIG+=enable-legacy removed,
  - No longer uses MeeGo graphics system,
  - No longer reads GConf configuration under /meegotouch/inputmethods,
  - No longer installs meego-im-uiserver,
  - No longer uses /usr/lib/meego-im-plugins for Maliit plugins
* Allow to run Maliit server and plugins in application process:
  - See examples/apps/embedded or examples/apps/server-embedded. The former
    uses a special input context that will load the server, MaliitDirect,
    whereas the second example shows how to load the server directly, without
    the special input context.
* Clean up tests to use minimal dependencies:
  - Same as with maliit-keyboard in plugins repo, most tests should be able to
    run without QtGui or QWidget dependencies.
* Experimental QtDBus support
* Add preedit supoprt for GTK+ applications
* Improve Windows build

BUG FIXES
* Fix ft_exampleplugin on Qt 5
* Fix ut_minputcontextplugin not finding libmaliit-qt4.so
* Fix dependency issues for make check
* Fixed build error caused by commit "Split the DBus and direct Qt4 input
  context plugins.".


0.90.0
======

CHANGES SINCE 0.81.3
* Allow pluggable backends to store maliit-server settings.
* Added a compilation option to disable the GConf settings backend,
  using QSettings as a fallback.
* Notify applications when attribute extensions are changed by Maliit plugins
  - Typical use case would be buttons in an input method toolbar, where the
    application needs to know about the button state.
* New connection directory to isolate all D-Bus dependend code
  - This will make it easier to use other IPCs (or no IPC at all, in case the
    application hosts the input method system) in the future.
* Introduce -h/--help parameter to maliit-server
  - When giving invalid parameters to maliit-server, it will complain and print
    a useful help message.

BUG FIXES
* Fixes: MALIIT#88 - Remove hard dependency on GConf
* Fixes: NB#298678 - (Regression): Alphabetical VKB shown automatically in "Change security code"-view
* Fixes: Maliit#92 - maliit-server does not take a -help/-h argument
* Fixes: NB#298276 - Observed im-ui-server crashes on CITA
* Fixes: NB#298229 - PIN query appears black for several seconds during startup
* Fixes: NB#296576 Vkb is not shown in text field, when swype keyboard is enabled & disabled in a scenario
* Fixes: Maliit#68 - maliit-server does not always notify IC about InputMethodArea changes
* Fixes: NB#295883 - All input methods are still installed after tapping the
  emergency keyboard button in the device lock screen and typing the lock code
  on system startup

0.81.3
======

CHANGES SINCE 0.81.2
* DBus activation for maliit-server now optional. Pass
  CONFIG+=disable-dbus-activation to qmake to disable.
  Use this option when using a system/session manager (like systemd)
  to start and keep maliit-server alive
* Improved support for Qt Embedded (QWS)
* Make framework compile on older platforms
  - With the fix of MALIIT#14, latest version of framework will now compile on
    Maemo Fremantle again (might require skipping the tests still).

BUG FIXES
* Fixes: MALIIT#14 - Maliit requires glib/gio 2.26+
* Fixes: MALIIT#73 - Make dbus-x11 an optional dependency
* Fixes: Use the QPA platform implementation when compiling for Qt Embedded (QWS).
* Fixes: do not use X11 plugin host implementation for Qt Embedded (QWS).
* Fixes: Use correct qmake binary when creating SDK

0.81.2
======

CHANGES SINCE 0.81.1
* M_IM_DEFAULT[_HW]_PLUGIN configuration variables available to set default
  plugins (and also plugin subview) at configure time. See qmake HELP=1 for
  more.

BUG FIXES
* Fixes: Add missing header to plainqt example application for Qt 4.8
* Fixes: SDK creation fails if libmaliit is not installed
* Fixes: Docs/SDK installed to wrong location if destination directory exists
* Fixes: SDK example applications fails in legacy-mode
* Fixes: NEMO#14 - VKB opens even if HWKB is already open
* Fixes: Crash happening during initiated hide in Gtk+ app.
* Fixes: enforce-install-prefix for legacy mode
* Fixes: Copy/paste error in GTK+ 2 im cache update for Fedora

0.81.1
======

CHANGES SINCE 0.81.0
* Plugins can store plugin data such as graphical assets in
  /usr/share/maliit/plugins/<plugin-name>. The prefix can be queried through
  "$ pkg-config --variable pluginsdatadir maliit-plugins-0.80".
* Standardized logging output on Maliit server and Qt and Gtk+ input contexts.
  - Debug output is enabled with setting the environment variable MALIIT_DEBUG
    to enabled (MALIIT_DEBUG=enabled).
  - Old environment variable MIC_ENABLE_DEBUG is not supported any longer.
* Use a static, non-installed lib for common GTK+ IC code.
* Framework and examples can be compiled with Qt 5.

BUG FIXES
* Fixes: MALIIT#48 - 	It is possible to have more than one maliit-server per session 
* Fixes: MALIIT#31 - On closing IM with GTK+ applications, user has to unfocus manually to be able to invoke IM again
* Fixes: MALIIT#33 - maliit-sdk make clean fix and .obj/.moc removal
* Fixes: MALIIT#16 - root owned directory ./sdk/build/maliit-sdk is created on make install
* Fixes: NB#286366 - libmeegoimframework-dev package is incomplete
* Fixes: QML helloworld plugin build failure
* Fixes: ut_selfcompositing fails on buildbot
* Fix GTK+ IC build for out-of-tree builds
* Fixes: Ut_MInputContext::testCopyPasteState() failing if clipboard has text at test start
* Fixes: MALIIT#17 - Qt input-context crashes if using GtkStyle and have GTK+ input-context enabled
* Fix build for MImQPAPlatform
* Fix missing QApplication include in case of non X11 platform.
* Fixes: Missing linker directory in ut_minputmethodquickplugin

0.81.0
======

CHANGES SINCE 0.80.8
* D-Bus activation for maliit-server
  - An application can launch a maliit-server instance via D-Bus activation;
    use MALIIT_SERVER_ARGUMENTS when building maliit-server to specify
    additional arguments. Check src/org.maliit.server.service for currently
    configured arguments.
  - Each user session can run its own maliit-server now.
* Plain QML file loading support for QML-based input methods
  - Install main QML file into plugins directory and set the GConf keys in
    /maliit/onscreen/[active,enabled] to that file.
* Improved documentation
  - Stand-alone application and plugins examples are installed by default
  - A maliit-sdk executable can be used to extract examples and to view
    documentation.

BUG FIXES
* Fixes: Building example applications stand-alone
* Fixes: NB#291062 - Regression: QML Components Gallery, Text Input, Sip
  Attributes Example failed.

0.80.8
======

CHANGES SINCE 0.80.7
* Merge GTK+ input context bridge from
  https://gitorious.org/meegotouch-inputmethodbridges into Maliit
  - Use GTK_IM_MODULE=Maliit to activate the input context.
* Improved GTK+ support
  - GTK+ applications now properly reconnect when the connection to the Maliit
    server was lost or when the Maliit server was started after the
    application.
  - By default, update GTK+ inputmethod module cache. Packagers might want to
    override this at configure time via qmake CONFIG+=disable-gtk-cache-update
* Forward all Qt inputmethod hints to Maliit plugins, via
  MImUpdateEvent::hints().
* Allow applications to control whether symbol view or QWERTY view should be
  shown when a text entry gains focus (check widgetproperties example):
  - Set the Qt::ImPreferNumbers inputmethod hint.
* Add a translucent inputmethod mode (check widgetproperties example):
  - Use QObject::setProperty(Maliit::InputMethodQuery::translucentInputMethod,
    true|false)
* New MImUpdateReceiver class demonstrates a Qt property technique for plugins
  to cleanly process MImUpdateEvents.

BUG FIXES
* Fixes: Compilation warnings in GTK+ IC
* Fixes: Wrong upchaining in meego_imcontext_finalize
* Fixes: GTK+ IC crashes if server is not started on app startup
* Fixes: NB#284151 - [TASK] ImhPreferNumbers does not open page 2 on virtual keyboard
* Fixes: GTK+ input context not showing plugin
* Fixes: MPreeditInjectionEvent compatibility
* Fixes: activeConnection uninitialized in MInputContextConnection
* Fixes: Crash in Server->IC connection due to wrong upchaining
* Fixes: Wrong values are shown when both label and icon are overriden.

0.80.7
======

CHANGES SINCE 0.80.6
* Improved QPA (Qt Lighthouse) support
* New MImUpdateEvent: Instead of forcing plugins to poll data from
  MAbstractInputMethodHost after each update, they can now choose to handle
  this MImExtensionEvent. MImUpdateEvent informs about the changes (through its
  propertiesChanged list) and allows extraction of updates through its value
  method.
* More dynamic key override examples.
* Bring dynamic key overrides to QML plugins.
* Let QObject properties override input method queries. This allows more
  consistent integration with QML Componeents and plain Qt apps.

BUG FIXES
* Fixes: Let IM properties on QObjects override IM queries
* Fixes: Label and icons are both shown at the same time.
* Fixes: LD_LIBRARY_PATH for tests does not contain input-method-quick
* Fixes: Lookup of data files causes make check to fail in out-of-tree build
* Fixes: Plugins get an empty map when focus is switched.
* Fixes: Action key label does not change back in QtQuick override plugin.
* Fixes: Action key label does not change back in C++ override plugin.
* Fixes: Documentation was not installed.
* Fixes: Extension attributes are not registered after input context creation.
* Fix unredirecting in self-compositing mode
* Fixes: Server sometimes crashes in dbus connection

0.80.6
======

CHANGES SINCE 0.80.5
* Server can build against Qt 4.8 with Lighthouse and run under Wayland
* Legacy mode config option changed to enable-legacy instead of
  enable-meegotouch. Enable with:
  $ qmake -r CONFIG+=enable-legacy* Support hardware keyboard handling for Qt Quick plugins
* Removed deprecated support for integrating with input methods via
  LMT/meegotouch directly. LMT/meegotouch uses libmaliit for that now.
* Track hardware keyboard status on Fremantle (N900)
* New MAbstractInputMethodHost::setLanguage(QString) API
  - New method setLanguage added to D-Bus interface. Through this method plugins
    can give applications a hint of the language user is going to write.
* qmake HELP=1 will now output a list of build options
* Input context <-> server communication is more generic,
  and allows implementation of other IPC/transport mechanisms
* Legacy mode and non-legacy mode now parallel installable.

BUG FIXES
* Fixes: Install gconf schemas on make install
* Fixes: Failure to generate dbus glue files in out-of-tree build
* Fixes: NB#277853 - Meego-im-uiserver crash on invalid plugin name

0.80.5
======

CHANGES SINCE 0.80.4
* PySide bindings for Maliit Plugin API
  - Python plugins can now make use of the generic plugin loader found at
    https://github.com/renatofilho/maliit-python - together with the new plugin
    factory MImAbstractPluginFactory, the requirement for a Qt/C++ wrapper in
    the case of Python plugins has been eliminated.
* New plugin switch handling
  - SwitchPreparationBackward, SwitchPreparationForward and SwitchCanceled,
    required for new panning gesture to change between plugins/subviews.
* New MAbstractInputMethodHost::preeditClickPos() API:
  - Forwards the preedit-local coordinate to input method plugins.

BUG FIXES
* Fixes: NB#277834 - libmaliit seg. fault in libmeegotouch unit tests:
  ut_mtextedit and ut_minputmethodstate
* Fixes: BMC#19298 - [FEA] Provide PySide bindings for Maliit Plugin API

0.80.4
======

CHANGES SINCE 0.80.3
* Improved legacy support:
  - Applications that want to integrate with input methods can freely choose
    whether to use MTF/libmeegotouch or libmaliit
* Improved unit tests:
  - Added tests for Maliit::AttributeExtension{, Registry} API
  - Fixed skipped unit tests
  - Fix tests for plugin examples
* Build system:
  - Fix out-of-tree builds

BUG FIXES
* None

0.80.3
======

CHANGES SINCE 0.80.2
* Remove Harmattan-specific settings applet
* Add support for ContextKit keyboard tracker

BUG FIXES
* Fixes: AttributeExtensions with libmaliit

0.80.2
======

CHANGES SINCE 0.80.1
* New libmaliit contains additional API for application developers to interact
  with input methods (besides Qt's input context API):
  - Maliit::InputMethod: Query input method area and control input method
    orientation,
  - Maliit::AttributeExtension: Allows to control input method toolbar and
    customization of certain virtual keyboard keys,
  - Maliit::PreeditInjectionEvent: Used by text entries to inject a new preedit
    into the input context,
  - Maliit namespace for all input method related enums, superseds MInputMethod
    namespace.
* New input context name:
  - Use QT_IM_MODULE=Maliit for regular builds and QT_IM_MODULE=MInputContext
    for legacy builds.
* Script for making Maliit Plugin SDK tarball.
* Enabled all unit tests again.

BUG FIXES
* Fixes: Settings applet does not compile with enable-meegotouch
* Fixes: NB#268826

0.80.1
======

CHANGES SINCE 0.80.0
* Support for QML plugins to let user hide plugin
* Legacy mode can be enabled through:
  $ qmake -r CONFIG+=enable-meegotouch

BUG FIXES
* Fixes: NB#254635, meego-im-uiserver is missing capabilities
* Fixes: BMC#15415 - corrupt text-input-settings.qm
* Fixes: NB#265488 - Word tracker is shown empty when the device is rotated.
* Fixes: MAbstractInputMethodHost's dependency to MIMApplication
* Fixes: NB#259910, CommonComboBoxIcons missing from Text input settings
* Fixes: NB#259600, Order of layout information, non-tapable area and line to be removed from settings.

0.80.0
======

CHANGES SINCE 0.20.20
* Maliit rebranding:
  - Libraries:
    - libmeegoimframework => libmaliit-plugins
    - libmeegoimquick => libmaliit-plugins-quick
  - Binaries:
    - meego-im-uiserver => maliit-server
  - Plugins install paths:
    - /usr/lib/meego-im-plugins => /usr/lib/maliit/plugins-x.y
* Added library versioning
  - Allows for parallel installation of different versions
* Removed internal libmeegotouch dependency
  - MPreeditInjectionEvent, MInputMethodState added to new experimental
    libmaliit
* Improved build infrastructure:
  - Common defines for install paths, names, etc.
  - Better pkg-config support (whilst deprecating prf files)
  - Better install prefix handling through M_IM_PREFIX

BUG FIXES
* Fixes: BMC#18772 - meego-im-uiserver is changing the window type after it's
  window is mapped

0.20.11
=======
* Added support for enabling/disabling plguins and subviews.
  - MAbstractInputMethod::subViews() should return all subviews instead of
    just the enabled ones now
  - The new GConf keys :
    - /meegotouch/inputmethods/onscreen/enabled
    - /meegotouch/inputmethods/onscreen/active
    replace the old ones:
    - /meegotouch/inputmethods/plugins/onscreen
    - /meegotouch/inputmethods/virtualkeyboard/layouts
    - /meegotouch/inputmethods/virtualkeyboard/lastactivesubview

0.20.10
=======
* Added basic framework support for QML-based plugins:
  - MInputMethodQuick: A MInputMethod implementation that sets up a QML
    environment and exposes a MInputMethodQuick context to the QML side.
  - MInputMethodQuickPlugin: A ready-made plugin wrapper, to use it reimplement
    MInputMethodQuickPlugin::qmlFileName and MInputMethodPlugin::name.

0.20.0
=======
* Removed MeeGo Touch from public API.
* Allow to build framework without MeeGo Touch (optional)
  - Use "$ qmake CONFIG=+nomeegotouch -r ." or
    "DEB_BUILD_OPTIONS=nomeegotouch".
* New helper classes:
  - MImGraphicsView: Use this widget if your input method plugin uses
    QGraphicsView (or QDeclarative*).
  - MImWidget: Use this widget if your input method offers a tradtional
    QWidget-based UI.
  - Both widgets boost render performance of input method plugins by using the
    framework's latest self-compositing feature. Check their documentation for
    subclassing advice. Also, in case you cannot reuse these classes, you need
    to use MAbstractInputMethodHost::background - if null, it can be ignored.
    Otherwise, it needs to be drawn into the background of your central widget
    (assuming full-screen widgets). For QWidgets, this can be done in
    QWidget::paintEvent. For QGraphicsView, it is required to override
    QGraphicsView::drawBackground instead.
  - MImHwKeyboardTracker: Tracks state (open/closed) of HW keyboard (does not
    provide any functionality yet when framework is build without MeeGo Touch
    support).
  - MImSettings: Currently a wrapper for GConf, but supposed to be extended for
    GConf-less platforms.
* API changes:
  - Removed MIMSettingsDialog (use settings applet instead).
    - Removed MAbstractInputMethodHost::showSettings, too. This means that IM
      plugins can no longer request the settings dialog.
  - Removed MPlainWindow.
  - MAbstractInputMethod:
    - c'tor now takes an additional QWidget parameter, the
      main window (top level widget) supplied by the framework. This frees
      plugins from using MPlainWindow. Plugins can now choose between
      traditonal QWidget UI's or QGraphicsView UI's (including MeeGo Touch and
      QML). Make sure to reparent your central widget to the main window.
    - centralWidget: Returns central widget of your plugin.
    - setCentralWidget: Sets central widget of your plugin. Important if you
      want to take advantage of self-composting by using MImGraphicsView or
      MImWidget.
  - MInputMethodPlugin:
    - createInputMethod: Takes an additional QWidget parameter, the main
      window. Parameter is supplied by framework.
  - MInputMethod namespace:
    - added OrientationAngle, Orientation, TextContentType (copied from MeeGo Touch)

0.19.41
=======
* API changes
- MAbstractInputMethod was changed. The method handleAppOrientationChange() was renamed as
handleAppOrientationChanged(), which means target application already finish changing
orientation. And there was a new method handleAppOrientationAboutToChange() says target
application is about to change orientation.
- Added X key event time parameter to MAbstractInputMethod::processKeyEvent().

0.19.39
======
* API changes
 - New entry setOrientationAngleLocked added to input-context D-Bus interface and 
   similar method added also to MInputContextConnection and MAbstractInputMethodHost.
 - Added MAbstractInputMethodHost::hiddenText()

0.19.37
=======
* API changes
 - MInputContextConnection was changed. Add new parameters replaceStart and replaceLength
 in sendPreeditString(). Add new parameters replaceStart, replaceLength and cursorPos in
 sendCommitString(). Add new pure virtual method setSelection().
 - MAbstractInputMethodHost was changed. Add new parameters replaceStart and replaceLength
 in sendPreeditString(). Add new parameters replaceStart, replaceLength and cursorPos in
 sendCommitString(). Add new pure virtual method setSelection().

0.19.32
=======
* API changes
 - Toolbar specification was changed. Add a new attibute "visible" for button.
   Check latest version of the specification in the file doc/src/toolbarxml.dox.
 - new variant of MToolbarItem::setVisible() with explicit visibility flag was added.

0.19.31
=======
* API changes
 - Parameters in MInputContext::updatePreedit() are changed to accept definitions
   of different formats for each part of preedit, and support to show cursor inside
   preedit.
 - A parameter cursorPos is added to MAbstractInputMethod::setPreedit().
 - Parameters in MInputMethodHost::sendPreeditString() are changed to accept definitions
   of different formats for each part of preedit, and support to show cursor inside
   preedit.
 - new struct PreeditTextFormat in namespace MInputMethod which defines the text format
   for the preedit string.
 - MAbstractInputMethodHost was changed. Add a new pure virtual method cursorRectangle().

0.19.30
=======
* API changes
 - Toolbar specification was changed. Add a new attibute "enabled" for button.
   Check latest version of the specification in the file doc/src/toolbarxml.dox.

0.19.27
=======

* API changes
 - MInputMethodBase was renamed to MAbstractInputMethod
 - MInputMethodSettingsBase was renamed to MAbstractInputMethodSettings
 - Removed region signal from MAbstractInputMethod and replaced them with
   setScreenRegion() and setInputMethodArea() in MAbstractInputMethodHost.
 - renamed in MAbstractInputMethod:
   - mouseClickedOnPreedit() -> handleMouseClickOnPreedit(
   - focusChanged() -> handleFocusChange()
   - visualizationPriorityChanged() -> handleVisualizationPriorityChange
   - appOrientationChanged() -> handleAppOrientationChange()
   - clientChanged -> handleClientChange()

0.19.26
========

* API changes
 - A request type parameter was added to MInputContext::keyEvent to
   allow signal only and event only key events.
 - Similar change to MInputContextConnection::sendKeyEvent and the "keyEvent"
   method in DBUS interface "com.meego.inputmethod.inputcontext1".
 - Removed MInputContextConnection from public API and replaced it with
   MAbstractInputMethodHost for MInputMethodBase.
 - Removed some ...Requsted() signals from MInputMethodBase and replaced with
   methods in MAbstractInputMethodHost
 - Removed indicator setting from MInputMethodBase and replaced with method on
   MAbstractInputMethodHost. Moved the indicator enum to MInputMethod namespace.
 - Changed the D-Bus interface of MIMPluginManager to use meego prefix.

0.19.24
========

* API changes
 - Toolbar specification was changed.
   Check latest version of the specification in the file doc/src/toolbarxml.dox
 - class MToolbarRow was removed

0.19.22
========

* API changes
 - moved contents from mpreeditface.h, mimdirection.h and mimhandlerstate.h
   to minputmethodnamespace.h using "MInputMethod" namespace.
   Also renamed MInputMethodSwitchDirection -> SwitchDirection.

- Moved headers out of meegotouch dir to /usr/include/meegoimframework/

0.19.21
========

* API changes
 - MInputContext::keyEvent will always emit a signal, additional parameter "signalOnly"
   is used to suppress delivering the KeyEvent to focused widget.
 - D-BUS message "keyEvent" in interface "com.meego.inputmethod.inputcontext1" has new
   boolean parameter to match the new parameter in MInputContext::keyEvent

0.19.20
========

* Uses MInputMethodState signals for notifying application for real hw keyboard signals

0.19.19
========

* API changes
 - Public API of MToolbarData and MToolbarRow was changed, most of methods are private now.
 - Source code of MToolbarRow and MToolbarLayout was moved to dedicated files, so you need
   to include mtoolbarrow.h and mtoolbarlayout.h if you want to use that classes.

= 0.18/0.1.22 =
== New ==
 * New RPC setComposingTextInput, composingTextInput, and setModifierState to support hardware keyboard key event filtering

== Changed ==
 * Region given to DuiPassThruWindow::inputPassthrough() is not translated anymore
 * dui-im-context is now moved back to here
 * Window's properties are set during the construction of the passtrough window

= 0.1.21 =
== New ==
 * DuiIMPluginManager handles different kind of input method
 * Selective painting is enabled

== Changed ==
 * DuiIMPluginLoader is renamed into DuiIMPluginManager with new features
 * DuiIMPluginManager no longer needs scene argument

= 0.1.20 =
== Changed ==
 * Compilation in passthroughserver now using the library created in src, and no longer look in /usr/lib
 * By default now using -software, even for device usage 
 
= 0.1.19 =
== New ==
 * Unit tests are now packaged
 * Server is now launched from a helper script in order to "guarantee" a correct connection with DBus
 * XSession script is now removed and rely on the DBus service

= 0.1.18 =
== New ==
 * inputMethodAreaUpdated signal to announce the changes to the input method area. This is now separated from the area sent to passthrough server.
  
== Changed ==
 * Further changes to reaction maps API

= 0.1.17 =
== Changed ==
 * Haptics related class name changed
 * Support for quering pre-edit rectangle from input-context
 * No longer use software rendering

== Fixed ==
 * NB#141431   candidate list rotation is broken

= 0.1.16 =
== Changed ==
 * Rendering method (software/hardware accelerated) is now determined in runtime (using -software argument)

= 0.1.15 =
== Fixed ==
 * NB#137201   Virtual keyboard is getting closed when typing the first character

= 0.1.14 =
== new ==
 * Depends on libdui 0.11
 * Direct mode input is now supported
 * Input method server is now also a dbus service
 * DuiInputContext::WidgetInfo sets default values
 * Input-context notifies input method when it's application's orientation changes

== Changed ==
 * input-context is moved to libdui, starting on libdui 0.11
 * Passthrough window is no longer shown/hidden during the region update, it is always shown all the time.

== Removed ==
 * Old unused files (css, input-context unit tests)

== Fixed ==
 * NB#130249   Virtual keyboard uses local instance of theme daemon
 * NB#137201   Virtual keyboard is getting closed when typing the first character 

= 0.1.13 = 
== new ==
 * imInitiatedHide() to notify that im server wants the IM to be hidden.
 * Remove focus when input method is hidden.

== Changed ==
 * inputMethodShown() and inputMethodHidden are removed in favor of imInitiatedHide()
 * QSettings are deprecated in favor of DuiGConfItem.

= 0.1.11 =
== New ==
 * inputMethodShown() to hide the navigation bar

== Changed ==
 * mouseClickedOnPreedit() now includes the rectangle of the preedit

= 0.1.9 =
== Changed ==
 * Make dui-im-uiserver have its own reaction map

= 0.1.8 = 
== New ==
 * content type support 
 * error correction information support
 * word prediction hint support
 * support for notifying inputmethodbase about widget visualization priority
 * support for enabling/disabling error correction in input context via dbus
 * Initial support for selective compositing. 

== Changed ==
 * preedit style depends on parameters of DuiInputContext::updatePreedit

= 0.1.6 =
== New ==
 * send preedit (also with attribute) on preeditinjection event

= 0.1.4 =
== New ==
 * Plugin framework now use settings for specifying driver location, activated plugins and blacklisted plugins
 * Input context supports plain Qt application
 * Input context supports focus out

== Changed ==
 * Passthrough server now receives all region updates from the plugins

= 0.1.3 : 2009.02.17 =
== Changed ==
 * Input method plugin is refactored
 * Package now contains the framework, Qt input context, and the UI server
