Commit c5f271b4 authored by cutealien's avatar cutealien

Improved i18n key input for X11. Which means languages like cyrillic work now.

Japanese not yet, but we're even a little closer to that now.
Dead-key handling is not working. I just can't figure it out (X11 documentation and examples make me swear badly).
Users which have language input with dead-keys (like ^) will now have those characters always ignored.
Before it had just printed the characters but set a complete wrong key-code. So dead keys partly better, partly worse.
But this solution is going in the right direction. Either we figure out later why X11 doesn't handle dead-keys or we handle them ourselves.


git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@4743 dfc29bdd-3216-0410-991c-e03cc46cb475
parent 13b42f65
-------------------------- --------------------------
Changes in 1.9 (not yet released) Changes in 1.9 (not yet released)
- Improved i18n key input for X11 (languages like cyrillic work now).
- Fix bug that ListBox would not allow to 'tab' to the next element (thx @ FlavourBoat for reporting) - Fix bug that ListBox would not allow to 'tab' to the next element (thx @ FlavourBoat for reporting)
- IGUIEnvironment::getNextElement now public (was only in CGUIEnvironment before). - IGUIEnvironment::getNextElement now public (was only in CGUIEnvironment before).
- Add an overwrite mode to editbox. Patch provided by Adam(aka kingadami). - Add an overwrite mode to editbox. Patch provided by Adam(aka kingadami).
...@@ -12,7 +13,7 @@ Changes in 1.9 (not yet released) ...@@ -12,7 +13,7 @@ Changes in 1.9 (not yet released)
- Fix c::b project obj folder names. Some static builds had used the shared folders (thx @ gerdb for reporting) - Fix c::b project obj folder names. Some static builds had used the shared folders (thx @ gerdb for reporting)
- Add ITexture::getSource which can be used to check where the last IVideoDriver::getTexture call found the texture. - Add ITexture::getSource which can be used to check where the last IVideoDriver::getTexture call found the texture.
- Add IMeshTextureLoader interface and replace texture-loading algorithms in most meshloaders. - Add IMeshTextureLoader interface and replace texture-loading algorithms in most meshloaders.
- CGUICheckBox no longer gives up focus on EMIE_LMOUSE_LEFT_UP (thx @Demre for reporting) - CGUICheckBox no longer gives up focus on EMIE_LMOUSE_LEFT_UP (thx @Demre and @REDDemon for reporting)
- Bugfix: IGUIElement::addChild now prevents setting an element as it's own child. - Bugfix: IGUIElement::addChild now prevents setting an element as it's own child.
- GUI editor improvements (prevent crash, improve UI) - GUI editor improvements (prevent crash, improve UI)
- Add IrrlichtDevice::setWindowSize. - Add IrrlichtDevice::setWindowSize.
......
...@@ -315,7 +315,7 @@ struct SEvent ...@@ -315,7 +315,7 @@ struct SEvent
//! Any kind of keyboard event. //! Any kind of keyboard event.
struct SKeyInput struct SKeyInput
{ {
//! Character corresponding to the key (0, if not a character) //! Character corresponding to the key (0, if not a character, value undefined in key releases)
wchar_t Char; wchar_t Char;
//! Key which has been pressed or released //! Key which has been pressed or released
......
This diff is collapsed.
...@@ -156,6 +156,12 @@ namespace irr ...@@ -156,6 +156,12 @@ namespace irr
void initXAtoms(); void initXAtoms();
bool switchToFullscreen(bool reset=false); bool switchToFullscreen(bool reset=false);
#ifdef _IRR_COMPILE_WITH_X11_
bool createInputContext();
void destroyInputContext();
EKEY_CODE getKeyCode(XEvent &event);
#endif
//! Implementation of the linux cursor control //! Implementation of the linux cursor control
class CCursorControl : public gui::ICursorControl class CCursorControl : public gui::ICursorControl
...@@ -394,6 +400,8 @@ namespace irr ...@@ -394,6 +400,8 @@ namespace irr
XSetWindowAttributes attributes; XSetWindowAttributes attributes;
XSizeHints* StdHints; XSizeHints* StdHints;
XImage* SoftwareImage; XImage* SoftwareImage;
XIM XInputMethod;
XIC XInputContext;
mutable core::stringc Clipboard; mutable core::stringc Clipboard;
#ifdef _IRR_LINUX_X11_VIDMODE_ #ifdef _IRR_LINUX_X11_VIDMODE_
XF86VidModeModeInfo oldVideoMode; XF86VidModeModeInfo oldVideoMode;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment