* source/rtl/tbrowse.prg
! fixed ::Moved() method which was calling ::Dehilite() even if TBrowse was already
unstable causing wrong painting of current row
* source/rtl/tbrowse.prg
+ added ::MGotoYX(nRow, nCol) method which hilights cell under screen coordinates nRow, nCol
should help following a mouse. NOTE: hacked up and not tested. I'm very busy at the moment.
* NOTE latest change to TBrowse (my previous entry in changelog) fixed a problem but created
a new one :-) I'll have to rethink a little bit ::Stabilize() logic.
* source/debug/debugger.prg
- removed calls to oBrwText:ForceStable() method which is no more available
! SetsUp() and SetsDown() functions where calling ::RefreshAll() and movement methods
without any reason causing a noticeable delay during Sets scrolling.
* source/debug/tbrwtext.prg
- removed empty ::ForceStable() method
* source/rtl/tbrowse.prg
! when a movement happens inside available on screen rows (like a ::Down() from row 1 to
row 2) I have to force repainting of target row or else this sequence (for example)
fails: ::RefreshCurrent():Down():ForceStable() because to paint the row where I issued a
::RefreshCurrent() I have to move one back from ::nNewRowPos, but there I stay since
::nNewRowPos is not to redraw. I'm sure nobody uderstands what I'm clearly unable to
explain :-)
* source/rtl/teditor.prg
- removed a TODO: comment which is no more needed.
* source/rtl/tbrowse.prg
- removed hidden: clause inside class definition (it doesn't work right now)
* source/rtl/tclass.prg
- commented out line 255 (gives infinite loop)
* utils/hbmake/*.prg
+ hbdocdef.ch needs relative path ("..\hbdoc\") to be compiled by gcc system
* source/rtl/tbrowse.prg
! I've fixed all known (to me) issues with latest TBrowse code.
::HitTop/Bottom were set back to .F. if a ::RefreshAll() was issued. This is wrong since only
movement keys can reset them.
Issuing a long sequence of K_UP/K_DN (or CTRL_...) resulted on wrong movement of datasource (you could
even go backward using K_DN :-O)
You could get an out of bounds moving around inside tbrowse.
* Note that original Clipper TBrowse caches displayed rows, so moving left or right does not require
calling ::Skipblock to refresh screen. Present implementation of TBrowse has not such a cache so
a lot more of skipping around is needed.
* source/rtl/tbrowse.prg
* I've rewritten from scratch stabilization and movement keys handling.
They were simply broken in previous TBrowse. They are now nearly 100% clipper compatible.
DBU now works correctly when lastrec() + 1 is reached and leaved.
::stable state and ::HitTop or ::HitBottom were wrongly set _before_ stabilization and not
during as it should. ::GoBottom() was not calling ::goBottomBlock.
Movement handling methods were calling ::skipBlock and they should not, this was
causing unneeded skipping being requested to data source.
I hope these last changes have fixed TBrowse class. Please test it extensively.