Separate process_key_event_with_keycode from process_key_event to prevent build error 22/201622/3
authorInhong Han <inhong1.han@samsung.com>
Mon, 18 Mar 2019 08:07:56 +0000 (17:07 +0900)
committerInhong Han <inhong1.han@samsung.com>
Mon, 18 Mar 2019 08:42:35 +0000 (17:42 +0900)
Change-Id: I228a3a8193dcc5340f57e09deb9715afcd0e0e00

ism/src/scim_helper.cpp
ism/src/scim_helper.h

index 6b45b65..220a74d 100644 (file)
@@ -130,9 +130,12 @@ typedef Signal2<void, const HelperAgent *, const std::vector<uint32> &>
 typedef Signal2<void, const HelperAgent *, LookupTable &>
         HelperAgentSignalLookupTable;
 
-typedef Signal4<void, const HelperAgent *, KeyEvent &, uint32 &, uint32>
+typedef Signal3<void, const HelperAgent *, KeyEvent &, uint32 &>
         HelperAgentSignalKeyEventUint;
 
+typedef Signal4<void, const HelperAgent *, KeyEvent &, uint32 &, uint32>
+        HelperAgentSignalKeyEventUintUint;
+
 typedef Signal5<void, const HelperAgent *, uint32 &, char *, size_t &, uint32 &>
         HelperAgentSignalUintCharSizeUint;
 
@@ -221,6 +224,7 @@ public:
     HelperAgentSignalInt                signal_update_displayed_candidate_number;
     HelperAgentSignalInt                signal_longpress_candidate;
     HelperAgentSignalKeyEventUint       signal_process_key_event;
+    HelperAgentSignalKeyEventUintUint   signal_process_key_event_with_keycode;
     HelperAgentSignalUintVoid           signal_set_input_mode;
     HelperAgentSignalUintVoid           signal_set_input_hint;
     HelperAgentSignalUintVoid           signal_update_bidi_direction;
@@ -1159,8 +1163,10 @@ HelperAgent::handle_message (MessageItem *message)
         {
             MessageItemProcessKeyEvent *subclass = static_cast<MessageItemProcessKeyEvent*>(message);
             uint32 ret = 0;
-            m_impl->signal_process_key_event(this, subclass->get_key_ref(), ret, subclass->get_keycode_ref());
-            if (ret == 0) {
+            uint32 keycode_ret = 0;
+            m_impl->signal_process_key_event(this, subclass->get_key_ref(), ret);
+            m_impl->signal_process_key_event_with_keycode(this, subclass->get_key_ref(), keycode_ret, subclass->get_keycode_ref());
+            if (ret == 0 && keycode_ret == 0) {
                 if (!m_impl->si.null ()) {
                     if (!(subclass->get_key_ref().get_key_string().compare("KeyRelease+XF86Back") == 0 ||
                           subclass->get_key_ref().get_key_string().compare("XF86Back") == 0)) {
@@ -3051,7 +3057,7 @@ HelperAgent::signal_connect_set_return_key_disable (HelperAgentSlotUintVoid *slo
  * This signal is used to send keyboard key event to Helper ISE.
  *
  * The prototype of the slot is:
- * void process_key_event (const HelperAgent *agent, KeyEvent &key, uint32 &ret, uint32 keycode);
+ * void process_key_event (const HelperAgent *agent, KeyEvent &key, uint32 &ret);
  */
 Connection
 HelperAgent::signal_connect_process_key_event (HelperAgentSlotKeyEventUint *slot)
@@ -3060,6 +3066,20 @@ HelperAgent::signal_connect_process_key_event (HelperAgentSlotKeyEventUint *slot
 }
 
 /**
+ * @brief Connect a slot to Helper process key event with keycode signal.
+ *
+ * This signal is used to send keyboard key event with keycode to Helper ISE.
+ *
+ * The prototype of the slot is:
+ * void process_key_event_with_keycode (const HelperAgent *agent, KeyEvent &key, uint32 &ret, uint32 keycode);
+ */
+Connection
+HelperAgent::signal_connect_process_key_event_with_keycode (HelperAgentSlotKeyEventUintUint *slot)
+{
+    return m_impl->signal_process_key_event_with_keycode.connect (slot);
+}
+
+/**
  * @brief Connect a slot to Helper get return key disable signal.
  *
  * This signal is used to get return key disable from Helper ISE.
index 24bb9a0..2dc0ba0 100644 (file)
@@ -210,8 +210,10 @@ typedef Slot2<void, const HelperAgent *, const std::vector<uint32> &>
 
 typedef Slot2<void, const HelperAgent *, LookupTable &>
         HelperAgentSlotLookupTable;
-typedef Slot4<void, const HelperAgent *, KeyEvent &, uint32 &, uint32>
+typedef Slot3<void, const HelperAgent *, KeyEvent &, uint32 &>
         HelperAgentSlotKeyEventUint;
+typedef Slot4<void, const HelperAgent *, KeyEvent &, uint32 &, uint32>
+        HelperAgentSlotKeyEventUintUint;
 
 typedef Slot5<void, const HelperAgent *, uint32 &, char *, size_t &, uint32 &>
         HelperAgentSlotUintCharSizeUint;
@@ -1307,11 +1309,19 @@ public:
      * @brief Connect a slot to Helper process key event signal.
      *
      * The prototype of the slot is:
-     * void process_key_event (const HelperAgent *, KeyEvent &key, uint32 &ret, uint32 keycode);
+     * void process_key_event (const HelperAgent *, KeyEvent &key, uint32 &ret);
      */
     Connection signal_connect_process_key_event (HelperAgentSlotKeyEventUint *slot);
 
     /**
+     * @brief Connect a slot to Helper process key event with keycode signal.
+     *
+     * The prototype of the slot is:
+     * void process_key_event_with_keycode (const HelperAgent *, KeyEvent &key, uint32 &ret, uint32 keycode);
+     */
+    Connection signal_connect_process_key_event_with_keycode (HelperAgentSlotKeyEventUintUint *slot);
+
+    /**
      * @brief Connect a slot to Helper set input mode signal.
      *
      * This signal is used to set Helper ISE input mode.