This is the mail archive of the
insight@sources.redhat.com
mailing list for the Insight project.
[patch] regwin highlight fixes
- From: "Martin M. Hunt" <hunt at redhat dot com>
- To: "insight at sources dot redhat dot com" <insight at sources dot redhat dot com>
- Date: 18 Dec 2002 17:15:12 -0800
- Subject: [patch] regwin highlight fixes
This improves highlighting of changed values when switching register
groups.
2002-12-18 Martin M. Hunt <hunt@redhat.com>
* library/regwin.itb (RegWin::update): When updating, check
that a cell still exists before checking its value.
(RegWin::_select_group): Clear cells with changed values before
changing group. After new group is selected, highlight any changed
values still visible.
Index: library/regwin.itb
===================================================================
RCS file: /cvs/src/src/gdb/gdbtk/library/regwin.itb,v
retrieving revision 1.23
diff -p -r1.23 regwin.itb
*** library/regwin.itb 17 Dec 2002 20:29:12 -0000 1.23
--- library/regwin.itb 19 Dec 2002 01:08:47 -0000
*************** itcl::body RegWin::_update_register {rn}
*** 901,914 ****
# ------------------------------------------------------------------
itcl::body RegWin::_select_group {} {
set gr [$itk_component(frame).opt get]
if {$gr == ""} {
return
}
set _group $gr
# Clear gdb's change list
catch {gdb_reginfo changed}
- update ""
- _layout_table
}
--- 901,930 ----
# ------------------------------------------------------------------
itcl::body RegWin::_select_group {} {
set gr [$itk_component(frame).opt get]
+ debug $gr
if {$gr == ""} {
return
}
+
+ # Change anything on the old change list back to normal
+ foreach r $_change_list {
+ if {[info exists _cell($r)] && $_cell($r) != "hidden"} {
+ $itk_component(table) tag cell normal $_cell($r)
+ }
+ }
+
set _group $gr
+ _layout_table
+
+ # highlight changed registers if they still exist in the new group
+ foreach r $_change_list {
+ if {[info exists _cell($r)] && $_cell($r) != "hidden" && $_data($_cell($r)) != ""} {
+ $itk_component(table) tag cell highlight $_cell($r)
+ }
+ }
+
# Clear gdb's change list
catch {gdb_reginfo changed}
}
*************** itcl::body RegWin::update {event} {
*** 999,1005 ****
# Change anything on the old change list back to normal
foreach r $_change_list {
! if {$_cell($r) != "hidden"} {
$itk_component(table) tag cell normal $_cell($r)
}
}
--- 1015,1021 ----
# Change anything on the old change list back to normal
foreach r $_change_list {
! if {[info exists _cell($r)] && $_cell($r) != "hidden"} {
$itk_component(table) tag cell normal $_cell($r)
}
}