X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fpsppire-output-view.c;h=ca3f9dc60523d0e775584ef478fe3d5f812acee4;hb=870b099b7272c4440f9df2a0741902f035af3f51;hp=d9597c9b5f04a49708051976f00f1c7c2df6598b;hpb=4c574084d78748618a4add0d7cb65f0d2d252c9a;p=pspp diff --git a/src/ui/gui/psppire-output-view.c b/src/ui/gui/psppire-output-view.c index d9597c9b5f..ca3f9dc605 100644 --- a/src/ui/gui/psppire-output-view.c +++ b/src/ui/gui/psppire-output-view.c @@ -170,7 +170,8 @@ create_drawing_area (struct psppire_output_view *view, if (0) { GdkRGBA green = {0, 1, 0, 1}; - gtk_widget_override_background_color (view->output, GTK_STATE_NORMAL, &green); + gtk_widget_override_background_color (GTK_WIDGET (view->output), + GTK_STATE_NORMAL, &green); GdkRGBA red = {1, 0, 0, 1}; gtk_widget_override_background_color (drawing_area, GTK_STATE_NORMAL, &red); } @@ -191,12 +192,13 @@ static void rerender (struct psppire_output_view *view) { struct output_view_item *item; + GdkWindow *gdkw = gtk_widget_get_window (GTK_WIDGET (view->output)); cairo_t *cr; - if (!view->n_items || !gtk_widget_get_window (GTK_WIDGET (view->output))) + if (!view->n_items || ! gdkw) return; - cr = gdk_cairo_create (gtk_widget_get_window (GTK_WIDGET (view->output))); + cr = gdk_cairo_create (gdkw); if (view->xr == NULL) create_xr (view); view->y = 0; @@ -219,6 +221,10 @@ rerender (struct psppire_output_view *view) xr_rendering_measure (r, &tw, &th); + guint w = gdk_window_get_width (gdkw); + const gint gutter = 5; + gint xpos = (gtk_widget_get_direction (GTK_WIDGET (view->output)) == GTK_TEXT_DIR_RTL) ? w - tw - gutter: gutter; + if (!item->drawing_area) { item->drawing_area = gtk_drawing_area_new (); @@ -229,10 +235,10 @@ rerender (struct psppire_output_view *view) g_object_set_data_full (G_OBJECT (item->drawing_area), "rendering", r, free_rendering); gtk_widget_set_size_request (item->drawing_area, tw, th); - gtk_layout_move (view->output, item->drawing_area, 0, view->y); + gtk_layout_move (view->output, item->drawing_area, xpos, view->y); } - alloc.x = 0; + alloc.x = xpos; alloc.y = view->y; alloc.width = tw; alloc.height = th;