mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-09-13 09:17:20 -07:00
Added patch for partial implementation of ITfThreadMgrEx_ActivateEx.
This commit is contained in:
parent
e5bff1feaf
commit
5da8bc54a5
@ -34,8 +34,9 @@ Wine. All those differences are also documented on the
|
||||
Included bug fixes and improvements
|
||||
-----------------------------------
|
||||
|
||||
**Bug fixes and features included in the next upcoming release [2]:**
|
||||
**Bug fixes and features included in the next upcoming release [3]:**
|
||||
|
||||
* Add partial implementation of ITfThreadMgrEx_ActivateEx ([Wine Bug #39564](https://bugs.winehq.org/show_bug.cgi?id=39564))
|
||||
* Implement support for "Purist Mode" (override for all dlls)
|
||||
* Revert patch to prepare GL resources before calling context_apply_fbo_state ([Wine Bug #39536](https://bugs.winehq.org/show_bug.cgi?id=39536))
|
||||
|
||||
|
1
debian/changelog
vendored
1
debian/changelog
vendored
@ -2,6 +2,7 @@ wine-staging (1.7.55) UNRELEASED; urgency=low
|
||||
* Added patch to revert "Prepare GL resources before calling
|
||||
context_apply_fbo_state".
|
||||
* Added patch to implement support for "Purist Mode" (override for all dlls).
|
||||
* Added patch for partial implementation of ITfThreadMgrEx_ActivateEx.
|
||||
* Remove disabled shell32-Quoted_ShellExecute patchset (bug already fixed and
|
||||
all tests pass).
|
||||
* Remove disabled reg-Cleanup patchset (only cleanup and not actively
|
||||
|
@ -0,0 +1,126 @@
|
||||
From c215f96c76ba4352e79bde6b4422d46ead6b5a85 Mon Sep 17 00:00:00 2001
|
||||
From: Matteo Bruni <mbruni@codeweavers.com>
|
||||
Date: Fri, 13 Nov 2015 00:33:37 +0100
|
||||
Subject: msctf: Add a partial implementation of ITfThreadMgrEx_ActivateEx().
|
||||
|
||||
---
|
||||
dlls/msctf/tests/inputprocessor.c | 16 +++++++++++--
|
||||
dlls/msctf/threadmgr.c | 47 +++++++++++++++++++++------------------
|
||||
2 files changed, 39 insertions(+), 24 deletions(-)
|
||||
|
||||
diff --git a/dlls/msctf/tests/inputprocessor.c b/dlls/msctf/tests/inputprocessor.c
|
||||
index c01d5bc..58d4d26 100644
|
||||
--- a/dlls/msctf/tests/inputprocessor.c
|
||||
+++ b/dlls/msctf/tests/inputprocessor.c
|
||||
@@ -1409,6 +1409,7 @@ static void test_startSession(void)
|
||||
ITfContext *cxt,*cxt2,*cxt3,*cxtTest;
|
||||
ITextStoreACP *ts;
|
||||
TfClientId cid2 = 0;
|
||||
+ ITfThreadMgrEx *tmex;
|
||||
|
||||
hr = ITfThreadMgr_Deactivate(g_tm);
|
||||
ok(hr == E_UNEXPECTED,"Deactivate should have failed with E_UNEXPECTED\n");
|
||||
@@ -1421,10 +1422,21 @@ static void test_startSession(void)
|
||||
test_ShouldActivate = FALSE;
|
||||
hr = ITfThreadMgr_Activate(g_tm,&cid2);
|
||||
ok(SUCCEEDED(hr),"Failed to Activate\n");
|
||||
- ok (cid == cid2, "Second activate client ID does not match\n");
|
||||
+ ok(cid == cid2, "Second activate client ID does not match\n");
|
||||
+
|
||||
+ hr = ITfThreadMgr_QueryInterface(g_tm, &IID_ITfThreadMgrEx, (void **)&tmex);
|
||||
+ ok(SUCCEEDED(hr), "Unable to acquire ITfThreadMgrEx interface\n");
|
||||
+
|
||||
+ hr = ITfThreadMgrEx_ActivateEx(tmex, &cid2, 0);
|
||||
+ ok(SUCCEEDED(hr), "Failed to Activate\n");
|
||||
+ ok(cid == cid2, "ActivateEx client ID does not match\n");
|
||||
+
|
||||
+ ITfThreadMgrEx_Release(tmex);
|
||||
|
||||
hr = ITfThreadMgr_Deactivate(g_tm);
|
||||
- ok(SUCCEEDED(hr),"Failed to Deactivate\n");
|
||||
+ ok(SUCCEEDED(hr), "Failed to Deactivate\n");
|
||||
+ hr = ITfThreadMgr_Deactivate(g_tm);
|
||||
+ ok(SUCCEEDED(hr), "Failed to Deactivate\n");
|
||||
|
||||
test_EnumDocumentMgr(g_tm,NULL,NULL);
|
||||
|
||||
diff --git a/dlls/msctf/threadmgr.c b/dlls/msctf/threadmgr.c
|
||||
index d997cda..91deb8d 100644
|
||||
--- a/dlls/msctf/threadmgr.c
|
||||
+++ b/dlls/msctf/threadmgr.c
|
||||
@@ -327,29 +327,15 @@ static ULONG WINAPI ThreadMgr_Release(ITfThreadMgrEx *iface)
|
||||
* ITfThreadMgr functions
|
||||
*****************************************************/
|
||||
|
||||
-static HRESULT WINAPI ThreadMgr_fnActivate(ITfThreadMgrEx *iface, TfClientId *ptid)
|
||||
+static HRESULT WINAPI ThreadMgr_Activate(ITfThreadMgrEx *iface, TfClientId *id)
|
||||
{
|
||||
ThreadMgr *This = impl_from_ITfThreadMgrEx(iface);
|
||||
|
||||
- TRACE("(%p) %p\n",This, ptid);
|
||||
-
|
||||
- if (!ptid)
|
||||
- return E_INVALIDARG;
|
||||
-
|
||||
- if (!processId)
|
||||
- {
|
||||
- GUID guid;
|
||||
- CoCreateGuid(&guid);
|
||||
- ITfClientId_GetClientId(&This->ITfClientId_iface, &guid, &processId);
|
||||
- }
|
||||
-
|
||||
- activate_textservices((ITfThreadMgr *)iface);
|
||||
- This->activationCount++;
|
||||
- *ptid = processId;
|
||||
- return S_OK;
|
||||
+ TRACE("(%p) %p\n", This, id);
|
||||
+ return ITfThreadMgrEx_ActivateEx(iface, id, 0);
|
||||
}
|
||||
|
||||
-static HRESULT WINAPI ThreadMgr_fnDeactivate(ITfThreadMgrEx *iface)
|
||||
+static HRESULT WINAPI ThreadMgr_Deactivate(ITfThreadMgrEx *iface)
|
||||
{
|
||||
ThreadMgr *This = impl_from_ITfThreadMgrEx(iface);
|
||||
TRACE("(%p)\n",This);
|
||||
@@ -597,8 +583,25 @@ static HRESULT WINAPI ThreadMgr_ActivateEx(ITfThreadMgrEx *iface, TfClientId *id
|
||||
{
|
||||
ThreadMgr *This = impl_from_ITfThreadMgrEx(iface);
|
||||
|
||||
- FIXME("STUB:(%p)\n", This);
|
||||
- return E_NOTIMPL;
|
||||
+ TRACE("(%p) %p, %#x\n", This, id, flags);
|
||||
+
|
||||
+ if (!id)
|
||||
+ return E_INVALIDARG;
|
||||
+
|
||||
+ if (flags)
|
||||
+ FIXME("Unimplemented flags %#x\n", flags);
|
||||
+
|
||||
+ if (!processId)
|
||||
+ {
|
||||
+ GUID guid;
|
||||
+ CoCreateGuid(&guid);
|
||||
+ ITfClientId_GetClientId(&This->ITfClientId_iface, &guid, &processId);
|
||||
+ }
|
||||
+
|
||||
+ activate_textservices((ITfThreadMgr *)iface);
|
||||
+ This->activationCount++;
|
||||
+ *id = processId;
|
||||
+ return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI ThreadMgr_GetActiveFlags(ITfThreadMgrEx *iface, DWORD *flags)
|
||||
@@ -614,8 +617,8 @@ static const ITfThreadMgrExVtbl ThreadMgrExVtbl =
|
||||
ThreadMgr_QueryInterface,
|
||||
ThreadMgr_AddRef,
|
||||
ThreadMgr_Release,
|
||||
- ThreadMgr_fnActivate,
|
||||
- ThreadMgr_fnDeactivate,
|
||||
+ ThreadMgr_Activate,
|
||||
+ ThreadMgr_Deactivate,
|
||||
ThreadMgr_CreateDocumentMgr,
|
||||
ThreadMgr_EnumDocumentMgrs,
|
||||
ThreadMgr_GetFocus,
|
||||
--
|
||||
2.6.2
|
||||
|
1
patches/msctf-ITfThreadMgrEx_ActivateEx/definition
Normal file
1
patches/msctf-ITfThreadMgrEx_ActivateEx/definition
Normal file
@ -0,0 +1 @@
|
||||
Fixes: [39564] Add partial implementation of ITfThreadMgrEx_ActivateEx
|
@ -169,6 +169,7 @@ patch_enable_all ()
|
||||
enable_mountmgr_DosDevices="$1"
|
||||
enable_mpr_WNetGetUniversalNameW="$1"
|
||||
enable_mscoree_CorValidateImage="$1"
|
||||
enable_msctf_ITfThreadMgrEx_ActivateEx="$1"
|
||||
enable_mshtml_HTMLLocation_put_hash="$1"
|
||||
enable_msidb_Implementation="$1"
|
||||
enable_msvcp90_basic_string_dtor="$1"
|
||||
@ -605,6 +606,9 @@ patch_enable ()
|
||||
mscoree-CorValidateImage)
|
||||
enable_mscoree_CorValidateImage="$2"
|
||||
;;
|
||||
msctf-ITfThreadMgrEx_ActivateEx)
|
||||
enable_msctf_ITfThreadMgrEx_ActivateEx="$2"
|
||||
;;
|
||||
mshtml-HTMLLocation_put_hash)
|
||||
enable_mshtml_HTMLLocation_put_hash="$2"
|
||||
;;
|
||||
@ -3685,6 +3689,21 @@ if test "$enable_mscoree_CorValidateImage" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset msctf-ITfThreadMgrEx_ActivateEx
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#39564] Add partial implementation of ITfThreadMgrEx_ActivateEx
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/msctf/tests/inputprocessor.c, dlls/msctf/threadmgr.c
|
||||
# |
|
||||
if test "$enable_msctf_ITfThreadMgrEx_ActivateEx" -eq 1; then
|
||||
patch_apply msctf-ITfThreadMgrEx_ActivateEx/0001-msctf-Add-a-partial-implementation-of-ITfThreadMgrEx.patch
|
||||
(
|
||||
echo '+ { "Matteo Bruni", "msctf: Add a partial implementation of ITfThreadMgrEx_ActivateEx().", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset mshtml-HTMLLocation_put_hash
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
|
Loading…
Reference in New Issue
Block a user