File scim-bridge-agent-add-frontend-mask.patch of Package scim-bridge

Index: scim-bridge-0.4.15/agent/scim-bridge-agent.cpp
===================================================================
--- scim-bridge-0.4.15.orig/agent/scim-bridge-agent.cpp
+++ scim-bridge-0.4.15/agent/scim-bridge-agent.cpp
@@ -144,6 +144,7 @@ class ScimBridgeAgentImpl: public ScimBr
         ScimBridgeAgentSignalListener *signal_listener;
 
         ScimBridgeDisplay *display;
+        int m_valid_key_mask;
 
         retval_t initialize_scim ();
         retval_t finalize_scim ();
@@ -523,6 +524,17 @@ void ScimBridgeAgentImpl::slot_reload_co
     scim_frontend_hotkey_matcher.load_hotkeys (scim_config);
     scim_imengine_hotkey_matcher.load_hotkeys (scim_config);
 
+    KeyEvent key;
+
+    scim_string_to_key (key,
+        config->read (String (SCIM_CONFIG_HOTKEYS_FRONTEND_VALID_KEY_MASK),
+                      String ("Shift+Control+Alt+Lock")));
+
+    m_valid_key_mask = (key.mask > 0) ? key.mask : 0xFFFF;
+    m_valid_key_mask |= SCIM_KEY_ReleaseMask;
+    // Special treatment for two backslash keys on jp106 keyboard.
+    m_valid_key_mask |= SCIM_KEY_QuirkKanaRoMask;
+
     ScimBridgeAgentIMContext::set_enabled_by_default (scim_config->read (String (SCIM_CONFIG_FRONTEND_IM_OPENED_BY_DEFAULT), ScimBridgeAgentIMContext::is_enabled_by_default ()));
     ScimBridgeAgentIMContext::set_imengine_shared (scim_config->read (String (SCIM_CONFIG_FRONTEND_SHARED_INPUT_METHOD), ScimBridgeAgentIMContext::is_imengine_shared ()));
     ScimBridgeAgentIMContext::set_on_the_spot_enabled (scim_config->read (String (SCIM_CONFIG_FRONTEND_ON_THE_SPOT), ScimBridgeAgentIMContext::is_on_the_spot_enabled ()));
@@ -680,6 +692,7 @@ bool ScimBridgeAgentImpl::filter_key_eve
     scim_bridge_pdebugln (5, "filter_key_event ()");
     
     KeyEvent new_key_event = key_event;
+    new_key_event.mask &= m_valid_key_mask;
     new_key_event.layout = scim_keyboard_layout;
 
     ScimBridgeAgentIMContext *imcontext = ScimBridgeAgentIMContext::find (imcontext_id);
openSUSE Build Service is sponsored by