summaryrefslogtreecommitdiff
path: root/libs/canvas/canvas.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2017-07-18 21:34:03 +0200
committerRobin Gareus <robin@gareus.org>2017-07-18 21:34:03 +0200
commit9a0a2a29b53a7d8b74d64039a3a594e54262ef29 (patch)
tree6cc25a73dcd24cde164a599664e7f79b9d35c981 /libs/canvas/canvas.cc
parent8bc7154130674b56b568f4cca11b4a2ba22dbf40 (diff)
Fix NSGLView invalidation
Diffstat (limited to 'libs/canvas/canvas.cc')
-rw-r--r--libs/canvas/canvas.cc25
1 files changed, 24 insertions, 1 deletions
diff --git a/libs/canvas/canvas.cc b/libs/canvas/canvas.cc
index 3c89ebd6e2..8456d44d82 100644
--- a/libs/canvas/canvas.cc
+++ b/libs/canvas/canvas.cc
@@ -873,7 +873,6 @@ GtkCanvas::on_expose_event (GdkEventExpose* ev)
}
#ifdef __APPLE__
if (_nsglview) {
- Gtkmm2ext::nsglview_queue_draw (_nsglview, ev->area.x, ev->area.y, ev->area.width, ev->area.height);
return true;
}
#endif
@@ -1201,6 +1200,30 @@ GtkCanvas::on_unmap ()
#endif
}
+void
+GtkCanvas::queue_draw()
+{
+#ifdef __APPLE__
+ if (_nsglview) {
+ Gtkmm2ext::nsglview_queue_draw (_nsglview, 0, 0, get_width (), get_height ());
+ return;
+ }
+#endif
+ Gtk::Widget::queue_draw ();
+}
+
+void
+GtkCanvas::queue_draw_area (int x, int y, int width, int height)
+{
+#ifdef __APPLE__
+ if (_nsglview) {
+ Gtkmm2ext::nsglview_queue_draw (_nsglview, x, y, width, height);
+ return;
+ }
+#endif
+ Gtk::Widget::queue_draw_area (x, y, width, height);
+}
+
/** Called to request a redraw of our canvas.
* @param area Area to redraw, in window coordinates.
*/