attributes.height = allocation.height;
attributes.wclass = GDK_INPUT_OUTPUT;
attributes.visual = gtk_widget_get_visual (widget);
- attributes.colormap = gtk_widget_get_colormap (widget);
attributes.event_mask = GDK_VISIBILITY_NOTIFY_MASK;
- attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP;
+ attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
gtk_widget_set_window (widget,
gdk_window_new (gtk_widget_get_parent_window (widget),
pspp_sheet_view_update_rubber_band_selection (tree_view);
}
+#if GTK3_TRANSITION
static void
pspp_sheet_view_paint_rubber_band (PsppSheetView *tree_view,
GdkRectangle *area)
cairo_destroy (cr);
}
+#endif
+
static gboolean
pspp_sheet_view_motion_bin_window (GtkWidget *widget,
* is empty.
*/
static void
-draw_empty_focus (PsppSheetView *tree_view, GdkRectangle *clip_area)
+draw_empty_focus (PsppSheetView *tree_view)
{
GtkWidget *widget = GTK_WIDGET (tree_view);
gint w, h;
+ cairo_t *cr = gdk_cairo_create (tree_view->priv->bin_window);
if (!gtk_widget_has_focus (widget))
return;
if (w > 0 && h > 0)
gtk_paint_focus (gtk_widget_get_style (widget),
- tree_view->priv->bin_window,
+ cr,
gtk_widget_get_state (widget),
- clip_area,
widget,
NULL,
1, 1, w, h);
+ cairo_destroy (cr);
}
static void
pspp_sheet_view_draw_vertical_grid_lines (PsppSheetView *tree_view,
- GdkEventExpose *event,
- gint n_visible_columns,
- gint min_y,
- gint max_y)
+ cairo_t *cr,
+ gint n_visible_columns,
+ gint min_y,
+ gint max_y)
{
GList *list = tree_view->priv->columns;
gint i = 0;
current_x += column->width;
- if (current_x - 1 >= event->area.x
- && current_x - 1 < event->area.x + event->area.width)
- {
-#if GTK3_TRANSITION
- gdk_draw_line (event->window,
- tree_view->priv->grid_line_gc[GTK_WIDGET(tree_view)->state],
- current_x - 1, min_y,
- current_x - 1, max_y - min_y);
-#else
-
- cairo_t *cr = gdk_cairo_create (event->window);
- cairo_set_line_width (cr, 1.0);
- cairo_set_line_cap (cr, CAIRO_LINE_CAP_SQUARE);
- cairo_move_to (cr, current_x - 0.5, min_y);
- cairo_line_to (cr, current_x - 0.5 , max_y - min_y);
-
- cairo_stroke (cr);
- cairo_destroy (cr);
-#endif
- }
+ cairo_set_line_width (cr, 1.0);
+ cairo_set_line_cap (cr, CAIRO_LINE_CAP_SQUARE);
+ cairo_move_to (cr, current_x - 0.5, min_y);
+ cairo_line_to (cr, current_x - 0.5 , max_y - min_y);
+
+ cairo_stroke (cr);
}
}
gboolean row_ending_details;
gboolean draw_vgrid_lines, draw_hgrid_lines;
gint min_y, max_y;
+ cairo_t *cr = gdk_cairo_create (event->window);
+ GdkRectangle Zarea;
+ GtkAllocation allocation;
+ gtk_widget_get_allocation (widget, &allocation);
+
+ Zarea.x = 0;
+ Zarea.y = 0;
+ Zarea.width = gdk_window_get_width (event->window);
+ Zarea.height = allocation.height;
rtl = (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL);
if (tree_view->priv->row_count == 0)
{
- draw_empty_focus (tree_view, &event->area);
+ draw_empty_focus (tree_view);
return TRUE;
}
+#if GTK3_TRANSITION
/* clip event->area to the visible area */
- if (event->area.height < 0.5)
+ if (Zarea.height < 0.5)
return TRUE;
+#endif
validate_visible_area (tree_view);
- new_y = TREE_WINDOW_Y_TO_RBTREE_Y (tree_view, event->area.y);
+ new_y = TREE_WINDOW_Y_TO_RBTREE_Y (tree_view, Zarea.y);
if (new_y < 0)
new_y = 0;
event->window,
gtk_widget_get_state (widget),
GTK_SHADOW_NONE,
- &event->area,
+ &Zarea,
widget,
"cell_even",
0, tree_view->priv->height,
cell_offset = 0;
- background_area.y = y_offset + event->area.y;
+ background_area.y = y_offset + Zarea.y;
background_area.height = max_height;
max_y = background_area.y + max_height;
else
selected_column = TRUE;
- if (cell_offset > event->area.x + event->area.width ||
- cell_offset + column->width < event->area.x)
+#if GTK3_TRANSITION
+ if (cell_offset > Zarea.x + Zarea.width ||
+ cell_offset + column->width < Zarea.x)
{
cell_offset += column->width;
continue;
}
+#endif
if (selected && selected_column)
flags |= GTK_CELL_RENDERER_SELECTED;
cell_area.height -= grid_line_width;
}
+#if GTK3_TRANSITION
if (gdk_region_rect_in (event->region, &background_area) == GDK_OVERLAP_RECTANGLE_OUT)
{
cell_offset += column->width;
continue;
}
+#endif
pspp_sheet_view_column_cell_set_cell_data (column,
tree_view->priv->model,
event->window,
state,
GTK_SHADOW_NONE,
- &event->area,
+ &Zarea,
widget,
new_detail,
background_area.x,
event->window,
state,
GTK_SHADOW_NONE,
- &event->area,
+ &Zarea,
widget,
detail,
background_area.x,
if (draw_hgrid_lines)
{
- cairo_t *cr = gdk_cairo_create (event->window);
cairo_set_line_width (cr, 1.0);
cairo_set_line_cap (cr, CAIRO_LINE_CAP_SQUARE);
#endif
}
- if (y_offset + max_height >= event->area.height - 0.5)
+ if (y_offset + max_height >= Zarea.height - 0.5)
{
#if GTK3_TRANSITION
gdk_draw_line (event->window,
#endif
}
cairo_stroke (cr);
- cairo_destroy (cr);
}
_pspp_sheet_view_column_cell_render (column,
- event->window,
+ cr,
&background_area,
&cell_area,
- &event->area,
+ &Zarea,
flags);
if (node == cursor && has_special_cell &&
(column == tree_view->priv->edited_column)))
{
_pspp_sheet_view_column_cell_draw_focus (column,
- event->window,
+ cr,
&background_area,
&cell_area,
- &event->area,
+ &Zarea,
flags);
}
cell_offset += column->width;
}
- if (cell_offset < event->area.x)
+ if (cell_offset < Zarea.x)
{
gtk_paint_flat_box (gtk_widget_get_style (widget),
event->window,
GTK_STATE_NORMAL,
GTK_SHADOW_NONE,
- &event->area,
+ &Zarea,
widget,
"base",
cell_offset,
background_area.y,
- event->area.x - cell_offset,
+ Zarea.x - cell_offset,
background_area.height);
}
gtk_paint_focus (gtk_widget_get_style (widget),
tree_view->priv->bin_window,
gtk_widget_get_state (widget),
- &event->area,
+ &Zarea,
widget,
(is_first
? (is_last ? "treeview-drop-indicator" : "treeview-drop-indicator-left" )
gtk_paint_focus (gtk_widget_get_style (widget),
tree_view->priv->bin_window,
gtk_widget_get_state (widget),
- &event->area,
+ &Zarea,
widget,
"treeview-drop-indicator",
0, BACKGROUND_FIRST_PIXEL (tree_view, node)
gtk_paint_focus (gtk_widget_get_style (widget),
tree_view->priv->bin_window,
focus_rect_state,
- &event->area,
+ &Zarea,
widget,
(is_first
? (is_last ? "treeview" : "treeview-left" )
gtk_paint_focus (gtk_widget_get_style (widget),
tree_view->priv->bin_window,
focus_rect_state,
- &event->area,
+ &Zarea,
widget,
"treeview",
0, tmp_y,
}
while (!done);
}
- while (y_offset < event->area.height);
+ while (y_offset < Zarea.height);
done:
- pspp_sheet_view_draw_vertical_grid_lines (tree_view, event, n_visible_columns,
+ pspp_sheet_view_draw_vertical_grid_lines (tree_view, cr, n_visible_columns,
min_y, max_y);
+#if GTK3_TRANSITION
if (tree_view->priv->rubber_band_status == RUBBER_BAND_ACTIVE)
{
GdkRectangle *rectangles;
g_free (rectangles);
}
+#endif
if (cursor_path)
gtk_tree_path_free (cursor_path);
GdkEventExpose *event)
{
PsppSheetView *tree_view = PSPP_SHEET_VIEW (widget);
+ cairo_t *cr = gdk_cairo_create (event->window);
if (event->window == tree_view->priv->bin_window)
{
n_visible_columns ++;
}
pspp_sheet_view_draw_vertical_grid_lines (tree_view,
- event,
- n_visible_columns,
- event->area.y,
- event->area.height);
+ cr,
+ n_visible_columns,
+ event->area.y,
+ event->area.height);
}
else if (event->window == tree_view->priv->drag_window)
{
attributes.width = column->allocation.width;
attributes.height = column->allocation.height;
attributes.visual = gtk_widget_get_visual (GTK_WIDGET (tree_view));
- attributes.colormap = gtk_widget_get_colormap (GTK_WIDGET (tree_view));
attributes.event_mask = GDK_VISIBILITY_NOTIFY_MASK | GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK;
- attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP;
+ attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL ;
tree_view->priv->drag_window = gdk_window_new (tree_view->priv->bin_window,
&attributes,
gtk_tree_path_free (path);
handled = gtk_binding_set_activate (edit_bindings, keyval, event->state,
- GTK_OBJECT (tree_view));
+ G_OBJECT (tree_view));
if (handled)
g_signal_stop_emission_by_name (widget, "event");