riched20: Implement ITextServices_OnTxInPlaceActivate().

Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Huw Davies 2021-03-22 08:55:49 +00:00 committed by Alexandre Julliard
parent e5c289f29d
commit 14f4bd9697
3 changed files with 20 additions and 6 deletions

View File

@ -2936,6 +2936,7 @@ ME_TextEditor *ME_MakeEditor(ITextHost *texthost, BOOL bEmulateVersion10)
ed->texthost = texthost; ed->texthost = texthost;
ed->reOle = NULL; ed->reOle = NULL;
ed->bEmulateVersion10 = bEmulateVersion10; ed->bEmulateVersion10 = bEmulateVersion10;
ed->in_place_active = FALSE;
ed->total_rows = 0; ed->total_rows = 0;
ITextHost_TxGetPropertyBits( texthost, TXTBIT_RICHTEXT | TXTBIT_MULTILINE | TXTBIT_READONLY | ITextHost_TxGetPropertyBits( texthost, TXTBIT_RICHTEXT | TXTBIT_MULTILINE | TXTBIT_READONLY |
TXTBIT_USEPASSWORD | TXTBIT_HIDESELECTION | TXTBIT_SAVESELECTION | TXTBIT_USEPASSWORD | TXTBIT_HIDESELECTION | TXTBIT_SAVESELECTION |

View File

@ -380,7 +380,8 @@ typedef struct tagME_TextEditor
HWND hWnd, hwndParent; HWND hWnd, hwndParent;
ITextHost *texthost; ITextHost *texthost;
IUnknown *reOle; IUnknown *reOle;
BOOL bEmulateVersion10; unsigned int bEmulateVersion10 : 1;
unsigned int in_place_active : 1;
ME_TextBuffer *pBuffer; ME_TextBuffer *pBuffer;
ME_Cursor *pCursors; ME_Cursor *pCursors;
DWORD props; DWORD props;

View File

@ -233,12 +233,23 @@ static HRESULT update_client_rect( struct text_services *services, const RECT *c
} }
DEFINE_THISCALL_WRAPPER(fnTextSrv_OnTxInPlaceActivate,8) DEFINE_THISCALL_WRAPPER(fnTextSrv_OnTxInPlaceActivate,8)
DECLSPEC_HIDDEN HRESULT __thiscall fnTextSrv_OnTxInPlaceActivate(ITextServices *iface, LPCRECT prcClient) DECLSPEC_HIDDEN HRESULT __thiscall fnTextSrv_OnTxInPlaceActivate( ITextServices *iface, const RECT *client )
{ {
struct text_services *services = impl_from_ITextServices( iface ); struct text_services *services = impl_from_ITextServices( iface );
HRESULT hr;
BOOL old_active = services->editor->in_place_active;
FIXME( "%p: STUB\n", services ); TRACE( "%p: %s\n", services, wine_dbgstr_rect( client ) );
return E_NOTIMPL;
services->editor->in_place_active = TRUE;
hr = update_client_rect( services, client );
if (FAILED( hr ))
{
services->editor->in_place_active = old_active;
return hr;
}
ME_RewrapRepaint( services->editor );
return S_OK;
} }
DEFINE_THISCALL_WRAPPER(fnTextSrv_OnTxInPlaceDeactivate,4) DEFINE_THISCALL_WRAPPER(fnTextSrv_OnTxInPlaceDeactivate,4)
@ -246,8 +257,9 @@ DECLSPEC_HIDDEN HRESULT __thiscall fnTextSrv_OnTxInPlaceDeactivate(ITextServices
{ {
struct text_services *services = impl_from_ITextServices( iface ); struct text_services *services = impl_from_ITextServices( iface );
FIXME( "%p: STUB\n", services ); TRACE( "%p\n", services );
return E_NOTIMPL; services->editor->in_place_active = FALSE;
return S_OK;
} }
DEFINE_THISCALL_WRAPPER(fnTextSrv_OnTxUIActivate,4) DEFINE_THISCALL_WRAPPER(fnTextSrv_OnTxUIActivate,4)