X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fpspp-sheet-view-column.c;h=f105d189c3d6c52ff55cf86789983a1bfaf50ffd;hb=55178119a1dd305b7e0c3254cf5b6ddf6784e34f;hp=cfd8188496af53679eee20b030f620144972eca8;hpb=ae7fc7a617ba529d416d92606166e500a902bea4;p=pspp diff --git a/src/ui/gui/pspp-sheet-view-column.c b/src/ui/gui/pspp-sheet-view-column.c index cfd8188496..f105d189c3 100644 --- a/src/ui/gui/pspp-sheet-view-column.c +++ b/src/ui/gui/pspp-sheet-view-column.c @@ -145,7 +145,7 @@ void pspp_sheet_view_column_update_button (PsppSheetViewColumn /* Button signal handlers */ static gint pspp_sheet_view_column_button_event (GtkWidget *widget, - GdkEvent *event, + GdkEventButton *event, gpointer data); static void pspp_sheet_view_column_button_clicked (GtkWidget *widget, gpointer data); @@ -512,7 +512,6 @@ pspp_sheet_view_column_init (PsppSheetViewColumn *tree_column) tree_column->use_resized_width = FALSE; tree_column->title = g_strdup (""); tree_column->quick_edit = TRUE; - tree_column->need_button = FALSE; } static void @@ -1021,10 +1020,8 @@ pspp_sheet_view_column_create_button (PsppSheetViewColumn *tree_column) g_return_if_fail (PSPP_IS_SHEET_VIEW (tree_view)); g_return_if_fail (tree_column->button == NULL); - gtk_widget_push_composite_child (); tree_column->button = gtk_button_new (); gtk_widget_add_events (tree_column->button, GDK_POINTER_MOTION_MASK); - gtk_widget_pop_composite_child (); /* make sure we own a reference to it as well. */ if (tree_view->priv->header_window) @@ -1049,7 +1046,7 @@ pspp_sheet_view_column_create_button (PsppSheetViewColumn *tree_column) tree_column->alignment = gtk_alignment_new (tree_column->xalign, 0.5, 0.0, 0.0); - hbox = gtk_hbox_new (FALSE, 2); + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2); tree_column->arrow = gtk_arrow_new (GTK_ARROW_DOWN, GTK_SHADOW_IN); if (tree_column->child) @@ -1097,8 +1094,7 @@ pspp_sheet_view_column_update_button (PsppSheetViewColumn *tree_column) model = NULL; /* Create a button if necessary */ - if (tree_column->need_button && - tree_column->visible && + if (tree_column->visible && tree_column->button == NULL && tree_column->tree_view && gtk_widget_get_realized (tree_column->tree_view)) @@ -1212,7 +1208,7 @@ pspp_sheet_view_column_update_button (PsppSheetViewColumn *tree_column) { if (tree_column->visible) { - gtk_widget_show_now (tree_column->button); + gtk_widget_show (tree_column->button); if (tree_column->window) { if (tree_column->resizable) @@ -1258,7 +1254,7 @@ pspp_sheet_view_column_update_button (PsppSheetViewColumn *tree_column) static gint pspp_sheet_view_column_button_event (GtkWidget *widget, - GdkEvent *event, + GdkEventButton *event, gpointer data) { PsppSheetViewColumn *column = (PsppSheetViewColumn *) data; @@ -1270,7 +1266,8 @@ pspp_sheet_view_column_button_event (GtkWidget *widget, ((GdkEventButton *)event)->button == 1) { column->maybe_reordered = TRUE; - gdk_window_get_pointer (gtk_button_get_event_window (GTK_BUTTON (widget)), + gdk_window_get_device_position (gtk_button_get_event_window (GTK_BUTTON (widget)), + event->device, &column->drag_x, &column->drag_y, NULL); @@ -1586,7 +1583,7 @@ _pspp_sheet_view_column_realize_button (PsppSheetViewColumn *column) g_return_if_fail (PSPP_IS_SHEET_VIEW (tree_view)); g_return_if_fail (gtk_widget_get_realized (GTK_WIDGET (tree_view))); g_return_if_fail (tree_view->priv->header_window != NULL); - if (!column->need_button || !column->button) + if (!column->button) return; g_return_if_fail (column->button != NULL); @@ -1619,7 +1616,7 @@ _pspp_sheet_view_column_realize_button (PsppSheetViewColumn *column) pspp_sheet_view_column_update_button (column); - gdk_cursor_unref (attr.cursor); + g_object_unref (attr.cursor); } void @@ -1654,8 +1651,7 @@ _pspp_sheet_view_column_set_tree_view (PsppSheetViewColumn *column, g_assert (column->tree_view == NULL); column->tree_view = GTK_WIDGET (tree_view); - if (column->need_button) - pspp_sheet_view_column_create_button (column); + pspp_sheet_view_column_create_button (column); column->property_changed_signal = g_signal_connect_swapped (tree_view, @@ -3127,7 +3123,6 @@ pspp_sheet_view_column_cell_process_action (PsppSheetViewColumn *tree_column, const GdkRectangle *cell_area, guint flags, gint action, - const GdkRectangle *expose_area, /* RENDER */ GdkRectangle *focus_rectangle, /* FOCUS */ GtkCellEditable **editable_widget, /* EVENT */ GdkEvent *event, /* EVENT */ @@ -3136,7 +3131,6 @@ pspp_sheet_view_column_cell_process_action (PsppSheetViewColumn *tree_column, GList *list; GdkRectangle real_cell_area; GdkRectangle real_background_area; - GdkRectangle real_expose_area = *cell_area; gint depth = 0; gint expand_cell_count = 0; gint full_requested_width = 0; @@ -3592,7 +3586,6 @@ pspp_sheet_view_column_cell_process_action (PsppSheetViewColumn *tree_column, * @window: a #GdkDrawable to draw to * @background_area: entire cell area (including tree expanders and maybe padding on the sides) * @cell_area: area normally rendered by a cell renderer - * @expose_area: area that actually needs updating * @flags: flags that affect rendering * * Renders the cell contained by #tree_column. This is used primarily by the @@ -3603,13 +3596,11 @@ _pspp_sheet_view_column_cell_render (PsppSheetViewColumn *tree_column, cairo_t *cr, const GdkRectangle *background_area, const GdkRectangle *cell_area, - const GdkRectangle *expose_area, guint flags) { g_return_if_fail (PSPP_IS_SHEET_VIEW_COLUMN (tree_column)); g_return_if_fail (background_area != NULL); g_return_if_fail (cell_area != NULL); - g_return_if_fail (expose_area != NULL); pspp_sheet_view_column_cell_process_action (tree_column, cr, @@ -3617,7 +3608,6 @@ _pspp_sheet_view_column_cell_render (PsppSheetViewColumn *tree_column, cell_area, flags, CELL_ACTION_RENDER, - expose_area, NULL, NULL, NULL, NULL); } @@ -3638,7 +3628,7 @@ _pspp_sheet_view_column_cell_event (PsppSheetViewColumn *tree_column, cell_area, flags, CELL_ACTION_EVENT, - NULL, NULL, + NULL, editable_widget, event, path_string); @@ -3656,7 +3646,6 @@ _pspp_sheet_view_column_get_focus_area (PsppSheetViewColumn *tree_column, cell_area, 0, CELL_ACTION_FOCUS, - NULL, focus_area, NULL, NULL, NULL); } @@ -3912,10 +3901,9 @@ _pspp_sheet_view_column_cell_focus (PsppSheetViewColumn *tree_column, void _pspp_sheet_view_column_cell_draw_focus (PsppSheetViewColumn *tree_column, - GdkWindow *window, + cairo_t *cr, const GdkRectangle *background_area, const GdkRectangle *cell_area, - const GdkRectangle *expose_area, guint flags) { gint focus_line_width; @@ -3945,22 +3933,21 @@ _pspp_sheet_view_column_cell_draw_focus (PsppSheetViewColumn *tree_column, { GdkRectangle focus_rectangle; pspp_sheet_view_column_cell_process_action (tree_column, - window, + cr, background_area, cell_area, flags, CELL_ACTION_FOCUS, - expose_area, &focus_rectangle, NULL, NULL, NULL); cell_state = flags & GTK_CELL_RENDERER_SELECTED ? GTK_STATE_SELECTED : (flags & GTK_CELL_RENDERER_PRELIT ? GTK_STATE_PRELIGHT : (flags & GTK_CELL_RENDERER_INSENSITIVE ? GTK_STATE_INSENSITIVE : GTK_STATE_NORMAL)); + gtk_paint_focus (gtk_widget_get_style (GTK_WIDGET (tree_column->tree_view)), - window, + cr, cell_state, - cell_area, tree_column->tree_view, "treeview", focus_rectangle.x, @@ -4405,15 +4392,3 @@ pspp_sheet_view_column_can_focus (PsppSheetViewColumn *tree_column) { return tree_column->reorderable || tree_column->clickable; } - -void -pspp_sheet_view_column_set_need_button (PsppSheetViewColumn *tree_column, - gboolean need_button) -{ - if (tree_column->need_button != need_button) - { - tree_column->need_button = need_button; - pspp_sheet_view_column_update_button (tree_column); - _pspp_sheet_view_column_realize_button (tree_column); - } -}