summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--grc/src/gui/DrawingArea.py9
-rw-r--r--grc/src/platforms/gui/Block.py2
-rw-r--r--grc/src/platforms/gui/FlowGraph.py3
-rw-r--r--grc/src/platforms/gui/Port.py2
4 files changed, 8 insertions, 8 deletions
diff --git a/grc/src/gui/DrawingArea.py b/grc/src/gui/DrawingArea.py
index feb401978..22edb9093 100644
--- a/grc/src/gui/DrawingArea.py
+++ b/grc/src/gui/DrawingArea.py
@@ -61,6 +61,8 @@ class DrawingArea(gtk.DrawingArea):
self.connect('leave-notify-event', self._handle_focus_event, False)
self.connect('enter-notify-event', self._handle_focus_event, True)
+ def new_pixmap(self, width, height): return gtk.gdk.Pixmap(self.window, width, height, -1)
+
##########################################################################
## Handlers
##########################################################################
@@ -109,8 +111,7 @@ class DrawingArea(gtk.DrawingArea):
Called when the window is resized.
Create a new pixmap for background buffer.
"""
- width, height = self.get_size_request()
- self.pixmap = gtk.gdk.Pixmap(self.window, width, height, -1)
+ self._pixmap = self.new_pixmap(*self.get_size_request())
def _handle_window_expose(self, widget, event):
"""
@@ -118,5 +119,5 @@ class DrawingArea(gtk.DrawingArea):
Double buffering: draw to pixmap, then draw pixmap to window.
"""
gc = self.window.new_gc()
- self._main_window.get_flow_graph().draw(gc, self.pixmap)
- self.window.draw_drawable(gc, self.pixmap, 0, 0, 0, 0, -1, -1)
+ self._main_window.get_flow_graph().draw(gc, self._pixmap)
+ self.window.draw_drawable(gc, self._pixmap, 0, 0, 0, 0, -1, -1)
diff --git a/grc/src/platforms/gui/Block.py b/grc/src/platforms/gui/Block.py
index 4aa35bf03..b574892d3 100644
--- a/grc/src/platforms/gui/Block.py
+++ b/grc/src/platforms/gui/Block.py
@@ -146,7 +146,7 @@ class Block(Element):
width = self.label_width
height = self.label_height
#setup the pixmap
- pixmap = gtk.gdk.Pixmap(self.get_parent().get_window(), width, height, -1)
+ pixmap = self.get_parent().new_pixmap(width, height)
gc = pixmap.new_gc()
gc.foreground = self.bg_color
pixmap.draw_rectangle(gc, True, 0, 0, width, height)
diff --git a/grc/src/platforms/gui/FlowGraph.py b/grc/src/platforms/gui/FlowGraph.py
index 82b45dc03..7e2330669 100644
--- a/grc/src/platforms/gui/FlowGraph.py
+++ b/grc/src/platforms/gui/FlowGraph.py
@@ -63,10 +63,9 @@ class FlowGraph(Element):
def queue_draw(self): self.get_drawing_area().queue_draw()
def get_size(self): return self.get_drawing_area().get_size_request()
def set_size(self, *args): self.get_drawing_area().set_size_request(*args)
- def get_window(self): return self.get_drawing_area().window
- def get_pixmap(self): return self.get_drawing_area().pixmap
def get_scroll_pane(self): return self.drawing_area.get_parent()
def get_ctrl_mask(self): return self.drawing_area.ctrl_mask
+ def new_pixmap(self, *args): return self.get_drawing_area().new_pixmap(*args)
def add_new_block(self, key, coor=None):
"""
diff --git a/grc/src/platforms/gui/Port.py b/grc/src/platforms/gui/Port.py
index 3aec6e4a7..a763e406d 100644
--- a/grc/src/platforms/gui/Port.py
+++ b/grc/src/platforms/gui/Port.py
@@ -91,7 +91,7 @@ class Port(Element):
self.w, self.h = layout.get_pixel_size()
self.W, self.H = 2*PORT_LABEL_PADDING+self.w, 2*PORT_LABEL_PADDING+self.h
#create the pixmap
- pixmap = gtk.gdk.Pixmap(self.get_parent().get_parent().get_window(), self.w, self.h, -1)
+ pixmap = self.get_parent().get_parent().new_pixmap(self.w, self.h)
gc = pixmap.new_gc()
gc.foreground = self.BG_color
pixmap.draw_rectangle(gc, True, 0, 0, self.w, self.h)