summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Koslowski <koslowski@kit.edu>2017-01-06 22:01:06 +0100
committerSebastian Koslowski <koslowski@kit.edu>2017-01-06 22:01:06 +0100
commit0208d0c38ead050a6b35ddf31a806725ffd5e005 (patch)
treef4594d38e8e186c7d674146d462c4236d22173bb
parent10e7e270773a258b0356bafc3a5bbc4853f38a4c (diff)
grc: gtk3: fix canvas extent after zooming
-rw-r--r--grc/gui/DrawingArea.py11
-rw-r--r--grc/gui/Utils.py2
-rw-r--r--grc/gui/canvas/block.py10
-rw-r--r--grc/gui/canvas/drawable.py2
-rw-r--r--grc/gui/canvas/flowgraph.py13
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)