[gtksourceview/wip/gutter-draw-refactoring: 1/3] gutter: split on_view_draw: get_clip_rectangle()



commit fdf15ed1492032af301bb9456168c0a50efb2c4d
Author: Sébastien Wilmet <swilmet gnome org>
Date:   Sun Nov 23 12:32:21 2014 +0100

    gutter: split on_view_draw: get_clip_rectangle()
    
    on_view_draw() is a quite big and complex function.

 gtksourceview/gtksourcegutter.c |   33 +++++++++++++++++++++------------
 1 files changed, 21 insertions(+), 12 deletions(-)
---
diff --git a/gtksourceview/gtksourcegutter.c b/gtksourceview/gtksourcegutter.c
index c54ff50..1c19f1f 100644
--- a/gtksourceview/gtksourcegutter.c
+++ b/gtksourceview/gtksourcegutter.c
@@ -898,15 +898,33 @@ get_lines (GtkTextView  *text_view,
        return total_height;
 }
 
+/* Returns %TRUE if @clip is set. @clip contains the area that should be drawn. */
+static gboolean
+get_clip_rectangle (GtkSourceGutter *gutter,
+                   GtkSourceView   *view,
+                   cairo_t         *cr,
+                   GdkRectangle    *clip)
+{
+       GdkWindow *window = get_window (gutter);
+
+       if (window == NULL || !gtk_cairo_should_draw_window (cr, window))
+       {
+               return FALSE;
+       }
+
+       gtk_cairo_transform_to_window (cr, GTK_WIDGET (view), window);
+
+       return gdk_cairo_get_clip_rectangle (cr, clip);
+}
+
 static gboolean
 on_view_draw (GtkSourceView   *view,
               cairo_t         *cr,
               GtkSourceGutter *gutter)
 {
-       GdkWindow *window;
+       GdkRectangle clip;
        GtkTextView *text_view;
        GArray *sizes;
-       GdkRectangle clip;
        gint y1, y2;
        GArray *numbers;
        GArray *pixels;
@@ -929,16 +947,7 @@ on_view_draw (GtkSourceView   *view,
        const gchar *class;
        GdkRGBA fg_color;
 
-       window = get_window (gutter);
-
-       if (window == NULL || !gtk_cairo_should_draw_window (cr, window))
-       {
-               return FALSE;
-       }
-
-       gtk_cairo_transform_to_window (cr, GTK_WIDGET (view), window);
-
-       if (!gdk_cairo_get_clip_rectangle (cr, &clip))
+       if (!get_clip_rectangle (gutter, view, cr, &clip))
        {
                return FALSE;
        }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]