diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/Editor.cxx | 11 | ||||
| -rw-r--r-- | src/ViewStyle.cxx | 2 | ||||
| -rw-r--r-- | src/ViewStyle.h | 1 | 
3 files changed, 12 insertions, 2 deletions
| diff --git a/src/Editor.cxx b/src/Editor.cxx index 6b86987fa..79c9f6c0f 100644 --- a/src/Editor.cxx +++ b/src/Editor.cxx @@ -6195,7 +6195,7 @@ void Editor::ButtonDown(Point pt, unsigned int curTime, bool shift, bool ctrl, b  			if (!shift) {  				// Single click in margin: select whole line or only subline if word wrap is enabled  				lineAnchorPos = newPos.Position(); -				selectionType = (wrapState != eWrapNone) ? selSubLine : selWholeLine; +				selectionType = ((wrapState != eWrapNone) && (vs.marginOptions & SC_MARGINOPTION_SUBLINESELECT)) ? selSubLine : selWholeLine;  				LineSelection(lineAnchorPos, lineAnchorPos, selectionType == selWholeLine);  			} else {  				// Single shift+click in margin: select from line anchor to clicked line @@ -6208,7 +6208,7 @@ void Editor::ButtonDown(Point pt, unsigned int curTime, bool shift, bool ctrl, b  				// Otherwise, if there's a non empty selection, reset selection type only if it differs from selSubLine and selWholeLine.  				// This ensures that we continue selecting in the same selection mode.  				if (sel.Empty()	|| (selectionType != selSubLine && selectionType != selWholeLine)) -					selectionType = (wrapState != eWrapNone) ? selSubLine : selWholeLine; +					selectionType = ((wrapState != eWrapNone) && (vs.marginOptions & SC_MARGINOPTION_SUBLINESELECT)) ? selSubLine : selWholeLine;  				LineSelection(newPos.Position(), lineAnchorPos, selectionType == selWholeLine);  			} @@ -8797,6 +8797,13 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) {  	case SCI_MARGINGETSTYLEOFFSET:  		return vs.marginStyleOffset; +	case SCI_SETMARGINOPTIONS: +		vs.marginOptions = wParam; +		break; + +	case SCI_GETMARGINOPTIONS: +		return vs.marginOptions; +  	case SCI_MARGINSETTEXT:  		pdoc->MarginSetText(wParam, CharPtrFromSPtr(lParam));  		break; diff --git a/src/ViewStyle.cxx b/src/ViewStyle.cxx index 03a2fb42f..78b13b8da 100644 --- a/src/ViewStyle.cxx +++ b/src/ViewStyle.cxx @@ -187,6 +187,7 @@ ViewStyle::ViewStyle(const ViewStyle &source) {  	someStylesForceCase = false;  	leftMarginWidth = source.leftMarginWidth;  	rightMarginWidth = source.rightMarginWidth; +	marginOptions = source.marginOptions;  	for (int i=0; i < margins; i++) {  		ms[i] = source.ms[i];  	} @@ -287,6 +288,7 @@ void ViewStyle::Init(size_t stylesSize_) {  	leftMarginWidth = 1;  	rightMarginWidth = 1; +	marginOptions = SC_MARGINOPTION_NONE;  	ms[0].style = SC_MARGIN_NUMBER;  	ms[0].width = 0;  	ms[0].mask = 0; diff --git a/src/ViewStyle.h b/src/ViewStyle.h index b038a9b54..f62529adf 100644 --- a/src/ViewStyle.h +++ b/src/ViewStyle.h @@ -102,6 +102,7 @@ public:  	enum { margins=5 };  	int leftMarginWidth;	///< Spacing margin on left of text  	int rightMarginWidth;	///< Spacing margin on left of text +	int marginOptions;  	bool symbolMargin;  	int maskInLine;	///< Mask for markers to be put into text because there is nowhere for them to go in margin  	MarginStyle ms[margins]; | 
