diff options
author | Stephan Schäfer <ssa@openoffice.org> | 2001-06-27 07:25:19 +0000 |
---|---|---|
committer | Stephan Schäfer <ssa@openoffice.org> | 2001-06-27 07:25:19 +0000 |
commit | b7458991e1581f835182780ef814c098a731d165 (patch) | |
tree | 1ef6c0293669074a8943c52690bf5a13161ffe0f /vcl | |
parent | 9b84cd962f6635c211116d4082f3f48775f4e5cd (diff) |
#86010# transmit cursor rect for CJK input
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/source/window/cursor.cxx | 14 | ||||
-rw-r--r-- | vcl/source/window/window.cxx | 8 | ||||
-rw-r--r-- | vcl/source/window/winproc.cxx | 30 |
3 files changed, 45 insertions, 7 deletions
diff --git a/vcl/source/window/cursor.cxx b/vcl/source/window/cursor.cxx index ec2bb1c80506..29d064b86c91 100644 --- a/vcl/source/window/cursor.cxx +++ b/vcl/source/window/cursor.cxx @@ -2,9 +2,9 @@ * * $RCSfile: cursor.cxx,v $ * - * $Revision: 1.1.1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: hr $ $Date: 2000-09-18 17:05:40 $ + * last change: $Author: ssa $ $Date: 2001-06-27 08:25:19 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -79,7 +79,11 @@ #ifndef _SV_CURSOR_HXX #include <cursor.hxx> #endif - +#ifdef REMOTE_APPSERVER +#ifndef _SV_WINDATA_HXX +#include <windata.hxx> +#endif +#endif #pragma hdrstop // ======================================================================= @@ -158,6 +162,10 @@ void Cursor::ImplDraw() // Ausgabeflaeche berechnen und ausgeben ImplCursorInvert( mpData ); mpData->mbCurVisible = TRUE; +#ifdef REMOTE_APPSERVER + // update remote cursor pos + ImplUpdateCursorRect( pWindow ); +#endif } } diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx index 5d5fdcb700af..822fc0282fb7 100644 --- a/vcl/source/window/window.cxx +++ b/vcl/source/window/window.cxx @@ -2,9 +2,9 @@ * * $RCSfile: window.cxx,v $ * - * $Revision: 1.24 $ + * $Revision: 1.25 $ * - * last change: $Author: ssa $ $Date: 2001-06-22 14:14:52 $ + * last change: $Author: ssa $ $Date: 2001-06-27 08:25:19 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -4914,6 +4914,7 @@ void Window::SetCursorRect( const Rectangle* pRect, long nExtTextInputWidth ) { DBG_CHKTHIS( Window, ImplDbgCheckWindow ); +#ifndef REMOTE_APPSERVER ImplWinData* pWinData = ImplGetWinData(); if ( pWinData->mpCursorRect ) { @@ -4932,6 +4933,9 @@ void Window::SetCursorRect( const Rectangle* pRect, long nExtTextInputWidth ) } pWinData->mnCursorExtWidth = nExtTextInputWidth; +#else + ImplGetFrame()->SetCursorRect( pRect, nExtTextInputWidth ); +#endif } // ----------------------------------------------------------------------- diff --git a/vcl/source/window/winproc.cxx b/vcl/source/window/winproc.cxx index a5aa8dc4a8ac..4e7381e7e03c 100644 --- a/vcl/source/window/winproc.cxx +++ b/vcl/source/window/winproc.cxx @@ -2,9 +2,9 @@ * * $RCSfile: winproc.cxx,v $ * - * $Revision: 1.22 $ + * $Revision: 1.23 $ * - * last change: $Author: ssa $ $Date: 2001-06-22 14:14:52 $ + * last change: $Author: ssa $ $Date: 2001-06-27 08:25:19 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -2118,10 +2118,28 @@ long ImplWindowFrameProc( void* pInst, SalFrame* pFrame, #else // => REMOTE_APPSERVER +void ImplUpdateCursorRect( Window *pWindow ) +{ + RmFrameWindow *pFrame = pWindow->ImplGetFrame(); + if( !pFrame ) + return; + if( pFrame->IsInEvtHandler() ) + return; // we'll update later + + Rectangle rRect; + long rWidth; + ImplHandleExtTextInputPos( pWindow, rRect, rWidth ); + pFrame->SetCursorRect( &rRect, rWidth ); +} + void ImplRemoteWindowFrameProc( ExtRmEvent* pEvent ) { DBG_TESTSOLARMUTEX(); + // disable updates like remote CursorRect + if( pEvent->GetWindow() && pEvent->GetWindow()->ImplGetFrame() ) + pEvent->GetWindow()->ImplGetFrame()->IsInEvtHandler( true ); + ULONG nId = pEvent->GetId(); switch ( nId ) { @@ -2242,6 +2260,14 @@ void ImplRemoteWindowFrameProc( ExtRmEvent* pEvent ) } break; } + + // enable updates like remote CursorRect + if( pEvent->GetWindow() && pEvent->GetWindow()->ImplGetFrame() ) + { + pEvent->GetWindow()->ImplGetFrame()->IsInEvtHandler( false ); + ImplUpdateCursorRect( pEvent->GetWindow() ); + } } + #endif |