diff --git a/harbour/ChangeLog b/harbour/ChangeLog index b129ffee85..27b9f16718 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -16,6 +16,13 @@ The license applies to all entries newer than 2009-04-28. */ +2012-08-15 15:55 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) + * contrib/hbide/edit.prg + ! Fixed: a nasty side-effect of pair-matching; weired editing behaviour. + Now another click will clear the matching but keeping the cursor + position at its previous row/column. You may need to click twice + to place cursor at desired position if matched/pair is active. + 2012-08-15 14:17 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) * contrib/hbide/edit.prg + Added: class/endclass, function|procedure|method/return to control diff --git a/harbour/contrib/hbide/edit.prg b/harbour/contrib/hbide/edit.prg index 665e0fa011..92b46944ff 100644 --- a/harbour/contrib/hbide/edit.prg +++ b/harbour/contrib/hbide/edit.prg @@ -1827,17 +1827,15 @@ STATIC FUNCTION hbide_matchBackward( qCursor, cStartingW, cEndingW, qPairFormat /*----------------------------------------------------------------------*/ METHOD IdeEdit:unmatchPair() - LOCAL lModified, qCursor + LOCAL lModified IF ::isMatchingPair - qCursor := ::qEdit:cursorForPosition( QPoint( ::qEdit:cursorRect():x(), ::qEdit:cursorRect():y() ) ) ::isMatchingPair := .F. lModified := ::qEdit:document():isModified() ::qEdit:undo() IF ! lModified ::qEdit:document():setModified( .F. ) ENDIF - ::qEdit:setTextCursor( qCursor ) ENDIF RETURN NIL @@ -1851,20 +1849,20 @@ METHOD IdeEdit:matchPair( x, y ) qCursor := ::qEdit:cursorForPosition( ::qEdit:viewport():mapFromGlobal( QPoint( x,y ) ) ) IF ! qCursor:isNull() - qCursor:beginEditBlock() - nPostn := qCursor:position() - - qFormat := QTextCharFormat() - qFormat:setBackground( QBrush( QColor( Qt_yellow ) ) ) - qCursor:select( QTextCursor_WordUnderCursor ) cWord := Lower( qCursor:selectedText() ) IF AScan( { "if","endif","for","next","switch","endswitch","do","enddo","endcase","return","function","procedure","method","class","endclass" }, {|e| e == cWord } ) > 0 ::isMatchingPair := .T. + qFormat := QTextCharFormat() + qFormat:setBackground( QBrush( QColor( Qt_yellow ) ) ) + lModified := ::qEdit:document():isModified() + qCursor:beginEditBlock() + nPostn := qCursor:position() + SWITCH cWord CASE "if" /* Forward search */ qCursor:mergeCharFormat( qFormat )