X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fpspp-sheet-view.c;h=3723464a7898ef7d08acf6a8da4e67176ceb9697;hb=a3478d7d960ef11374f5d8fd6760d6219a392d1e;hp=489452993a243b78fa5abcd1917f805d530bc0a9;hpb=a3ab6f380980e3fbe039e5af1a46c9e189432d05;p=pspp diff --git a/src/ui/gui/pspp-sheet-view.c b/src/ui/gui/pspp-sheet-view.c index 489452993a..3723464a78 100644 --- a/src/ui/gui/pspp-sheet-view.c +++ b/src/ui/gui/pspp-sheet-view.c @@ -40,6 +40,7 @@ #include #include #include +#include #include #include "ui/gui/psppire-marshal.h" @@ -355,8 +356,10 @@ static void pspp_sheet_view_search_position_func (PsppSheetView *t static void pspp_sheet_view_search_disable_popdown (GtkEntry *entry, GtkMenu *menu, gpointer data); +#if GTK3_TRANSITION static void pspp_sheet_view_search_preedit_changed (GtkIMContext *im_context, PsppSheetView *tree_view); +#endif static void pspp_sheet_view_search_activate (GtkEntry *entry, PsppSheetView *tree_view); static gboolean pspp_sheet_view_real_search_enable_popdown(gpointer data); @@ -1459,10 +1462,12 @@ pspp_sheet_view_realize (GtkWidget *widget) GdkWindowAttr attributes; gint attributes_mask; GtkAllocation allocation; + GtkAllocation old_allocation; gtk_widget_set_realized (widget, TRUE); gtk_widget_get_allocation (widget, &allocation); + gtk_widget_get_allocation (widget, &old_allocation); /* Make the main, clipping window */ attributes.window_type = GDK_WINDOW_CHILD; @@ -1472,10 +1477,9 @@ pspp_sheet_view_realize (GtkWidget *widget) 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), @@ -1485,8 +1489,8 @@ pspp_sheet_view_realize (GtkWidget *widget) /* Make the window for the tree */ attributes.x = 0; attributes.y = TREE_VIEW_HEADER_HEIGHT (tree_view); - attributes.width = MAX (tree_view->priv->width, widget->allocation.width); - attributes.height = widget->allocation.height; + attributes.width = MAX (tree_view->priv->width, old_allocation.width); + attributes.height = old_allocation.height; attributes.event_mask = (GDK_EXPOSURE_MASK | GDK_SCROLL_MASK | GDK_POINTER_MOTION_MASK | @@ -1503,7 +1507,7 @@ pspp_sheet_view_realize (GtkWidget *widget) /* Make the column header window */ attributes.x = 0; attributes.y = 0; - attributes.width = MAX (tree_view->priv->width, widget->allocation.width); + attributes.width = MAX (tree_view->priv->width, old_allocation.width); attributes.height = tree_view->priv->header_height; attributes.event_mask = (GDK_EXPOSURE_MASK | GDK_SCROLL_MASK | @@ -1518,8 +1522,8 @@ pspp_sheet_view_realize (GtkWidget *widget) gdk_window_set_user_data (tree_view->priv->header_window, widget); /* Add them all up. */ - widget->style = gtk_style_attach (gtk_widget_get_style (widget), gtk_widget_get_window (widget)); - gdk_window_set_back_pixmap (gtk_widget_get_window (widget), NULL, FALSE); + gtk_widget_set_style (widget, + gtk_style_attach (gtk_widget_get_style (widget), gtk_widget_get_window (widget))); gdk_window_set_background (tree_view->priv->bin_window, >k_widget_get_style (widget)->base[gtk_widget_get_state (widget)]); gtk_style_set_background (gtk_widget_get_style (widget), tree_view->priv->header_window, GTK_STATE_NORMAL); @@ -2797,6 +2801,7 @@ do_prelight (PsppSheetView *tree_view, } } + static void prelight_or_select (PsppSheetView *tree_view, int node, @@ -3518,14 +3523,16 @@ pspp_sheet_view_update_rubber_band_selection (PsppSheetView *tree_view) tree_view->priv->rubber_band_end_node = end_node; } +#define GDK_RECTANGLE_PTR(X) ((GdkRectangle *)(X)) + static void pspp_sheet_view_update_rubber_band (PsppSheetView *tree_view) { gint x, y; - GdkRectangle old_area; - GdkRectangle new_area; - GdkRectangle common; - GdkRegion *invalid_region; + cairo_rectangle_int_t old_area; + cairo_rectangle_int_t new_area; + cairo_rectangle_int_t common; + cairo_region_t *invalid_region; PsppSheetViewColumn *column; old_area.x = MIN (tree_view->priv->press_start_x, tree_view->priv->rubber_band_x); @@ -3543,13 +3550,14 @@ pspp_sheet_view_update_rubber_band (PsppSheetView *tree_view) new_area.width = ABS (x - tree_view->priv->press_start_x) + 1; new_area.height = ABS (y - tree_view->priv->press_start_y) + 1; - invalid_region = gdk_region_rectangle (&old_area); - gdk_region_union_with_rect (invalid_region, &new_area); + invalid_region = cairo_region_create_rectangle (&old_area); + cairo_region_union_rectangle (invalid_region, &new_area); - gdk_rectangle_intersect (&old_area, &new_area, &common); + gdk_rectangle_intersect (GDK_RECTANGLE_PTR (&old_area), + GDK_RECTANGLE_PTR (&new_area), GDK_RECTANGLE_PTR (&common)); if (common.width > 2 && common.height > 2) { - GdkRegion *common_region; + cairo_region_t *common_region; /* make sure the border is invalidated */ common.x += 1; @@ -3557,15 +3565,26 @@ pspp_sheet_view_update_rubber_band (PsppSheetView *tree_view) common.width -= 2; common.height -= 2; - common_region = gdk_region_rectangle (&common); + common_region = cairo_region_create_rectangle (&common); - gdk_region_subtract (invalid_region, common_region); - gdk_region_destroy (common_region); + cairo_region_subtract (invalid_region, common_region); + cairo_region_destroy (common_region); } - gdk_window_invalidate_region (tree_view->priv->bin_window, invalid_region, TRUE); +#if GTK_MAJOR_VERSION == 3 + gdk_window_invalidate_region (tree_view->priv->bin_window, invalid_region, TRUE); +#else + { + cairo_rectangle_int_t extents; + GdkRegion *ereg; + cairo_region_get_extents (invalid_region, &extents); + ereg = gdk_region_rectangle (GDK_RECTANGLE_PTR (&extents)); + gdk_window_invalidate_region (tree_view->priv->bin_window, ereg, TRUE); + gdk_region_destroy (ereg); + } +#endif - gdk_region_destroy (invalid_region); + cairo_region_destroy (invalid_region); tree_view->priv->rubber_band_x = x; tree_view->priv->rubber_band_y = y; @@ -3581,6 +3600,7 @@ pspp_sheet_view_update_rubber_band (PsppSheetView *tree_view) 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) @@ -3588,6 +3608,7 @@ pspp_sheet_view_paint_rubber_band (PsppSheetView *tree_view, cairo_t *cr; GdkRectangle rect; GdkRectangle rubber_rect; + GtkStyle *style; return; rubber_rect.x = MIN (tree_view->priv->press_start_x, tree_view->priv->rubber_band_x); @@ -3601,10 +3622,11 @@ pspp_sheet_view_paint_rubber_band (PsppSheetView *tree_view, cr = gdk_cairo_create (tree_view->priv->bin_window); cairo_set_line_width (cr, 1.0); + style = gtk_widget_get_style (GTK_WIDGET (tree_view)); cairo_set_source_rgba (cr, - GTK_WIDGET (tree_view)->style->fg[GTK_STATE_NORMAL].red / 65535., - GTK_WIDGET (tree_view)->style->fg[GTK_STATE_NORMAL].green / 65535., - GTK_WIDGET (tree_view)->style->fg[GTK_STATE_NORMAL].blue / 65535., + style->fg[GTK_STATE_NORMAL].red / 65535., + style->fg[GTK_STATE_NORMAL].green / 65535., + style->fg[GTK_STATE_NORMAL].blue / 65535., .25); gdk_cairo_rectangle (cr, &rect); @@ -3612,9 +3634,9 @@ pspp_sheet_view_paint_rubber_band (PsppSheetView *tree_view, cairo_paint (cr); cairo_set_source_rgb (cr, - GTK_WIDGET (tree_view)->style->fg[GTK_STATE_NORMAL].red / 65535., - GTK_WIDGET (tree_view)->style->fg[GTK_STATE_NORMAL].green / 65535., - GTK_WIDGET (tree_view)->style->fg[GTK_STATE_NORMAL].blue / 65535.); + style->fg[GTK_STATE_NORMAL].red / 65535., + style->fg[GTK_STATE_NORMAL].green / 65535., + style->fg[GTK_STATE_NORMAL].blue / 65535.); cairo_rectangle (cr, rubber_rect.x + 0.5, rubber_rect.y + 0.5, @@ -3623,6 +3645,8 @@ pspp_sheet_view_paint_rubber_band (PsppSheetView *tree_view, cairo_destroy (cr); } +#endif + static gboolean pspp_sheet_view_motion_bin_window (GtkWidget *widget, @@ -3724,10 +3748,11 @@ invalidate_empty_focus (PsppSheetView *tree_view) * 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; @@ -3740,20 +3765,20 @@ draw_empty_focus (PsppSheetView *tree_view, GdkRectangle *clip_area) 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; @@ -3777,26 +3802,12 @@ pspp_sheet_view_draw_vertical_grid_lines (PsppSheetView *tree_view, 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); } } @@ -3839,6 +3850,15 @@ pspp_sheet_view_bin_expose (GtkWidget *widget, 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); @@ -3852,17 +3872,19 @@ pspp_sheet_view_bin_expose (GtkWidget *widget, 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; @@ -3880,7 +3902,7 @@ pspp_sheet_view_bin_expose (GtkWidget *widget, event->window, gtk_widget_get_state (widget), GTK_SHADOW_NONE, - &event->area, + &Zarea, widget, "cell_even", 0, tree_view->priv->height, @@ -3962,7 +3984,7 @@ pspp_sheet_view_bin_expose (GtkWidget *widget, 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; @@ -4013,12 +4035,14 @@ pspp_sheet_view_bin_expose (GtkWidget *widget, 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; @@ -4068,11 +4092,13 @@ pspp_sheet_view_bin_expose (GtkWidget *widget, 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, @@ -4152,7 +4178,7 @@ pspp_sheet_view_bin_expose (GtkWidget *widget, event->window, state, GTK_SHADOW_NONE, - &event->area, + &Zarea, widget, new_detail, background_area.x, @@ -4166,7 +4192,7 @@ pspp_sheet_view_bin_expose (GtkWidget *widget, event->window, state, GTK_SHADOW_NONE, - &event->area, + &Zarea, widget, detail, background_area.x, @@ -4177,7 +4203,6 @@ pspp_sheet_view_bin_expose (GtkWidget *widget, 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); @@ -4196,7 +4221,7 @@ pspp_sheet_view_bin_expose (GtkWidget *widget, #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, @@ -4212,14 +4237,12 @@ pspp_sheet_view_bin_expose (GtkWidget *widget, #endif } cairo_stroke (cr); - cairo_destroy (cr); } _pspp_sheet_view_column_cell_render (column, - event->window, + cr, &background_area, &cell_area, - &event->area, flags); if (node == cursor && has_special_cell && @@ -4229,28 +4252,27 @@ pspp_sheet_view_bin_expose (GtkWidget *widget, (column == tree_view->priv->edited_column))) { _pspp_sheet_view_column_cell_draw_focus (column, - event->window, + cr, &background_area, &cell_area, - &event->area, 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); } @@ -4286,7 +4308,7 @@ pspp_sheet_view_bin_expose (GtkWidget *widget, 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" ) @@ -4299,7 +4321,7 @@ pspp_sheet_view_bin_expose (GtkWidget *widget, 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) @@ -4354,7 +4376,7 @@ pspp_sheet_view_bin_expose (GtkWidget *widget, 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" ) @@ -4365,7 +4387,7 @@ pspp_sheet_view_bin_expose (GtkWidget *widget, gtk_paint_focus (gtk_widget_get_style (widget), tree_view->priv->bin_window, focus_rect_state, - &event->area, + &Zarea, widget, "treeview", 0, tmp_y, @@ -4390,12 +4412,13 @@ pspp_sheet_view_bin_expose (GtkWidget *widget, } 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; @@ -4410,6 +4433,7 @@ done: g_free (rectangles); } +#endif if (cursor_path) gtk_tree_path_free (cursor_path); @@ -4425,6 +4449,7 @@ pspp_sheet_view_expose (GtkWidget *widget, 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) { @@ -4487,10 +4512,10 @@ pspp_sheet_view_expose (GtkWidget *widget, 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) { @@ -6134,10 +6159,12 @@ pspp_sheet_view_maybe_begin_dragging_row (PsppSheetView *tree_view, } + static void pspp_sheet_view_drag_begin (GtkWidget *widget, GdkDragContext *context) { +#if GTK3_TRANSITION PsppSheetView *tree_view; GtkTreePath *path = NULL; gint cell_x, cell_y; @@ -6175,8 +6202,10 @@ pspp_sheet_view_drag_begin (GtkWidget *widget, g_object_unref (row_pix); gtk_tree_path_free (path); +#endif } + static void pspp_sheet_view_drag_end (GtkWidget *widget, GdkDragContext *context) @@ -6905,7 +6934,6 @@ pspp_sheet_view_style_set (GtkWidget *widget, if (gtk_widget_get_realized (widget)) { - gdk_window_set_back_pixmap (gtk_widget_get_window (widget), NULL, FALSE); gdk_window_set_background (tree_view->priv->bin_window, >k_widget_get_style (widget)->base[gtk_widget_get_state (widget)]); gtk_style_set_background (gtk_widget_get_style (widget), tree_view->priv->header_window, GTK_STATE_NORMAL); pspp_sheet_view_set_grid_lines (tree_view, tree_view->priv->grid_lines); @@ -7673,9 +7701,8 @@ _pspp_sheet_view_column_start_drag (PsppSheetView *tree_view, 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, @@ -7752,12 +7779,14 @@ _pspp_sheet_view_queue_draw_node (PsppSheetView *tree_view, const GdkRectangle *clip_rect) { GdkRectangle rect; + GtkAllocation allocation; if (!gtk_widget_get_realized (GTK_WIDGET (tree_view))) return; + gtk_widget_get_allocation (GTK_WIDGET (tree_view), &allocation); rect.x = 0; - rect.width = MAX (tree_view->priv->width, GTK_WIDGET (tree_view)->allocation.width); + rect.width = MAX (tree_view->priv->width, allocation.width); rect.y = BACKGROUND_FIRST_PIXEL (tree_view, node); rect.height = ROW_HEIGHT (tree_view); @@ -8658,10 +8687,14 @@ pspp_sheet_view_ensure_interactive_directory (PsppSheetView *tree_view) g_signal_connect (tree_view->priv->search_entry, "activate", G_CALLBACK (pspp_sheet_view_search_activate), tree_view); + +#if GTK3_TRANSITION g_signal_connect (GTK_ENTRY (tree_view->priv->search_entry)->im_context, "preedit-changed", G_CALLBACK (pspp_sheet_view_search_preedit_changed), tree_view); +#endif + gtk_container_add (GTK_CONTAINER (vbox), tree_view->priv->search_entry); @@ -8815,7 +8848,8 @@ adjust_allocation_recurse (GtkWidget *widget, gpointer data) { ScrollData *scroll_data = data; - + GtkAllocation allocation; + gtk_widget_get_allocation (widget, &allocation); /* Need to really size allocate instead of just poking * into widget->allocation if the widget is not realized. * FIXME someone figure out why this was. @@ -8824,7 +8858,7 @@ adjust_allocation_recurse (GtkWidget *widget, { if (gtk_widget_get_visible (widget)) { - GdkRectangle tmp_rectangle = widget->allocation; + GdkRectangle tmp_rectangle = allocation; tmp_rectangle.x += scroll_data->dx; tmp_rectangle.y += scroll_data->dy; @@ -8835,8 +8869,8 @@ adjust_allocation_recurse (GtkWidget *widget, { if (ALLOCATION_WINDOW (widget) == scroll_data->window) { - widget->allocation.x += scroll_data->dx; - widget->allocation.y += scroll_data->dy; + allocation.x += scroll_data->dx; + allocation.y += scroll_data->dy; if (GTK_IS_CONTAINER (widget)) gtk_container_forall (GTK_CONTAINER (widget), @@ -9248,9 +9282,12 @@ pspp_sheet_view_set_headers_visible (PsppSheetView *tree_view, gint x, y; GList *list; PsppSheetViewColumn *column; + GtkAllocation allocation; g_return_if_fail (PSPP_IS_SHEET_VIEW (tree_view)); + gtk_widget_get_allocation (GTK_WIDGET (tree_view), &allocation); + headers_visible = !! headers_visible; if (PSPP_SHEET_VIEW_FLAG_SET (tree_view, PSPP_SHEET_VIEW_HEADERS_VISIBLE) == headers_visible) @@ -9266,7 +9303,8 @@ pspp_sheet_view_set_headers_visible (PsppSheetView *tree_view, gdk_window_get_position (tree_view->priv->bin_window, &x, &y); if (headers_visible) { - gdk_window_move_resize (tree_view->priv->bin_window, x, y + TREE_VIEW_HEADER_HEIGHT (tree_view), tree_view->priv->width, GTK_WIDGET (tree_view)->allocation.height - + TREE_VIEW_HEADER_HEIGHT (tree_view)); + gdk_window_move_resize (tree_view->priv->bin_window, x, y + TREE_VIEW_HEADER_HEIGHT (tree_view), + tree_view->priv->width, allocation.height - + TREE_VIEW_HEADER_HEIGHT (tree_view)); if (gtk_widget_get_mapped (GTK_WIDGET (tree_view))) pspp_sheet_view_map_buttons (tree_view); @@ -9285,8 +9323,8 @@ pspp_sheet_view_set_headers_visible (PsppSheetView *tree_view, } } - gtk_adjustment_set_page_size (tree_view->priv->vadjustment, GTK_WIDGET (tree_view)->allocation.height - TREE_VIEW_HEADER_HEIGHT (tree_view)); - gtk_adjustment_set_page_increment (tree_view->priv->vadjustment, (GTK_WIDGET (tree_view)->allocation.height - TREE_VIEW_HEADER_HEIGHT (tree_view)) / 2); + gtk_adjustment_set_page_size (tree_view->priv->vadjustment, allocation.height - TREE_VIEW_HEADER_HEIGHT (tree_view)); + gtk_adjustment_set_page_increment (tree_view->priv->vadjustment, (allocation.height - TREE_VIEW_HEADER_HEIGHT (tree_view)) / 2); gtk_adjustment_set_lower (tree_view->priv->vadjustment, 0); gtk_adjustment_set_upper (tree_view->priv->vadjustment, tree_view->priv->height); gtk_adjustment_changed (tree_view->priv->vadjustment); @@ -11280,7 +11318,7 @@ pspp_sheet_view_get_dest_row_at_pos (PsppSheetView *tree_view, } - +#if GTK3_TRANSITION /* KEEP IN SYNC WITH PSPP_SHEET_VIEW_BIN_EXPOSE */ /** * pspp_sheet_view_create_row_drag_icon: @@ -11403,7 +11441,7 @@ pspp_sheet_view_create_row_drag_icon (PsppSheetView *tree_view, return drawable; } - +#endif /** * pspp_sheet_view_set_destroy_count_func: @@ -11794,6 +11832,7 @@ pspp_sheet_view_search_disable_popdown (GtkEntry *entry, G_CALLBACK (pspp_sheet_view_search_enable_popdown), data); } +#if GTK3_TRANSITION /* Because we're visible but offscreen, we just set a flag in the preedit * callback. */ @@ -11812,6 +11851,7 @@ pspp_sheet_view_search_preedit_changed (GtkIMContext *im_context, } } +#endif static void pspp_sheet_view_search_activate (GtkEntry *entry, @@ -12494,7 +12534,7 @@ pspp_sheet_view_event (GtkWidget *widget, 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"); @@ -12762,8 +12802,8 @@ pspp_sheet_view_state_changed (GtkWidget *widget, if (gtk_widget_get_realized (widget)) { - gdk_window_set_back_pixmap (gtk_widget_get_window (widget), NULL, FALSE); - gdk_window_set_background (tree_view->priv->bin_window, &widget->style->base[gtk_widget_get_state (widget)]); + GtkStyle *style = gtk_widget_get_style (widget); + gdk_window_set_background (tree_view->priv->bin_window, &style->base[gtk_widget_get_state (widget)]); } gtk_widget_queue_draw (widget);