Index: ibus-m17n-1.3.4/src/default.xml =================================================================== --- ibus-m17n-1.3.4.orig/src/default.xml +++ ibus-m17n-1.3.4/src/default.xml @@ -184,6 +184,15 @@ m17n:si:samanala 0 + + + m17n:*:inscript* + default[lv3:ralt_switch] + + + m17n:si:* + default[lv3:ralt_switch] + m17n:zh:cangjie Index: ibus-m17n-1.3.4/src/m17nutil.c =================================================================== --- ibus-m17n-1.3.4.orig/src/m17nutil.c +++ ibus-m17n-1.3.4/src/m17nutil.c @@ -17,7 +17,8 @@ typedef enum { ENGINE_CONFIG_RANK_MASK = 1 << 0, ENGINE_CONFIG_SYMBOL_MASK = 1 << 1, ENGINE_CONFIG_LONGNAME_MASK = 1 << 2, - ENGINE_CONFIG_PREEDIT_HIGHLIGHT_MASK = 1 << 3 + ENGINE_CONFIG_LAYOUT_MASK = 1 << 3, + ENGINE_CONFIG_PREEDIT_HIGHLIGHT_MASK = 1 << 4 } EngineConfigMask; struct _EngineConfigNode { @@ -137,7 +138,7 @@ ibus_m17n_engine_new (MSymbol lang, "language", msymbol_name (lang), "license", "GPL", "icon", engine_icon ? engine_icon : "", - "layout", "default", + "layout", config->layout ? config->layout : "default", "rank", config->rank, "symbol", config->symbol ? config->symbol : "", "setup", engine_setup, @@ -272,6 +273,8 @@ ibus_m17n_get_engine_config (const gchar config->symbol = cnode->config.symbol; if (cnode->mask & ENGINE_CONFIG_LONGNAME_MASK) config->longname = cnode->config.longname; + if (cnode->mask & ENGINE_CONFIG_LAYOUT_MASK) + config->layout = cnode->config.layout; if (cnode->mask & ENGINE_CONFIG_PREEDIT_HIGHLIGHT_MASK) config->preedit_highlight = cnode->config.preedit_highlight; } @@ -314,6 +317,12 @@ ibus_m17n_engine_config_parse_xml_node ( cnode->mask |= ENGINE_CONFIG_LONGNAME_MASK; continue; } + if (g_strcmp0 (sub_node->name , "layout") == 0) { + g_free (cnode->config.layout); + cnode->config.layout = g_strdup (sub_node->text); + cnode->mask |= ENGINE_CONFIG_LAYOUT_MASK; + continue; + } if (g_strcmp0 (sub_node->name , "preedit-highlight") == 0) { if (g_ascii_strcasecmp ("TRUE", sub_node->text) == 0) cnode->config.preedit_highlight = TRUE; Index: ibus-m17n-1.3.4/src/m17nutil.h =================================================================== --- ibus-m17n-1.3.4.orig/src/m17nutil.h +++ ibus-m17n-1.3.4/src/m17nutil.h @@ -20,6 +20,9 @@ struct _IBusM17NEngineConfig { /* overridding longname shown on panel */ gchar *longname; + /* keyboard layout */ + gchar *layout; + /* whether to highlight preedit */ gboolean preedit_highlight; };