bool
  VirtualKey::VK_JIS_TEMPORARY::handle_RESTORE(const Params_KeyboardEventCallBack& params)
  {
    if (params.key != KeyCode::VK_JIS_TEMPORARY_RESTORE) return false;

    if (params.ex_iskeydown) {
      if (savedinputsourcedetail_ != InputSourceDetail::NONE) {
        firekeytoinputdetail(params, savedinputsourcedetail_);
        savedinputsourcedetail_ = InputSourceDetail::NONE;
        currentinputsourcedetail_ = InputSourceDetail::NONE;
      }
    }

    return true;
  }
bool
Handle_VK_JIS_TEMPORARY::handle_RESTORE(const Params_KeyboardEventCallBack& params, const KeyRemap4MacBook_bridge::GetWorkspaceData::Reply& workspacedata)
{
    if (params.key != KeyCode::VK_JIS_TEMPORARY_RESTORE) return false;

    if (params.eventType == EventType::DOWN) {
        if (savedinputmodedetail_ != KeyRemap4MacBook_bridge::GetWorkspaceData::INPUTMODE_DETAIL_NONE) {
            firekeytoinputdetail(params, workspacedata, savedinputmodedetail_);
            savedinputmodedetail_ = KeyRemap4MacBook_bridge::GetWorkspaceData::INPUTMODE_DETAIL_NONE;
            currentinputmodedetail_ = KeyRemap4MacBook_bridge::GetWorkspaceData::INPUTMODE_DETAIL_NONE;
        }
    }

    return true;
}
  bool
  VirtualKey::VK_JIS_TEMPORARY::handle_core(const Params_KeyboardEventCallBack& params,
                                            KeyCode key,
                                            InputSourceDetail inputsourcedetail)
  {
    if (params.key != key) return false;

    if (params.ex_iskeydown) {
      if (savedinputsourcedetail_ == InputSourceDetail::NONE) {
        savedinputsourcedetail_ = CommonData::getcurrent_workspacedata().inputsourcedetail;
        currentinputsourcedetail_ = CommonData::getcurrent_workspacedata().inputsourcedetail;
      }
      firekeytoinputdetail(params, inputsourcedetail);
    }

    return true;
  }
// ----------------------------------------------------------------------
bool
Handle_VK_JIS_TEMPORARY::handle(const Params_KeyboardEventCallBack& params, const KeyRemap4MacBook_bridge::GetWorkspaceData::Reply& workspacedata,
                                KeyCode key,
                                const KeyRemap4MacBook_bridge::GetWorkspaceData::InputModeDetail& inputmodedetail)
{
    if (params.key != key) return false;

    if (params.eventType == EventType::DOWN) {
        if (savedinputmodedetail_ == KeyRemap4MacBook_bridge::GetWorkspaceData::INPUTMODE_DETAIL_NONE) {
            savedinputmodedetail_ = workspacedata.inputmodedetail;
            currentinputmodedetail_ = workspacedata.inputmodedetail;
        }
        firekeytoinputdetail(params, workspacedata, inputmodedetail);
    }

    return true;
}