X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/451c5cc7b9e72f6231085056e91bcd53612e54bb..1ae72ce2a7c3061ee1c3a3689f1de499c378808e:/src/stc/ScintillaWX.cpp diff --git a/src/stc/ScintillaWX.cpp b/src/stc/ScintillaWX.cpp index ec2297af18..10859100d6 100644 --- a/src/stc/ScintillaWX.cpp +++ b/src/stc/ScintillaWX.cpp @@ -110,7 +110,7 @@ public: CaptureMouse(); } else { - ReleaseMouse(); + if (HasCapture()) ReleaseMouse(); } return retval; } @@ -320,6 +320,7 @@ void ScintillaWX::Copy() { SelectionText st; CopySelectionRange(&st); wxTheClipboard->Open(); + wxTheClipboard->UsePrimarySelection(); wxString text = stc2wx(st.s, st.len); wxTheClipboard->SetData(new wxTextDataObject(text)); wxTheClipboard->Close(); @@ -335,6 +336,7 @@ void ScintillaWX::Paste() { bool gotData; wxTheClipboard->Open(); + wxTheClipboard->UsePrimarySelection(); gotData = wxTheClipboard->GetData(data); wxTheClipboard->Close(); if (gotData) { @@ -354,6 +356,7 @@ bool ScintillaWX::CanPaste() { bool canPaste; wxTheClipboard->Open(); + wxTheClipboard->UsePrimarySelection(); canPaste = wxTheClipboard->IsSupported(wxUSE_UNICODE ? wxDF_UNICODETEXT : wxDF_TEXT); wxTheClipboard->Close(); @@ -464,8 +467,9 @@ void ScintillaWX::DoVScroll(int type, int pos) { ScrollTo(topLineNew); } - -void ScintillaWX::DoMouseWheel(int rotation, int delta, int linesPerAction, int ctrlDown) { +void ScintillaWX::DoMouseWheel(int rotation, int delta, + int linesPerAction, int ctrlDown, + bool isPageScroll ) { int topLineNew = topLine; int lines; @@ -482,7 +486,10 @@ void ScintillaWX::DoMouseWheel(int rotation, int delta, int linesPerAction, int lines = wheelRotation / delta; wheelRotation -= lines * delta; if (lines != 0) { - lines *= linesPerAction; + if (isPageScroll) + lines = lines * LinesOnScreen(); // lines is either +1 or -1 + else + lines *= linesPerAction; topLineNew -= lines; ScrollTo(topLineNew); } @@ -575,7 +582,8 @@ void ScintillaWX::DoCommand(int ID) { void ScintillaWX::DoContextMenu(Point pt) { - ContextMenu(pt); + if (displayPopupMenu) + ContextMenu(pt); } void ScintillaWX::DoOnListBox() {