This is the mail archive of the insight@sources.redhat.com mailing list for the Insight project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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)
      }
    }

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]