]> git.saurik.com Git - wxWidgets.git/blobdiff - src/stc/ScintillaWX.cpp
Use the black pen for the border on Windows now too.
[wxWidgets.git] / src / stc / ScintillaWX.cpp
index 2add87761f10187c878ddd179827472d420887b3..d5f2648dd163791a3b8e33dac2b215a5ead9448f 100644 (file)
@@ -122,9 +122,10 @@ void ScintillaWX::Finalise() {
 
 void ScintillaWX::StartDrag() {
     wxDropSource        source(wMain.GetID());
-    wxTextDataObject    data(dragChars);
+    wxTextDataObject    data(wxString(drag.s, drag.len));
     wxDragResult        result;
 
+    dropWentOutside = true;
     source.SetData(data);
     result = source.DoDragDrop(TRUE);
     if (result == wxDragMove && dropWentOutside)
@@ -217,9 +218,10 @@ void ScintillaWX::NotifyParent(SCNotification scn) {
 
 void ScintillaWX::Copy() {
     if (currentPos != anchor) {
-        char* text = CopySelectionRange();
+        SelectionText st;
+        CopySelectionRange(&st);
         wxTheClipboard->Open();
-        wxTheClipboard->SetData(new wxTextDataObject(text));
+        wxTheClipboard->SetData(new wxTextDataObject(wxString(st.s, st.len)));
         wxTheClipboard->Close();
     }
 }
@@ -421,13 +423,16 @@ void ScintillaWX::DoButtonMove(Point pt) {
 
 
 void ScintillaWX::DoAddChar(char ch) {
-    //bool acActiveBeforeCharAdded = ac.Active();
     AddChar(ch);
-    //if (acActiveBeforeCharAdded)
-    //    AutoCompleteChanged(ch);
 }
 
 int  ScintillaWX::DoKeyDown(int key, bool shift, bool ctrl, bool alt, bool* consumed) {
+#ifdef __WXGTK__
+    // Ctrl chars (A-Z) end up with the wrong keycode on wxGTK...
+    if (ctrl && key >= 1 && key <= 26)
+        key += 'A' - 1;
+#endif
+
     switch (key) {
     case WXK_DOWN: key = SCK_DOWN; break;
     case WXK_UP: key = SCK_UP; break;
@@ -459,6 +464,7 @@ int  ScintillaWX::DoKeyDown(int key, bool shift, bool ctrl, bool alt, bool* cons
     }
 
     int rv = KeyDown(key, shift, ctrl, alt, consumed);
+
     if (key)
         return rv;
     else
@@ -490,14 +496,15 @@ bool ScintillaWX::DoDropText(long x, long y, const wxString& data) {
 
 
 wxDragResult ScintillaWX::DoDragEnter(wxCoord x, wxCoord y, wxDragResult def) {
-    return def;
+    dragResult = def;
+    return dragResult;
 }
 
 
 wxDragResult ScintillaWX::DoDragOver(wxCoord x, wxCoord y, wxDragResult def) {
     SetDragPosition(PositionFromLocation(Point(x, y)));
     dragResult = def;
-    return def;
+    return dragResult;
 }