]> git.saurik.com Git - wxWidgets.git/blobdiff - contrib/src/stc/ScintillaWX.cpp
Correct rounding up vs. rounding down error in GTK+
[wxWidgets.git] / contrib / src / stc / ScintillaWX.cpp
index c12d3ff2691a4da890f9bc9885dd521d313b2add..796f06e0c8f03ac927b8e2fa36f0763a9d507fbb 100644 (file)
@@ -539,7 +539,8 @@ long ScintillaWX::WndProc(unsigned int iMessage, unsigned long wParam, long lPar
                                           defn,
                                           vs.styles[STYLE_DEFAULT].fontName,
                                           vs.styles[STYLE_DEFAULT].sizeZoomed,
                                           defn,
                                           vs.styles[STYLE_DEFAULT].fontName,
                                           vs.styles[STYLE_DEFAULT].sizeZoomed,
-                                          IsUnicodeMode(),
+                                          CodePage(),
+                                          vs.styles[STYLE_DEFAULT].characterSet,
                                           wMain);
           // If the call-tip window would be out of the client
           // space, adjust so it displays above the text.
                                           wMain);
           // If the call-tip window would be out of the client
           // space, adjust so it displays above the text.
@@ -750,27 +751,25 @@ void ScintillaWX::DoMiddleButtonUp(Point WXUNUSED(pt)) {
 void ScintillaWX::DoAddChar(int key) {
 #if wxUSE_UNICODE
     wxChar wszChars[2];
 void ScintillaWX::DoAddChar(int key) {
 #if wxUSE_UNICODE
     wxChar wszChars[2];
-    wszChars[0] = key;
+    wszChars[0] = (wxChar)key;
     wszChars[1] = 0;
     wxWX2MBbuf buf = (wxWX2MBbuf)wx2stc(wszChars);
     AddCharUTF((char*)buf.data(), strlen(buf));
 #else
     wszChars[1] = 0;
     wxWX2MBbuf buf = (wxWX2MBbuf)wx2stc(wszChars);
     AddCharUTF((char*)buf.data(), strlen(buf));
 #else
-    AddChar(key);
+    AddChar((char)key);
 #endif
 }
 
 
 #endif
 }
 
 
-#ifdef __WXMAC__
-int  ScintillaWX::DoKeyDown(int key, bool shift, bool ctrl, bool alt, bool meta, bool* consumed) {
-#else
-int  ScintillaWX::DoKeyDown(int key, bool shift, bool ctrl, bool alt, bool WXUNUSED(meta), bool* consumed) {
-#endif
-#if defined(__WXGTK__) || defined(__WXMAC__)
-    // Ctrl chars (A-Z) end up with the wrong keycode on wxGTK
-    // TODO:  Check this, it shouldn't be true any longer.
+int  ScintillaWX::DoKeyDown(const wxKeyEvent& evt, bool* consumed)
+{
+    int key = evt.GetKeyCode();
+    bool shift = evt.ShiftDown(),
+         ctrl  = evt.ControlDown(),
+         alt   = evt.AltDown();
     if (ctrl && key >= 1 && key <= 26)
         key += 'A' - 1;
     if (ctrl && key >= 1 && key <= 26)
         key += 'A' - 1;
-#endif
 
     switch (key) {
     case WXK_DOWN:              key = SCK_DOWN;     break;
 
     switch (key) {
     case WXK_DOWN:              key = SCK_DOWN;     break;
@@ -802,7 +801,7 @@ int  ScintillaWX::DoKeyDown(int key, bool shift, bool ctrl, bool alt, bool WXUNU
     }
 
 #ifdef __WXMAC__
     }
 
 #ifdef __WXMAC__
-    if ( meta ) {
+    if ( evt.MetaDown() ) {
         // check for a few common Mac Meta-key combos and remap them to Ctrl
         // for Scintilla
         switch ( key ) {
         // check for a few common Mac Meta-key combos and remap them to Ctrl
         // for Scintilla
         switch ( key ) {