fix: restore linux mingw client build and gm smoke
This commit is contained in:
@@ -1,5 +1,11 @@
|
||||
file(GLOB_RECURSE FILE_SOURCES "*.h" "*.c" "*.cpp")
|
||||
|
||||
foreach(_source IN LISTS FILE_SOURCES)
|
||||
if(IS_SYMLINK "${_source}")
|
||||
list(REMOVE_ITEM FILE_SOURCES "${_source}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
add_library(EterLib STATIC ${FILE_SOURCES})
|
||||
|
||||
target_link_libraries(EterLib
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
#include "msctf.h"
|
||||
#include <oleauto.h>
|
||||
#include <algorithm>
|
||||
#include <cstdint>
|
||||
#include <utf8.h>
|
||||
|
||||
#define COUNTOF(a) ( sizeof( a ) / sizeof( ( a )[0] ) )
|
||||
@@ -66,6 +67,12 @@ enum { IMEUI_STATE_OFF, IMEUI_STATE_ON, IMEUI_STATE_ENGLISH };
|
||||
|
||||
#define LCID_INVARIANT MAKELCID(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), SORT_DEFAULT)
|
||||
|
||||
#if defined(__MINGW32__) && !defined(__ITfReadingInformationUIElement_INTERFACE_DEFINED__)
|
||||
#define M2_HAS_TSF_UIELEMENT_EXT 0
|
||||
#else
|
||||
#define M2_HAS_TSF_UIELEMENT_EXT 1
|
||||
#endif
|
||||
|
||||
wchar_t s_aszIndicator[5][3] =
|
||||
{
|
||||
L"En",
|
||||
@@ -179,8 +186,10 @@ protected:
|
||||
LONG _cRef;
|
||||
};
|
||||
|
||||
#if M2_HAS_TSF_UIELEMENT_EXT
|
||||
static void MakeReadingInformationString(ITfReadingInformationUIElement* preading);
|
||||
static void MakeCandidateStrings(ITfCandidateListUIElement* pcandidate);
|
||||
#endif
|
||||
static ITfUIElement* GetUIElement(DWORD dwUIElementId);
|
||||
static BOOL GetCompartments( ITfCompartmentMgr** ppcm, ITfCompartment** ppTfOpenMode, ITfCompartment** ppTfConvMode );
|
||||
static BOOL SetupCompartmentSinks( BOOL bResetOnly = FALSE, ITfCompartment* pTfOpenMode = NULL, ITfCompartment* ppTfConvMode = NULL );
|
||||
@@ -1475,7 +1484,7 @@ DWORD CIME::GetImeId( UINT uIndex )
|
||||
return ms_adwId[uIndex];
|
||||
hklPrev = hkl;
|
||||
|
||||
DWORD dwLang = ((DWORD)hkl & 0xffff);
|
||||
DWORD dwLang = (static_cast<DWORD>(reinterpret_cast<ULONG_PTR>(hkl)) & 0xffff);
|
||||
|
||||
if ( ms_bUILessMode && GETLANG() == LANG_CHT ) {
|
||||
// In case of Vista, artifitial value is returned so that it's not considered as older IME.
|
||||
@@ -1734,7 +1743,7 @@ void CIME::CheckToggleState()
|
||||
|
||||
/* Check Toggle State */
|
||||
bool bIme = ImmIsIME( ms_hklCurrent ) != 0
|
||||
&& ( ( 0xF0000000 & (DWORD)ms_hklCurrent ) == 0xE0000000 ); // Hack to detect IME correctly. When IME is running as TIP, ImmIsIME() returns true for CHT US keyboard.
|
||||
&& ((0xF0000000u & static_cast<DWORD>(reinterpret_cast<ULONG_PTR>(ms_hklCurrent))) == 0xE0000000u); // Hack to detect IME correctly. When IME is running as TIP, ImmIsIME() returns true for CHT US keyboard.
|
||||
ms_bChineseIME = ( GETPRIMLANG() == LANG_CHINESE ) && bIme;
|
||||
|
||||
HIMC himc;
|
||||
@@ -1897,6 +1906,7 @@ STDAPI CTsfUiLessMode::CUIElementSink::BeginUIElement(DWORD dwUIElementId, BOOL
|
||||
if (!pElement)
|
||||
return E_INVALIDARG;
|
||||
|
||||
#if M2_HAS_TSF_UIELEMENT_EXT
|
||||
ITfReadingInformationUIElement *preading = NULL;
|
||||
ITfCandidateListUIElement *pcandidate = NULL;
|
||||
*pbShow = FALSE;
|
||||
@@ -1922,6 +1932,9 @@ STDAPI CTsfUiLessMode::CUIElementSink::BeginUIElement(DWORD dwUIElementId, BOOL
|
||||
CIME::ms_pEvent->OnOpenCandidateList();
|
||||
pcandidate->Release();
|
||||
}
|
||||
#else
|
||||
*pbShow = FALSE;
|
||||
#endif
|
||||
|
||||
pElement->Release();
|
||||
return S_OK;
|
||||
@@ -1933,6 +1946,7 @@ STDAPI CTsfUiLessMode::CUIElementSink::UpdateUIElement(DWORD dwUIElementId)
|
||||
if (!pElement)
|
||||
return E_INVALIDARG;
|
||||
|
||||
#if M2_HAS_TSF_UIELEMENT_EXT
|
||||
ITfReadingInformationUIElement *preading = NULL;
|
||||
ITfCandidateListUIElement *pcandidate = NULL;
|
||||
|
||||
@@ -1956,6 +1970,7 @@ STDAPI CTsfUiLessMode::CUIElementSink::UpdateUIElement(DWORD dwUIElementId)
|
||||
CIME::ms_pEvent->OnOpenCandidateList();
|
||||
pcandidate->Release();
|
||||
}
|
||||
#endif
|
||||
|
||||
pElement->Release();
|
||||
return S_OK;
|
||||
@@ -1973,6 +1988,7 @@ STDAPI CTsfUiLessMode::CUIElementSink::EndUIElement(DWORD dwUIElementId)
|
||||
//OutputDebugStringW(bstrDesc);
|
||||
//OutputDebugStringW(L"\n");
|
||||
|
||||
#if M2_HAS_TSF_UIELEMENT_EXT
|
||||
ITfReadingInformationUIElement *preading = NULL;
|
||||
if (SUCCEEDED(pElement->QueryInterface(__uuidof(ITfReadingInformationUIElement), (void **)&preading)))
|
||||
{
|
||||
@@ -1988,6 +2004,7 @@ STDAPI CTsfUiLessMode::CUIElementSink::EndUIElement(DWORD dwUIElementId)
|
||||
CIME::CloseCandidateList();
|
||||
pcandidate->Release();
|
||||
}
|
||||
#endif
|
||||
|
||||
pElement->Release();
|
||||
return S_OK;
|
||||
@@ -1995,6 +2012,11 @@ STDAPI CTsfUiLessMode::CUIElementSink::EndUIElement(DWORD dwUIElementId)
|
||||
|
||||
void CTsfUiLessMode::UpdateImeState(BOOL bResetCompartmentEventSink)
|
||||
{
|
||||
#if defined(__MINGW32__)
|
||||
(void)bResetCompartmentEventSink;
|
||||
CIME::ms_dwImeState = CIME::ms_bChineseIME ? IMEUI_STATE_ENGLISH : IMEUI_STATE_OFF;
|
||||
return;
|
||||
#else
|
||||
ITfCompartmentMgr* pcm;
|
||||
ITfCompartment* pTfOpenMode = NULL;
|
||||
ITfCompartment* pTfConvMode = NULL;
|
||||
@@ -2026,6 +2048,7 @@ void CTsfUiLessMode::UpdateImeState(BOOL bResetCompartmentEventSink)
|
||||
pTfConvMode->Release();
|
||||
pcm->Release();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
STDAPI CTsfUiLessMode::CUIElementSink::OnActivated(DWORD dwProfileType, LANGID langid, REFCLSID clsid, REFGUID catid,
|
||||
@@ -2053,6 +2076,7 @@ STDAPI CTsfUiLessMode::CUIElementSink::OnChange(REFGUID rguid)
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
#if M2_HAS_TSF_UIELEMENT_EXT
|
||||
void CTsfUiLessMode::MakeReadingInformationString(ITfReadingInformationUIElement* preading)
|
||||
{
|
||||
UINT cchMax;
|
||||
@@ -2164,6 +2188,7 @@ void CTsfUiLessMode::MakeCandidateStrings(ITfCandidateListUIElement* pcandidate)
|
||||
free(IndexList);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
ITfUIElement* CTsfUiLessMode::GetUIElement(DWORD dwUIElementId)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user