diff options
-rw-r--r-- | doc/ScintillaDoc.html | 2 | ||||
-rw-r--r-- | src/Editor.cxx | 6 | ||||
-rw-r--r-- | src/Editor.h | 2 | ||||
-rw-r--r-- | win32/ScintillaWin.cxx | 6 |
4 files changed, 9 insertions, 7 deletions
diff --git a/doc/ScintillaDoc.html b/doc/ScintillaDoc.html index 91785d532..301e4930b 100644 --- a/doc/ScintillaDoc.html +++ b/doc/ScintillaDoc.html @@ -4558,7 +4558,7 @@ struct SCNotification { // SCN_DWELLEND, SCN_CALLTIPCLICK, // SCN_HOTSPOTCLICK, SCN_HOTSPOTDOUBLECLICK int ch; // SCN_CHARADDED, SCN_KEY - int modifiers; // SCN_KEY, SCN_HOTSPOTCLICK, SCN_HOTSPOTDOUBLECLICK + int modifiers; // SCN_KEY, SCN_DOUBLECLICK, SCN_HOTSPOTCLICK, SCN_HOTSPOTDOUBLECLICK int modificationType; // SCN_MODIFIED const char *text; // SCN_MODIFIED, SCN_USERLISTSELECTION, SCN_AUTOCSELECTION int length; // SCN_MODIFIED diff --git a/src/Editor.cxx b/src/Editor.cxx index 14906f523..b50984b92 100644 --- a/src/Editor.cxx +++ b/src/Editor.cxx @@ -3631,11 +3631,13 @@ void Editor::NotifyModifyAttempt() { NotifyParent(scn); } -void Editor::NotifyDoubleClick(Point pt, bool) { +void Editor::NotifyDoubleClick(Point pt, bool shift, bool ctrl, bool alt) { SCNotification scn = {0}; scn.nmhdr.code = SCN_DOUBLECLICK; scn.line = LineFromLocation(pt); scn.position = PositionFromLocationClose(pt); + scn.modifiers = (shift ? SCI_SHIFT : 0) | (ctrl ? SCI_CTRL : 0) | + (alt ? SCI_ALT : 0); NotifyParent(scn); } @@ -5151,7 +5153,7 @@ void Editor::ButtonDown(Point pt, unsigned int curTime, bool shift, bool ctrl, b } //Platform::DebugPrintf("Double click: %d - %d\n", anchor, currentPos); if (doubleClick) { - NotifyDoubleClick(pt, shift); + NotifyDoubleClick(pt, shift, ctrl, alt); if (PositionIsHotspot(newPos)) NotifyHotSpotDoubleClicked(newPos, shift, ctrl, alt); } diff --git a/src/Editor.h b/src/Editor.h index e1065bf04..3399b70c7 100644 --- a/src/Editor.h +++ b/src/Editor.h @@ -436,7 +436,7 @@ protected: // ScintillaBase subclass needs access to much of Editor void NotifyMove(int position); void NotifySavePoint(bool isSavePoint); void NotifyModifyAttempt(); - virtual void NotifyDoubleClick(Point pt, bool shift); + virtual void NotifyDoubleClick(Point pt, bool shift, bool ctrl, bool alt); void NotifyHotSpotClicked(int position, bool shift, bool ctrl, bool alt); void NotifyHotSpotDoubleClicked(int position, bool shift, bool ctrl, bool alt); void NotifyUpdateUI(); diff --git a/win32/ScintillaWin.cxx b/win32/ScintillaWin.cxx index 249e74646..d620f76ff 100644 --- a/win32/ScintillaWin.cxx +++ b/win32/ScintillaWin.cxx @@ -199,7 +199,7 @@ class ScintillaWin : virtual void NotifyFocus(bool focus); virtual int GetCtrlID(); virtual void NotifyParent(SCNotification scn); - virtual void NotifyDoubleClick(Point pt, bool shift); + virtual void NotifyDoubleClick(Point pt, bool shift, bool ctrl, bool alt); virtual void Copy(); virtual bool CanPaste(); virtual void Paste(); @@ -1168,9 +1168,9 @@ void ScintillaWin::NotifyParent(SCNotification scn) { GetCtrlID(), reinterpret_cast<LPARAM>(&scn)); } -void ScintillaWin::NotifyDoubleClick(Point pt, bool shift) { +void ScintillaWin::NotifyDoubleClick(Point pt, bool shift, bool ctrl, bool alt) { //Platform::DebugPrintf("ScintillaWin Double click 0\n"); - ScintillaBase::NotifyDoubleClick(pt, shift); + ScintillaBase::NotifyDoubleClick(pt, shift, ctrl, alt); // Send myself a WM_LBUTTONDBLCLK, so the container can handle it too. ::SendMessage(MainHWND(), WM_LBUTTONDBLCLK, |