OSDN Git Service

2002-12-18 Martin M. Hunt <hunt@redhat.com>
authorhunt <hunt>
Thu, 19 Dec 2002 01:09:08 +0000 (01:09 +0000)
committerhunt <hunt>
Thu, 19 Dec 2002 01:09:08 +0000 (01:09 +0000)
* 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.

gdb/gdbtk/ChangeLog
gdb/gdbtk/library/regwin.itb

index bb0bbc8..b4e5071 100644 (file)
@@ -1,3 +1,11 @@
+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.
+
 2002-12-17  Martin M. Hunt  <hunt@redhat.com>
 
        * library/interface.tcl (gdbtk_tcl_fputs_target_err):
index 0cb1962..d68fd4e 100644 (file)
@@ -901,14 +901,30 @@ itcl::body RegWin::_update_register {rn} {
 # ------------------------------------------------------------------
 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}
-  update ""
-  _layout_table
 }
 
 
@@ -999,7 +1015,7 @@ itcl::body RegWin::update {event} {
 
   # Change anything on the old change list back to normal
   foreach r $_change_list {
-    if {$_cell($r) != "hidden"} {
+    if {[info exists _cell($r)] && $_cell($r) != "hidden"} {
       $itk_component(table) tag cell normal $_cell($r)
     }
   }