[gimp/gtk3-port: 53/227] app: port to GtkWidget::draw() (incompletely)
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp/gtk3-port: 53/227] app: port to GtkWidget::draw() (incompletely)
- Date: Fri, 26 Apr 2013 21:07:20 +0000 (UTC)
commit f9b855331bd95c7e2c1396dda8c848458848960a
Author: Michael Natterer <mitch gimp org>
Date: Tue Oct 19 20:00:10 2010 +0200
app: port to GtkWidget::draw() (incompletely)
app/display/gimpdisplayshell-callbacks.c | 31 +++++++++++------------------
1 files changed, 12 insertions(+), 19 deletions(-)
---
diff --git a/app/display/gimpdisplayshell-callbacks.c b/app/display/gimpdisplayshell-callbacks.c
index 7f14f11..b93af86 100644
--- a/app/display/gimpdisplayshell-callbacks.c
+++ b/app/display/gimpdisplayshell-callbacks.c
@@ -230,32 +230,25 @@ gimp_display_shell_is_double_buffered (GimpDisplayShell *shell)
}
gboolean
-gimp_display_shell_canvas_expose (GtkWidget *widget,
- GdkEventExpose *eevent,
- GimpDisplayShell *shell)
+gimp_display_shell_canvas_draw (GtkWidget *widget,
+ cairo_t *cr,
+ GimpDisplayShell *shell)
{
/* are we in destruction? */
if (! shell->display || ! gimp_display_get_shell (shell->display))
return TRUE;
/* ignore events on overlays */
- if (eevent->window == gtk_widget_get_window (widget))
+ if (gtk_cairo_should_draw_window (cr, gtk_widget_get_window (widget)))
{
- cairo_t *cr;
-
if (gimp_display_get_image (shell->display))
{
+#if 0
if (gimp_display_shell_is_double_buffered (shell))
gdk_window_begin_paint_region (eevent->window, eevent->region);
+#endif
}
- /* create the cairo_t after enabling double buffering, or we
- * will get the wrong window destination surface
- */
- cr = gdk_cairo_create (gtk_widget_get_window (shell->canvas));
- gdk_cairo_region (cr, eevent->region);
- cairo_clip (cr);
-
if (gimp_display_get_image (shell->display))
{
gimp_display_shell_canvas_draw_image (shell, cr);
@@ -264,29 +257,29 @@ gimp_display_shell_canvas_expose (GtkWidget *widget,
{
gimp_display_shell_canvas_draw_drop_zone (shell, cr);
}
-
- cairo_destroy (cr);
}
return FALSE;
}
gboolean
-gimp_display_shell_canvas_expose_after (GtkWidget *widget,
- GdkEventExpose *eevent,
- GimpDisplayShell *shell)
+gimp_display_shell_canvas_draw_after (GtkWidget *widget,
+ cairo_t *cr,
+ GimpDisplayShell *shell)
{
/* are we in destruction? */
if (! shell->display || ! gimp_display_get_shell (shell->display))
return TRUE;
/* ignore events on overlays */
- if (eevent->window == gtk_widget_get_window (widget))
+ if (gtk_cairo_should_draw_window (cr, gtk_widget_get_window (widget)))
{
if (gimp_display_get_image (shell->display))
{
+#if 0
if (gimp_display_shell_is_double_buffered (shell))
gdk_window_end_paint (eevent->window);
+#endif
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]