[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-4.2' - 2 commits - cui/source framework/source include/vcl offapi/com officecfg/registry sc/inc sc/sdi sc/source vcl/unx vcl/win

Kohei Yoshida kohei.yoshida at collabora.com
Fri May 2 15:28:40 PDT 2014


 cui/source/customize/acccfg.cxx                                   |    5 +
 framework/source/accelerators/keymapping.cxx                      |    1 
 include/vcl/keycodes.hxx                                          |    1 
 offapi/com/sun/star/awt/Key.idl                                   |    3 
 officecfg/registry/data/org/openoffice/Office/Accelerators.xcu    |    6 +
 officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu |    8 ++
 sc/inc/sc.hrc                                                     |    1 
 sc/inc/scmod.hxx                                                  |    2 
 sc/sdi/cellsh.sdi                                                 |    1 
 sc/sdi/scalc.sdi                                                  |   27 +++++++
 sc/source/ui/app/inputhdl.cxx                                     |    8 +-
 sc/source/ui/app/scmod.cxx                                        |    4 -
 sc/source/ui/inc/cellsh.hxx                                       |    2 
 sc/source/ui/inc/inputhdl.hxx                                     |    2 
 sc/source/ui/view/cellsh.cxx                                      |    4 -
 sc/source/ui/view/cellsh1.cxx                                     |   37 ++++++++++
 vcl/unx/generic/app/saldisp.cxx                                   |    8 +-
 vcl/unx/gtk/window/gtksalframe.cxx                                |    1 
 vcl/unx/gtk/window/gtksalmenu.cxx                                 |    1 
 vcl/win/source/app/salinst.cxx                                    |    1 
 vcl/win/source/window/salframe.cxx                                |    3 
 21 files changed, 118 insertions(+), 8 deletions(-)

New commits:
commit 1c8295d24acb14e2a0e4858d6a4922eead440151
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date:   Fri May 2 15:30:20 2014 -0400

    Implement "fill single edit" mode and map it to Ctrl-' by default.
    
    Excel does this apparently, and lots of people want it.
    
    Conflicts:
    	sc/inc/scmod.hxx
    	sc/sdi/scalc.sdi
    
    Change-Id: Ia741ebb84526197d28caa323d36709e38b8f1323

diff --git a/officecfg/registry/data/org/openoffice/Office/Accelerators.xcu b/officecfg/registry/data/org/openoffice/Office/Accelerators.xcu
index 272278c..332b86c 100644
--- a/officecfg/registry/data/org/openoffice/Office/Accelerators.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/Accelerators.xcu
@@ -967,6 +967,12 @@
             <value xml:lang="en-US">.uno:ToggleFormula</value>
           </prop>
         </node>
+        <node oor:name="QUOTERIGHT_MOD1" oor:op="replace">
+          <prop oor:name="Command">
+            <value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
+            <value xml:lang="en-US">.uno:FillSingleEdit</value>
+          </prop>
+        </node>
         <node oor:name="Y_SHIFT_MOD1" oor:op="replace">
           <prop oor:name="Command">
             <value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
diff --git a/officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu
index c204e5e..1b3b5a6 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu
@@ -614,6 +614,14 @@
           <value xml:lang="en-US">~Left</value>
         </prop>
       </node>
+      <node oor:name=".uno:FillSingleEdit" oor:op="replace">
+        <prop oor:name="Label" oor:type="xs:string">
+          <value xml:lang="en-US">Fill Single ~Edit</value>
+        </prop>
+        <prop oor:name="ContextLabel" oor:type="xs:string">
+          <value xml:lang="en-US">Single ~Edit</value>
+        </prop>
+      </node>
       <node oor:name=".uno:FillTable" oor:op="replace">
         <prop oor:name="Label" oor:type="xs:string">
           <value xml:lang="en-US">Fill ~Sheets...</value>
diff --git a/sc/inc/sc.hrc b/sc/inc/sc.hrc
index 4c72f1c..ae2673d 100644
--- a/sc/inc/sc.hrc
+++ b/sc/inc/sc.hrc
@@ -283,6 +283,7 @@
 #define FID_FILL_TO_LEFT        (EDIT_MENU_START + 7)
 #define FID_FILL_TAB            (EDIT_MENU_START + 8)
 #define FID_FILL_SERIES         (EDIT_MENU_START + 9)
+#define FID_FILL_SINGLE_EDIT    (EDIT_MENU_START + 10)
 #define SID_SC_EDIT_OBJECT      (EDIT_MENU_START + 14)
 #define SID_HFEDIT              (EDIT_MENU_START + 15)
 
diff --git a/sc/inc/scmod.hxx b/sc/inc/scmod.hxx
index 5d7572e..650d818 100644
--- a/sc/inc/scmod.hxx
+++ b/sc/inc/scmod.hxx
@@ -200,7 +200,7 @@ SC_DLLPUBLIC    void                    SetAppOptions   ( const ScAppOptions& rO
     // InputHandler:
     sal_Bool                IsEditMode();   // not for SC_INPUT_TYPE
     sal_Bool                IsInputMode();  // also for SC_INPUT_TYPE
-    void                SetInputMode( ScInputMode eMode );
+    void SetInputMode( ScInputMode eMode, const OUString* pInitText = NULL );
     sal_Bool                InputKeyEvent( const KeyEvent& rKEvt, sal_Bool bStartEdit = false );
     SC_DLLPUBLIC void                InputEnterHandler( sal_uInt8 nBlockMode = 0 );
     void                InputCancelHandler();
diff --git a/sc/sdi/cellsh.sdi b/sc/sdi/cellsh.sdi
index 2fe1237..abacd0f 100644
--- a/sc/sdi/cellsh.sdi
+++ b/sc/sdi/cellsh.sdi
@@ -150,6 +150,7 @@ interface CellSelection
     FID_FILL_TAB        [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
     FID_FILL_SERIES     [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
     FID_FILL_AUTO       [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
+    FID_FILL_SINGLE_EDIT [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
     SID_RANDOM_NUMBER_GENERATOR_DIALOG  [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
     SID_SAMPLING_DIALOG                 [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
     SID_DESCRIPTIVE_STATISTICS_DIALOG   [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
diff --git a/sc/sdi/scalc.sdi b/sc/sdi/scalc.sdi
index f4bba08..5528719 100644
--- a/sc/sdi/scalc.sdi
+++ b/sc/sdi/scalc.sdi
@@ -2413,7 +2413,32 @@ SfxVoidItem FillLeft FID_FILL_TO_LEFT
     GroupId = GID_EDIT;
 ]
 
-//--------------------------------------------------------------------------
+
+SfxVoidItem FillSingleEdit FID_FILL_SINGLE_EDIT
+()
+[
+    /* flags: */
+    AutoUpdate = FALSE,
+    Cachable = Cachable,
+    FastCall = FALSE,
+    HasCoreId = FALSE,
+    HasDialog = TRUE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+    Asynchron;
+
+    /* config: */
+    AccelConfig = TRUE,
+    MenuConfig = TRUE,
+    StatusBarConfig = FALSE,
+    ToolBoxConfig = TRUE,
+    GroupId = GID_EDIT;
+]
+
+
 SfxVoidItem FillModeEnd SID_FILL_NONE
 ()
 [
diff --git a/sc/source/ui/app/inputhdl.cxx b/sc/source/ui/app/inputhdl.cxx
index d964312..ce79db0 100644
--- a/sc/source/ui/app/inputhdl.cxx
+++ b/sc/source/ui/app/inputhdl.cxx
@@ -2388,7 +2388,7 @@ void ScInputHandler::InvalidateAttribs()
 //      --------------- public Methoden --------------------------------------------
 //
 
-void ScInputHandler::SetMode( ScInputMode eNewMode )
+void ScInputHandler::SetMode( ScInputMode eNewMode, const OUString* pInitText )
 {
     if ( eMode == eNewMode )
         return;
@@ -2426,6 +2426,12 @@ void ScInputHandler::SetMode( ScInputMode eNewMode )
             }
         }
 
+        if (pInitText)
+        {
+            pEngine->SetText(*pInitText);
+            bModified = true;
+        }
+
         sal_Int32 nPara = pEngine->GetParagraphCount()-1;
         sal_Int32 nLen = pEngine->GetText(nPara).getLength();
         sal_uInt16 nCount = pEngine->GetViewCount();
diff --git a/sc/source/ui/app/scmod.cxx b/sc/source/ui/app/scmod.cxx
index 309da2c..e1acc2c 100644
--- a/sc/source/ui/app/scmod.cxx
+++ b/sc/source/ui/app/scmod.cxx
@@ -1445,11 +1445,11 @@ void ScModule::ViewShellChanged()
         pShell->UpdateInputHandler();
 }
 
-void ScModule::SetInputMode( ScInputMode eMode )
+void ScModule::SetInputMode( ScInputMode eMode, const OUString* pInitText )
 {
     ScInputHandler* pHdl = GetInputHdl();
     if (pHdl)
-        pHdl->SetMode( eMode );
+        pHdl->SetMode(eMode, pInitText);
 }
 
 sal_Bool ScModule::IsEditMode()
diff --git a/sc/source/ui/inc/cellsh.hxx b/sc/source/ui/inc/cellsh.hxx
index b44eb9f..5404bab 100644
--- a/sc/source/ui/inc/cellsh.hxx
+++ b/sc/source/ui/inc/cellsh.hxx
@@ -61,6 +61,8 @@ private:
     void ExecuteXMLSourceDialog();
     void ExecuteSubtotals(SfxRequest& rReq);
 
+    void ExecuteFillSingleEdit();
+
     DECL_LINK( ClipboardChanged, TransferableDataHelper* );
     DECL_LINK( DialogClosed, void* );
 
diff --git a/sc/source/ui/inc/inputhdl.hxx b/sc/source/ui/inc/inputhdl.hxx
index 528d5c1..7b4319b 100644
--- a/sc/source/ui/inc/inputhdl.hxx
+++ b/sc/source/ui/inc/inputhdl.hxx
@@ -164,7 +164,7 @@ public:
                     ScInputHandler();
     virtual         ~ScInputHandler();
 
-    void            SetMode( ScInputMode eNewMode );
+    void SetMode( ScInputMode eNewMode, const OUString* pInitText = NULL );
     bool            IsInputMode() const { return (eMode != SC_INPUT_NONE); }
     bool            IsEditMode() const  { return (eMode != SC_INPUT_NONE &&
                                                   eMode != SC_INPUT_TYPE); }
diff --git a/sc/source/ui/view/cellsh.cxx b/sc/source/ui/view/cellsh.cxx
index e4d1bd4..a097305 100644
--- a/sc/source/ui/view/cellsh.cxx
+++ b/sc/source/ui/view/cellsh.cxx
@@ -201,7 +201,9 @@ void ScCellShell::GetBlockState( SfxItemSet& rSet )
                             nCol2, nRow1, nCol2, nRow2, rMark );    // last column
                 }
                 break;
-
+            case FID_FILL_SINGLE_EDIT:
+                bDisable = false;
+                break;
             case SID_CUT:               // cut
             case FID_INS_CELL:          // insert cells, just simple selection
                 bDisable = (!bSimpleArea);
diff --git a/sc/source/ui/view/cellsh1.cxx b/sc/source/ui/view/cellsh1.cxx
index 5b3c6b9..ce6cc39 100644
--- a/sc/source/ui/view/cellsh1.cxx
+++ b/sc/source/ui/view/cellsh1.cxx
@@ -79,6 +79,10 @@
 #include "scui_def.hxx"
 #include <svx/dialogs.hrc>
 #include "scabstdlg.hxx"
+#include <tokenstringcontext.hxx>
+#include <cellvalue.hxx>
+#include <tokenarray.hxx>
+#include <formulacell.hxx>
 
 #include <com/sun/star/ui/dialogs/XExecutableDialog.hpp>
 #include <com/sun/star/lang/XInitialization.hpp>
@@ -901,6 +905,9 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
                 }
             }
             break;
+        case FID_FILL_SINGLE_EDIT:
+            ExecuteFillSingleEdit();
+            break;
         case SID_RANDOM_NUMBER_GENERATOR_DIALOG:
             {
                 sal_uInt16 nId  = ScRandomNumberGeneratorDialogWrapper::GetChildWindowId();
@@ -2758,6 +2765,36 @@ void ScCellShell::ExecuteSubtotals(SfxRequest& rReq)
     delete pDlg;
 }
 
+void ScCellShell::ExecuteFillSingleEdit()
+{
+    ScAddress aCurPos = GetViewData()->GetCurPos();
+
+    OUString aInit;
+
+    if (aCurPos.Row() > 0)
+    {
+        // Get the initial text value from the above cell.
+
+        ScDocument* pDoc = GetViewData()->GetDocument();
+        ScRefCellValue aCell;
+        ScAddress aPrevPos = aCurPos;
+        aPrevPos.IncRow(-1);
+        aCell.assign(*pDoc, aPrevPos);
+
+        if (aCell.meType == CELLTYPE_FORMULA)
+        {
+            aInit = "=";
+            const ScTokenArray* pCode = aCell.mpFormula->GetCode();
+            sc::TokenStringContext aCxt(pDoc, pDoc->GetGrammar());
+            aInit += pCode->CreateString(aCxt, aCurPos);
+        }
+        else
+            aInit = aCell.getString(pDoc);
+    }
+
+    SC_MOD()->SetInputMode(SC_INPUT_TABLE, &aInit);
+}
+
 IMPL_LINK_NOARG(ScCellShell, DialogClosed)
 {
     OSL_ENSURE( pImpl->m_pLinkedDlg, "ScCellShell::DialogClosed(): invalid request" );
commit 88c79ede772b5543f5aa4aa8065ef8daaff0e051
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date:   Fri May 2 12:29:15 2014 -0400

    Add the "quoteright" key to the list of available keyboard shortcuts.
    
    Change-Id: I24800c28b1513b883c42d9ce1c787eaf07815b92

diff --git a/cui/source/customize/acccfg.cxx b/cui/source/customize/acccfg.cxx
index b075536..81e4879 100644
--- a/cui/source/customize/acccfg.cxx
+++ b/cui/source/customize/acccfg.cxx
@@ -203,6 +203,7 @@ static const sal_uInt16 KEYCODE_ARRAY[] =
     KEY_Y         | KEY_MOD1 ,
     KEY_Z         | KEY_MOD1 ,
     KEY_SEMICOLON    | KEY_MOD1 ,
+    KEY_QUOTERIGHT   | KEY_MOD1 ,
     KEY_BRACKETLEFT  | KEY_MOD1 ,
     KEY_BRACKETRIGHT | KEY_MOD1,
     KEY_POINT    | KEY_MOD1 ,
@@ -280,6 +281,7 @@ static const sal_uInt16 KEYCODE_ARRAY[] =
     KEY_Y         | KEY_SHIFT | KEY_MOD1,
     KEY_Z         | KEY_SHIFT | KEY_MOD1,
     KEY_SEMICOLON    | KEY_SHIFT | KEY_MOD1 ,
+    KEY_QUOTERIGHT   | KEY_SHIFT | KEY_MOD1 ,
     KEY_BRACKETLEFT  | KEY_SHIFT | KEY_MOD1 ,
     KEY_BRACKETRIGHT | KEY_SHIFT | KEY_MOD1,
     KEY_POINT    | KEY_SHIFT | KEY_MOD1,
@@ -352,6 +354,7 @@ static const sal_uInt16 KEYCODE_ARRAY[] =
     KEY_Y         | KEY_MOD2 ,
     KEY_Z         | KEY_MOD2 ,
     KEY_SEMICOLON    | KEY_MOD2 ,
+    KEY_QUOTERIGHT   | KEY_MOD2 ,
     KEY_BRACKETLEFT  | KEY_MOD2 ,
     KEY_BRACKETRIGHT | KEY_MOD2,
     KEY_POINT    | KEY_MOD2 ,
@@ -424,6 +427,7 @@ static const sal_uInt16 KEYCODE_ARRAY[] =
     KEY_Y         | KEY_SHIFT | KEY_MOD2,
     KEY_Z         | KEY_SHIFT | KEY_MOD2,
     KEY_SEMICOLON    | KEY_SHIFT | KEY_MOD2 ,
+    KEY_QUOTERIGHT   | KEY_SHIFT | KEY_MOD2 ,
     KEY_BRACKETLEFT  | KEY_SHIFT | KEY_MOD2 ,
     KEY_BRACKETRIGHT | KEY_SHIFT | KEY_MOD2,
     KEY_POINT    | KEY_SHIFT | KEY_MOD2,
@@ -564,6 +568,7 @@ static const sal_uInt16 KEYCODE_ARRAY[] =
     KEY_Y         | KEY_SHIFT | KEY_MOD1 | KEY_MOD2,
     KEY_Z         | KEY_SHIFT | KEY_MOD1 | KEY_MOD2,
     KEY_SEMICOLON    | KEY_SHIFT | KEY_MOD1 | KEY_MOD2,
+    KEY_QUOTERIGHT   | KEY_SHIFT | KEY_MOD1 | KEY_MOD2,
     KEY_BRACKETLEFT  | KEY_SHIFT | KEY_MOD1 | KEY_MOD2,
     KEY_BRACKETRIGHT | KEY_SHIFT | KEY_MOD1 | KEY_MOD2,
     KEY_POINT    | KEY_SHIFT | KEY_MOD1 | KEY_MOD2,
diff --git a/framework/source/accelerators/keymapping.cxx b/framework/source/accelerators/keymapping.cxx
index b0606f52..1c0caeb 100644
--- a/framework/source/accelerators/keymapping.cxx
+++ b/framework/source/accelerators/keymapping.cxx
@@ -137,6 +137,7 @@ KeyMapping::KeyIdentifierInfo KeyMapping::KeyIdentifierMap[] =
     {css::awt::Key::BRACKETLEFT   , "KEY_BRACKETLEFT" },
     {css::awt::Key::BRACKETRIGHT  , "KEY_BRACKETRIGHT" },
     {css::awt::Key::SEMICOLON     , "KEY_SEMICOLON" },
+    {css::awt::Key::QUOTERIGHT    , "KEY_QUOTERIGHT" },
     {0                            , ""               } // mark the end of this array!
 };
 
diff --git a/include/vcl/keycodes.hxx b/include/vcl/keycodes.hxx
index b6a1b4a..621be17 100644
--- a/include/vcl/keycodes.hxx
+++ b/include/vcl/keycodes.hxx
@@ -146,6 +146,7 @@
 #define KEY_BRACKETLEFT ((sal_uInt16)::com::sun::star::awt::Key::BRACKETLEFT)
 #define KEY_BRACKETRIGHT ((sal_uInt16)::com::sun::star::awt::Key::BRACKETRIGHT)
 #define KEY_SEMICOLON   ((sal_uInt16)::com::sun::star::awt::Key::SEMICOLON)
+#define KEY_QUOTERIGHT  ((sal_uInt16)::com::sun::star::awt::Key::QUOTERIGHT)
 
 #define KEY_CAPSLOCK    ((sal_uInt16)::com::sun::star::awt::Key::CAPSLOCK)
 #define KEY_NUMLOCK     ((sal_uInt16)::com::sun::star::awt::Key::NUMLOCK)
diff --git a/offapi/com/sun/star/awt/Key.idl b/offapi/com/sun/star/awt/Key.idl
index 21636bb..5c84843 100644
--- a/offapi/com/sun/star/awt/Key.idl
+++ b/offapi/com/sun/star/awt/Key.idl
@@ -362,6 +362,9 @@ published constants Key
     const short SEMICOLON = 1317;
 
 
+    const short QUOTERIGHT = 1318;
+
+
     const short DELETE_TO_END_OF_PARAGRAPH = 1539;
 
 
diff --git a/vcl/unx/generic/app/saldisp.cxx b/vcl/unx/generic/app/saldisp.cxx
index bb87724..fa5ad83 100644
--- a/vcl/unx/generic/app/saldisp.cxx
+++ b/vcl/unx/generic/app/saldisp.cxx
@@ -922,7 +922,9 @@ OUString SalDisplay::GetKeyName( sal_uInt16 nKeyCode ) const
         case KEY_SEMICOLON:
             aCustomKeyName = ";";
             break;
-
+        case KEY_QUOTERIGHT:
+            aCustomKeyName = "'";
+            break;
         default:
             nKeySym = 0;
             break;
@@ -1265,6 +1267,10 @@ sal_uInt16 SalDisplay::GetKeyCode( KeySym keysym, char*pcPrintable ) const
             nKey = KEY_SEMICOLON;
             *pcPrintable = ';';
             break;
+        case XK_quoteright:
+            nKey = KEY_QUOTERIGHT;
+            *pcPrintable = '\'';
+            break;
         // - - - - - - - - - - - - -  Apollo - - - - - - - - - - - - - 0x1000
         case 0x1000FF02: // apXK_Copy
             nKey = KEY_COPY;
diff --git a/vcl/unx/gtk/window/gtksalframe.cxx b/vcl/unx/gtk/window/gtksalframe.cxx
index de96dbd..4f7b354 100644
--- a/vcl/unx/gtk/window/gtksalframe.cxx
+++ b/vcl/unx/gtk/window/gtksalframe.cxx
@@ -253,6 +253,7 @@ static sal_uInt16 GetKeyCode( guint keyval )
             case GDK_bracketleft:  nCode = KEY_BRACKETLEFT;  break;
             case GDK_bracketright: nCode = KEY_BRACKETRIGHT; break;
             case GDK_semicolon:    nCode = KEY_SEMICOLON;   break;
+            case GDK_quoteright:   nCode = KEY_QUOTERIGHT;  break;
             // some special cases, also see saldisp.cxx
             // - - - - - - - - - - - - -  Apollo - - - - - - - - - - - - - 0x1000
             case 0x1000FF02: // apXK_Copy
diff --git a/vcl/unx/gtk/window/gtksalmenu.cxx b/vcl/unx/gtk/window/gtksalmenu.cxx
index 14ee000..ac4a03f 100644
--- a/vcl/unx/gtk/window/gtksalmenu.cxx
+++ b/vcl/unx/gtk/window/gtksalmenu.cxx
@@ -139,6 +139,7 @@ static void KeyCodeToGdkKey ( const KeyCode& rKeyCode, guint* pGdkKeyCode, GdkMo
         case KEY_BRACKETLEFT:   nKeyCode = GDK_bracketleft;     break;
         case KEY_BRACKETRIGHT:  nKeyCode = GDK_bracketright;    break;
         case KEY_SEMICOLON:     nKeyCode = GDK_semicolon;       break;
+        case KEY_QUOTERIGHT:    nKeyCode = GDK_quoteright;      break;
 
         // Special cases
         case KEY_COPY:          nKeyCode = GDK_Copy;            break;
diff --git a/vcl/win/source/app/salinst.cxx b/vcl/win/source/app/salinst.cxx
index 22917e8..02d2925 100644
--- a/vcl/win/source/app/salinst.cxx
+++ b/vcl/win/source/app/salinst.cxx
@@ -364,6 +364,7 @@ void SalData::initKeyCodeMap()
     initKey( '[', KEY_BRACKETLEFT );
     initKey( ']', KEY_BRACKETRIGHT );
     initKey( ';', KEY_SEMICOLON );
+    initKey( '\'', KEY_QUOTERIGHT );
 }
 
 // =======================================================================
diff --git a/vcl/win/source/window/salframe.cxx b/vcl/win/source/window/salframe.cxx
index d9f57b8..ea3fe88 100644
--- a/vcl/win/source/window/salframe.cxx
+++ b/vcl/win/source/window/salframe.cxx
@@ -2653,6 +2653,9 @@ OUString WinSalFrame::GetKeyName( sal_uInt16 nKeyCode )
             case KEY_SEMICOLON:
                 cSVCode = ';';
                 break;
+            case KEY_QUOTERIGHT:
+                cSVCode = '\'';
+                break;
             case KEY_BRACKETLEFT:
                 cSVCode = '[';
                 break;


More information about the Libreoffice-commits mailing list