[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 03/17] pspp-sheet-view: Improve scrolling performance.
From: |
Ben Pfaff |
Subject: |
[PATCH 03/17] pspp-sheet-view: Improve scrolling performance. |
Date: |
Sun, 22 Apr 2012 11:12:21 -0700 |
Drawing dashed lines is very slow, at least on my computer. This commit
changes them to solid, which makes scrolling in a large sheet feel much,
much more responsive on my system.
---
src/ui/gui/pspp-sheet-view.c | 39 ++++-----------------------------------
1 files changed, 4 insertions(+), 35 deletions(-)
diff --git a/src/ui/gui/pspp-sheet-view.c b/src/ui/gui/pspp-sheet-view.c
index b358466..0948ccb 100644
--- a/src/ui/gui/pspp-sheet-view.c
+++ b/src/ui/gui/pspp-sheet-view.c
@@ -187,10 +187,6 @@ static gboolean pspp_sheet_view_button_release
(GtkWidget *widget,
GdkEventButton *event);
static gboolean pspp_sheet_view_grab_broken (GtkWidget
*widget,
GdkEventGrabBroken *event);
-#if 0
-static gboolean pspp_sheet_view_configure (GtkWidget
*widget,
- GdkEventConfigure *event);
-#endif
static void pspp_sheet_view_set_focus_child (GtkContainer
*container,
GtkWidget *child);
@@ -699,13 +695,6 @@ pspp_sheet_view_class_init (PsppSheetViewClass *class)
GTK_PARAM_READABLE));
gtk_widget_class_install_style_property (widget_class,
- g_param_spec_string
("grid-line-pattern",
- P_("Grid line
pattern"),
- P_("Dash
pattern used to draw the tree view grid lines"),
- "\1\1",
-
GTK_PARAM_READABLE));
-
- gtk_widget_class_install_style_property (widget_class,
g_param_spec_string
("tree-line-pattern",
P_("Tree line
pattern"),
P_("Dash
pattern used to draw the tree view lines"),
@@ -2516,20 +2505,6 @@ pspp_sheet_view_grab_broken (GtkWidget *widget,
return TRUE;
}
-#if 0
-static gboolean
-pspp_sheet_view_configure (GtkWidget *widget,
- GdkEventConfigure *event)
-{
- PsppSheetView *tree_view;
-
- tree_view = PSPP_SHEET_VIEW (widget);
- tree_view->priv->search_position_func (tree_view,
tree_view->priv->search_window);
-
- return FALSE;
-}
-#endif
-
/* GtkWidget::motion_event function set.
*/
@@ -3486,11 +3461,14 @@ pspp_sheet_view_draw_grid_lines (PsppSheetView
*tree_view,
GList *list = tree_view->priv->columns;
gint i = 0;
gint current_x = 0;
+ gint height;
if (tree_view->priv->grid_lines != PSPP_SHEET_VIEW_GRID_LINES_VERTICAL
&& tree_view->priv->grid_lines != PSPP_SHEET_VIEW_GRID_LINES_BOTH)
return;
+ gdk_drawable_get_size (event->window, NULL, &height);
+
/* Only draw the lines for visible rows and columns */
for (list = tree_view->priv->columns; list; list = list->next, i++)
{
@@ -3508,7 +3486,7 @@ pspp_sheet_view_draw_grid_lines (PsppSheetView
*tree_view,
gdk_draw_line (event->window,
tree_view->priv->grid_line_gc,
current_x - 1, 0,
- current_x - 1, tree_view->priv->height);
+ current_x - 1, height);
}
}
@@ -11881,22 +11859,13 @@ pspp_sheet_view_set_grid_lines (PsppSheetView
*tree_view,
!priv->grid_line_gc)
{
gint line_width;
- gint8 *dash_list;
gtk_widget_style_get (widget,
"grid-line-width", &line_width,
- "grid-line-pattern", (gchar *)&dash_list,
NULL);
priv->grid_line_gc = gdk_gc_new (widget->window);
gdk_gc_copy (priv->grid_line_gc, widget->style->black_gc);
-
- gdk_gc_set_line_attributes (priv->grid_line_gc, line_width,
- GDK_LINE_ON_OFF_DASH,
- GDK_CAP_BUTT, GDK_JOIN_MITER);
- gdk_gc_set_dashes (priv->grid_line_gc, 0, dash_list, 2);
-
- g_free (dash_list);
}
}
--
1.7.2.5
- [PATCH 00/17] Implement PsppSheetView, Ben Pfaff, 2012/04/22
- [PATCH 04/17] pspp-sheet-view: Fix visual artifacts for sheet views > 65535 pixels wide., Ben Pfaff, 2012/04/22
- [PATCH 03/17] pspp-sheet-view: Improve scrolling performance.,
Ben Pfaff <=
- [PATCH 05/17] pspp-sheet-view: Fix rendering moving cursor left or right with keyboard., Ben Pfaff, 2012/04/22
- [PATCH 06/17] pspp-sheet-view-column: Add support for tooltips on columns., Ben Pfaff, 2012/04/22
- [PATCH 07/17] pspp-sheet-view: Edit cells on the first click by default., Ben Pfaff, 2012/04/22
- [PATCH 09/17] pspp-sheet-view: Start editing upon button release, not press., Ben Pfaff, 2012/04/22
- [PATCH 10/17] pspp-sheet-view: Add "special-cells" property to speed drawing many columns., Ben Pfaff, 2012/04/22
- [PATCH 13/17] pspp-sheet-view: Improve look of sheet when there are few columns., Ben Pfaff, 2012/04/22
- [PATCH 11/17] pspp-widget-facade: New code to measure and render some GTK+ widgets., Ben Pfaff, 2012/04/22