Bugzilla – Attachment 126178 Details for
Bug 82795
inverted arrow key behavior in left to right vertical text
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
fix the bug for inverted arrow key behavior in left to right vertical text
edtwin.diff (text/plain), 7.76 KB, created by
baigali
on 2016-07-12 08:50:24 UTC
(
hide
)
Description:
fix the bug for inverted arrow key behavior in left to right vertical text
Filename:
MIME Type:
Creator:
baigali
Created:
2016-07-12 08:50:24 UTC
Size:
7.76 KB
patch
obsolete
>diff --git a/sw/source/uibase/docvw/edtwin.cxx b/sw/source/uibase/docvw/edtwin.cxx >index 1631ffa..2fe4d93 100644 >--- a/sw/source/uibase/docvw/edtwin.cxx >+++ b/sw/source/uibase/docvw/edtwin.cxx >@@ -1466,6 +1466,7 @@ void SwEditWin::KeyInput(const KeyEvent &rKEvt) > const bool bVertText = rSh.IsInVerticalText(); > const bool bTableCursor = rSh.GetTableCursor(); > const bool bVertTable = rSh.IsTableVertical(); >+ > if( ( bVertText && ( !bTableCursor || bVertTable ) ) || > ( bTableCursor && bVertTable ) ) > { >@@ -1473,8 +1474,39 @@ void SwEditWin::KeyInput(const KeyEvent &rKEvt) > // Thus, back to previous mapping of cursor keys to direction keys. > if( KEY_UP == nKey ) nKey = KEY_LEFT; > else if( KEY_DOWN == nKey ) nKey = KEY_RIGHT; >- else if( KEY_LEFT == nKey ) nKey = KEY_DOWN; >- else if( KEY_RIGHT == nKey ) nKey = KEY_UP; >+ //else if( KEY_LEFT == nKey ) nKey = KEY_DOWN; >+ //else if( KEY_RIGHT == nKey ) nKey = KEY_UP; >+ >+ //intergrate direction key suppor for mongolian layout , >+ //but still don't support direction key traveling inside texttable >+ //menksoft Inc. baigali 2016.07.08 >+ const Point aDocPos(rSh.GetCursorDocPos()); >+ const SwPageFrame* pPageFrame = rSh.GetLayout()->GetPageAtPos( aDocPos ); >+ if(pPageFrame->IsVertLR()){ >+ if( KEY_UP == nKey ) nKey = KEY_LEFT; >+ else if( KEY_DOWN == nKey ) nKey = KEY_RIGHT; >+ else if( KEY_LEFT == nKey ) nKey = KEY_UP; >+ else if( KEY_RIGHT == nKey ) nKey = KEY_DOWN; >+ }else{ >+ if( KEY_UP == nKey ) nKey = KEY_LEFT; >+ else if( KEY_DOWN == nKey ) nKey = KEY_RIGHT; >+ else if( KEY_LEFT == nKey ) nKey = KEY_DOWN; >+ else if( KEY_RIGHT == nKey ) nKey = KEY_UP; >+ } > } > aKeyEvent = KeyEvent( rKEvt.GetCharCode(), > vcl::KeyCode( nKey, rKEvt.GetKeyCode().GetModifier() ), >diff --git a/sw/source/uibase/docvw/edtwin.cxx b/sw/source/uibase/docvw/edtwin.cxx >index 1631ffa..88032a8 100644 >--- a/sw/source/uibase/docvw/edtwin.cxx >+++ b/sw/source/uibase/docvw/edtwin.cxx >@@ -1466,6 +1466,7 @@ void SwEditWin::KeyInput(const KeyEvent &rKEvt) > const bool bVertText = rSh.IsInVerticalText(); > const bool bTableCursor = rSh.GetTableCursor(); > const bool bVertTable = rSh.IsTableVertical(); >+ > if( ( bVertText && ( !bTableCursor || bVertTable ) ) || > ( bTableCursor && bVertTable ) ) > { >@@ -1473,8 +1474,40 @@ void SwEditWin::KeyInput(const KeyEvent &rKEvt) > // Thus, back to previous mapping of cursor keys to direction keys. > if( KEY_UP == nKey ) nKey = KEY_LEFT; > else if( KEY_DOWN == nKey ) nKey = KEY_RIGHT; >- else if( KEY_LEFT == nKey ) nKey = KEY_DOWN; >- else if( KEY_RIGHT == nKey ) nKey = KEY_UP; >+ //else if( KEY_LEFT == nKey ) nKey = KEY_DOWN; >+ //else if( KEY_RIGHT == nKey ) nKey = KEY_UP; >+ >+ //intergrate direction key suppor for mongolian layout , >+ //but still don't support direction key traveling inside texttable >+ //menksoft Inc. baigali 2016.07.08 >+ >+ const Point aDocPos(rSh.GetCursorDocPos()); >+ const SwPageFrame* pPageFrame = rSh.GetLayout()->GetPageAtPos( aDocPos ); >+ if(pPageFrame->IsVertLR()){ >+ if( KEY_UP == nKey ) nKey = KEY_LEFT; >+ else if( KEY_DOWN == nKey ) nKey = KEY_RIGHT; >+ else if( KEY_LEFT == nKey ) nKey = KEY_UP; >+ else if( KEY_RIGHT == nKey ) nKey = KEY_DOWN; >+ }else{ >+ if( KEY_UP == nKey ) nKey = KEY_LEFT; >+ else if( KEY_DOWN == nKey ) nKey = KEY_RIGHT; >+ else if( KEY_LEFT == nKey ) nKey = KEY_DOWN; >+ else if( KEY_RIGHT == nKey ) nKey = KEY_UP; >+ } >+ /* >+ bool bRightToLeft=false; >+ bool bVertL2R=false; >+ bool bVertical=rSh.IsFrameVertical(false,bRightToLeft,bVertL2R); >+ if(true){ >+ if(bVertL2R){ >+ //if( KEY_LEFT == nKey ) nKey = KEY_UP; >+ //else if( KEY_RIGHT == nKey ) nKey = KEY_DOWN; >+ }else{ >+ if( KEY_LEFT == nKey ) nKey = KEY_DOWN; >+ else if( KEY_RIGHT == nKey ) nKey = KEY_UP; >+ } >+ } >+ */ > } > aKeyEvent = KeyEvent( rKEvt.GetCharCode(), > vcl::KeyCode( nKey, rKEvt.GetKeyCode().GetModifier() ), >diff --git a/sw/source/uibase/docvw/edtwin.cxx b/sw/source/uibase/docvw/edtwin.cxx >index 1631ffa..88032a8 100644 >--- a/sw/source/uibase/docvw/edtwin.cxx >+++ b/sw/source/uibase/docvw/edtwin.cxx >@@ -1466,6 +1466,7 @@ void SwEditWin::KeyInput(const KeyEvent &rKEvt) > const bool bVertText = rSh.IsInVerticalText(); > const bool bTableCursor = rSh.GetTableCursor(); > const bool bVertTable = rSh.IsTableVertical(); >+ > if( ( bVertText && ( !bTableCursor || bVertTable ) ) || > ( bTableCursor && bVertTable ) ) > { >@@ -1473,8 +1474,40 @@ void SwEditWin::KeyInput(const KeyEvent &rKEvt) > // Thus, back to previous mapping of cursor keys to direction keys. > if( KEY_UP == nKey ) nKey = KEY_LEFT; > else if( KEY_DOWN == nKey ) nKey = KEY_RIGHT; >- else if( KEY_LEFT == nKey ) nKey = KEY_DOWN; >- else if( KEY_RIGHT == nKey ) nKey = KEY_UP; >+ //else if( KEY_LEFT == nKey ) nKey = KEY_DOWN; >+ //else if( KEY_RIGHT == nKey ) nKey = KEY_UP; >+ >+ //intergrate direction key suppor for mongolian layout , >+ //but still don't support direction key traveling inside texttable >+ //menksoft Inc. baigali 2016.07.08 >+ >+ const Point aDocPos(rSh.GetCursorDocPos()); >+ const SwPageFrame* pPageFrame = rSh.GetLayout()->GetPageAtPos( aDocPos ); >+ if(pPageFrame->IsVertLR()){ >+ if( KEY_UP == nKey ) nKey = KEY_LEFT; >+ else if( KEY_DOWN == nKey ) nKey = KEY_RIGHT; >+ else if( KEY_LEFT == nKey ) nKey = KEY_UP; >+ else if( KEY_RIGHT == nKey ) nKey = KEY_DOWN; >+ }else{ >+ if( KEY_UP == nKey ) nKey = KEY_LEFT; >+ else if( KEY_DOWN == nKey ) nKey = KEY_RIGHT; >+ else if( KEY_LEFT == nKey ) nKey = KEY_DOWN; >+ else if( KEY_RIGHT == nKey ) nKey = KEY_UP; >+ } >+ /* >+ bool bRightToLeft=false; >+ bool bVertL2R=false; >+ bool bVertical=rSh.IsFrameVertical(false,bRightToLeft,bVertL2R); >+ if(true){ >+ if(bVertL2R){ >+ //if( KEY_LEFT == nKey ) nKey = KEY_UP; >+ //else if( KEY_RIGHT == nKey ) nKey = KEY_DOWN; >+ }else{ >+ if( KEY_LEFT == nKey ) nKey = KEY_DOWN; >+ else if( KEY_RIGHT == nKey ) nKey = KEY_UP; >+ } >+ } >+ */ > } > aKeyEvent = KeyEvent( rKEvt.GetCharCode(), > vcl::KeyCode( nKey, rKEvt.GetKeyCode().GetModifier() ),
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 82795
:
104856
|
104857
|
108604
|
126176
|
126177
| 126178