diff options
author | Sebastian Koslowski <koslowski@kit.edu> | 2017-01-06 22:01:06 +0100 |
---|---|---|
committer | Sebastian Koslowski <koslowski@kit.edu> | 2017-01-06 22:01:06 +0100 |
commit | 0208d0c38ead050a6b35ddf31a806725ffd5e005 (patch) | |
tree | f4594d38e8e186c7d674146d462c4236d22173bb | |
parent | 10e7e270773a258b0356bafc3a5bbc4853f38a4c (diff) |
grc: gtk3: fix canvas extent after zooming
-rw-r--r-- | grc/gui/DrawingArea.py | 11 | ||||
-rw-r--r-- | grc/gui/Utils.py | 2 | ||||
-rw-r--r-- | grc/gui/canvas/block.py | 10 | ||||
-rw-r--r-- | grc/gui/canvas/drawable.py | 2 | ||||
-rw-r--r-- | grc/gui/canvas/flowgraph.py | 13 |
5 files changed, 19 insertions, 19 deletions
diff --git a/grc/gui/DrawingArea.py b/grc/gui/DrawingArea.py index cad813a876..746666c287 100644 --- a/grc/gui/DrawingArea.py +++ b/grc/gui/DrawingArea.py @@ -102,6 +102,7 @@ class DrawingArea(Gtk.DrawingArea): if zoom_factor != self.zoom_factor: self.zoom_factor = zoom_factor + self._update_size() self.queue_draw() return True @@ -155,12 +156,15 @@ class DrawingArea(Gtk.DrawingArea): coordinate=self._translate_event_coords(event), ) + def _update_size(self): + w, h = self._flow_graph.extent[2:] + self.set_size_request(w * self.zoom_factor + 100, h * self.zoom_factor + 100) + def _auto_scroll(self, event): x, y = event.x, event.y scrollbox = self.get_parent().get_parent() - w, h = self._flow_graph.get_max_coords(initial=(x, y)) - self.set_size_request(w + 100, h + 100) + self._update_size() def scroll(pos, adj): """scroll if we moved near the border""" @@ -182,8 +186,7 @@ class DrawingArea(Gtk.DrawingArea): Update the flowgraph, which calls new pixmap. """ self._flow_graph.update() - w, h = self._flow_graph.get_max_coords() - self.set_size_request(w + 100, h + 100) + self._update_size() def draw(self, widget, cr): width = widget.get_allocated_width() diff --git a/grc/gui/Utils.py b/grc/gui/Utils.py index 38fde80465..97c648c0a8 100644 --- a/grc/gui/Utils.py +++ b/grc/gui/Utils.py @@ -114,7 +114,7 @@ def make_screenshot(flow_graph, file_path, transparent_bg=False): if not file_path: return - x_min, y_min, x_max, y_max = flow_graph.extend + x_min, y_min, x_max, y_max = flow_graph.extent padding = Constants.CANVAS_GRID_SIZE width = x_max - x_min + 2 * padding height = y_max - y_min + 2 * padding diff --git a/grc/gui/canvas/block.py b/grc/gui/canvas/block.py index fc8a533397..182e29d197 100644 --- a/grc/gui/canvas/block.py +++ b/grc/gui/canvas/block.py @@ -315,14 +315,14 @@ class Block(CoreBlock, Drawable): cr.restore() @property - def extend(self): - extend = Drawable.extend.fget(self) + def extent(self): + extent = Drawable.extent.fget(self) x, y = self.coordinate for port in self.active_ports(): - extend = (min_or_max(xy, offset + p_xy) for offset, min_or_max, xy, p_xy in zip( - (x, y, x, y), (min, min, max, max), extend, port.extend + extent = (min_or_max(xy, offset + p_xy) for offset, min_or_max, xy, p_xy in zip( + (x, y, x, y), (min, min, max, max), extent, port.extent )) - return tuple(extend) + return tuple(extent) ############################################## # Controller Modify diff --git a/grc/gui/canvas/drawable.py b/grc/gui/canvas/drawable.py index d1a6f42667..12f88c27e8 100644 --- a/grc/gui/canvas/drawable.py +++ b/grc/gui/canvas/drawable.py @@ -169,7 +169,7 @@ class Drawable(object): return self @property - def extend(self): + def extent(self): x_min, y_min = x_max, y_max = self.coordinate x_min += min(x for x, y in self._bounding_points) y_min += min(y for x, y in self._bounding_points) diff --git a/grc/gui/canvas/flowgraph.py b/grc/gui/canvas/flowgraph.py index 8e72ca30be..ab432b382f 100644 --- a/grc/gui/canvas/flowgraph.py +++ b/grc/gui/canvas/flowgraph.py @@ -743,14 +743,11 @@ class FlowGraph(CoreFlowgraph, Drawable): self.coordinate = (x, y) self.drawing_area.queue_draw() - def get_max_coords(self, initial=(0, 0)): - return tuple(max(i, e) for i, e in zip(initial, self.extend[2:])) - @property - def extend(self): - extend = 100000, 100000, 0, 0 + def extent(self): + extent = 100000, 100000, 0, 0 for element in self._elements_to_draw: - extend = (min_or_max(xy, e_xy) for min_or_max, xy, e_xy in zip( - (min, min, max, max), extend, element.extend + extent = (min_or_max(xy, e_xy) for min_or_max, xy, e_xy in zip( + (min, min, max, max), extent, element.extent )) - return tuple(extend) + return tuple(extent) |