diff --git a/gui/source.py b/gui/source.py index b09a8b5..5b48260 100644 --- a/gui/source.py +++ b/gui/source.py @@ -43,14 +43,11 @@ class BufferManager: @in_gtk_thread def _set_marks(self, buffer, line_set): - buffer.all_marks = {} iter = buffer.get_iter_at_line(0) while True: line = iter.get_line() + 1 if line in line_set: - buffer.all_marks[line] = buffer.create_source_mark(None, - 'executable', - iter) + buffer.create_source_mark(None, 'executable', iter) if not iter.forward_line(): break @@ -106,16 +103,14 @@ class BufferManager: [fullname, line] = sal if fullname in self.buffers: buffer = self.buffers[fullname] - if line in buffer.all_marks: - if buffer.all_marks[line].category is not category: - iter = buffer.get_iter_at_line(line - 1) - buffer.all_marks[line] = buffer.create_source_mark(None, - category, - iter) + iter = buffer.get_iter_at_line(line - 1) + buffer.remove_source_marks(iter, iter) + buffer.create_source_mark(None, category, iter) @in_gdb_thread def _location_changed(self, loc, is_set): - gui.startup.send_to_gtk(self.update_breakpoint_location) + gui.startup.send_to_gtk(lambda: self.update_breakpoint_location(loc, + is_set)) buffer_manager = BufferManager()