mirror of
https://github.com/ZoiteChat/zoitechat.git
synced 2026-03-17 19:20:20 +00:00
Updated size allocation and draw/paint paths to use GTK3 allocation accessors while preserving GTK2 direct field access under guards.
Switched render-page and input/cursor handling to use gtk_widget_get_window on GTK3 with guarded window usage, keeping GTK2 behavior intact.
This commit is contained in:
@@ -943,14 +943,27 @@ gtk_xtext_size_allocate (GtkWidget * widget, GtkAllocation * allocation)
|
|||||||
if (allocation->width == xtext->buffer->window_width)
|
if (allocation->width == xtext->buffer->window_width)
|
||||||
height_only = TRUE;
|
height_only = TRUE;
|
||||||
|
|
||||||
|
#if HAVE_GTK3
|
||||||
|
gtk_widget_set_allocation (widget, allocation);
|
||||||
|
#else
|
||||||
widget->allocation = *allocation;
|
widget->allocation = *allocation;
|
||||||
|
#endif
|
||||||
if (gtk_widget_get_realized (GTK_WIDGET(widget)))
|
if (gtk_widget_get_realized (GTK_WIDGET(widget)))
|
||||||
{
|
{
|
||||||
xtext->buffer->window_width = allocation->width;
|
xtext->buffer->window_width = allocation->width;
|
||||||
xtext->buffer->window_height = allocation->height;
|
xtext->buffer->window_height = allocation->height;
|
||||||
|
|
||||||
gdk_window_move_resize (widget->window, allocation->x, allocation->y,
|
#if HAVE_GTK3
|
||||||
|
{
|
||||||
|
GdkWindow *window = gtk_widget_get_window (widget);
|
||||||
|
if (window)
|
||||||
|
gdk_window_move_resize (window, allocation->x, allocation->y,
|
||||||
allocation->width, allocation->height);
|
allocation->width, allocation->height);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
gdk_window_move_resize (widget->window, allocation->x, allocation->y,
|
||||||
|
allocation->width, allocation->height);
|
||||||
|
#endif
|
||||||
dontscroll (xtext->buffer); /* force scrolling off */
|
dontscroll (xtext->buffer); /* force scrolling off */
|
||||||
if (!height_only)
|
if (!height_only)
|
||||||
gtk_xtext_calc_lines (xtext->buffer, FALSE);
|
gtk_xtext_calc_lines (xtext->buffer, FALSE);
|
||||||
@@ -1132,11 +1145,17 @@ gtk_xtext_draw_sep (GtkXText * xtext, int y)
|
|||||||
{
|
{
|
||||||
int x, height;
|
int x, height;
|
||||||
cairo_t *cr;
|
cairo_t *cr;
|
||||||
|
GtkAllocation allocation;
|
||||||
|
|
||||||
if (y == -1)
|
if (y == -1)
|
||||||
{
|
{
|
||||||
y = 0;
|
y = 0;
|
||||||
|
#if HAVE_GTK3
|
||||||
|
gtk_widget_get_allocation (GTK_WIDGET (xtext), &allocation);
|
||||||
|
height = allocation.height;
|
||||||
|
#else
|
||||||
height = GTK_WIDGET (xtext)->allocation.height;
|
height = GTK_WIDGET (xtext)->allocation.height;
|
||||||
|
#endif
|
||||||
} else
|
} else
|
||||||
{
|
{
|
||||||
height = xtext->fontsize;
|
height = xtext->fontsize;
|
||||||
@@ -1184,6 +1203,7 @@ gtk_xtext_draw_marker (GtkXText * xtext, textentry * ent, int y)
|
|||||||
{
|
{
|
||||||
int x, width, render_y;
|
int x, width, render_y;
|
||||||
cairo_t *cr;
|
cairo_t *cr;
|
||||||
|
GtkAllocation allocation;
|
||||||
|
|
||||||
if (!xtext->marker) return;
|
if (!xtext->marker) return;
|
||||||
|
|
||||||
@@ -1198,7 +1218,12 @@ gtk_xtext_draw_marker (GtkXText * xtext, textentry * ent, int y)
|
|||||||
else return;
|
else return;
|
||||||
|
|
||||||
x = 0;
|
x = 0;
|
||||||
width = GTK_WIDGET (xtext)->allocation.width;
|
#if HAVE_GTK3
|
||||||
|
gtk_widget_get_allocation (GTK_WIDGET (xtext), &allocation);
|
||||||
|
#else
|
||||||
|
allocation = GTK_WIDGET (xtext)->allocation;
|
||||||
|
#endif
|
||||||
|
width = allocation.width;
|
||||||
|
|
||||||
cr = xtext_create_context (xtext);
|
cr = xtext_create_context (xtext);
|
||||||
xtext_draw_line (xtext, cr, &xtext->marker_gc, x, render_y, x + width, render_y);
|
xtext_draw_line (xtext, cr, &xtext->marker_gc, x, render_y, x + width, render_y);
|
||||||
@@ -1216,10 +1241,17 @@ gtk_xtext_paint (GtkWidget *widget, GdkRectangle *area)
|
|||||||
GtkXText *xtext = GTK_XTEXT (widget);
|
GtkXText *xtext = GTK_XTEXT (widget);
|
||||||
textentry *ent_start, *ent_end;
|
textentry *ent_start, *ent_end;
|
||||||
int x, y;
|
int x, y;
|
||||||
|
GtkAllocation allocation;
|
||||||
|
|
||||||
|
#if HAVE_GTK3
|
||||||
|
gtk_widget_get_allocation (widget, &allocation);
|
||||||
|
#else
|
||||||
|
allocation = widget->allocation;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (area->x == 0 && area->y == 0 &&
|
if (area->x == 0 && area->y == 0 &&
|
||||||
area->height == widget->allocation.height &&
|
area->height == allocation.height &&
|
||||||
area->width == widget->allocation.width)
|
area->width == allocation.width)
|
||||||
{
|
{
|
||||||
dontscroll (xtext->buffer); /* force scrolling off */
|
dontscroll (xtext->buffer); /* force scrolling off */
|
||||||
gtk_xtext_render_page (xtext);
|
gtk_xtext_render_page (xtext);
|
||||||
@@ -1247,14 +1279,14 @@ gtk_xtext_paint (GtkWidget *widget, GdkRectangle *area)
|
|||||||
/* y is the last pixel y location it rendered text at */
|
/* y is the last pixel y location it rendered text at */
|
||||||
y = gtk_xtext_render_ents (xtext, ent_start, ent_end);
|
y = gtk_xtext_render_ents (xtext, ent_start, ent_end);
|
||||||
|
|
||||||
if (y && y < widget->allocation.height && !ent_end->next)
|
if (y && y < allocation.height && !ent_end->next)
|
||||||
{
|
{
|
||||||
GdkRectangle rect;
|
GdkRectangle rect;
|
||||||
|
|
||||||
rect.x = 0;
|
rect.x = 0;
|
||||||
rect.y = y;
|
rect.y = y;
|
||||||
rect.width = widget->allocation.width;
|
rect.width = allocation.width;
|
||||||
rect.height = widget->allocation.height - y;
|
rect.height = allocation.height - y;
|
||||||
|
|
||||||
/* fill any space below the last line that also intersects with
|
/* fill any space below the last line that also intersects with
|
||||||
the exposure rectangle */
|
the exposure rectangle */
|
||||||
@@ -1602,8 +1634,17 @@ gtk_xtext_scrolldown_timeout (GtkXText * xtext)
|
|||||||
int p_y, win_height;
|
int p_y, win_height;
|
||||||
xtext_buffer *buf = xtext->buffer;
|
xtext_buffer *buf = xtext->buffer;
|
||||||
GtkAdjustment *adj = xtext->adj;
|
GtkAdjustment *adj = xtext->adj;
|
||||||
|
#if HAVE_GTK3
|
||||||
|
GdkWindow *window = gtk_widget_get_window (GTK_WIDGET (xtext));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if HAVE_GTK3
|
||||||
|
if (!window)
|
||||||
|
return 0;
|
||||||
|
gtk_xtext_get_pointer (window, NULL, &p_y, NULL);
|
||||||
|
#else
|
||||||
gtk_xtext_get_pointer (GTK_WIDGET (xtext)->window, NULL, &p_y, NULL);
|
gtk_xtext_get_pointer (GTK_WIDGET (xtext)->window, NULL, &p_y, NULL);
|
||||||
|
#endif
|
||||||
win_height = gdk_window_get_height (gtk_widget_get_window (GTK_WIDGET (xtext)));
|
win_height = gdk_window_get_height (gtk_widget_get_window (GTK_WIDGET (xtext)));
|
||||||
|
|
||||||
if (buf->last_ent_end == NULL || /* If context has changed OR */
|
if (buf->last_ent_end == NULL || /* If context has changed OR */
|
||||||
@@ -1636,8 +1677,17 @@ gtk_xtext_scrollup_timeout (GtkXText * xtext)
|
|||||||
xtext_buffer *buf = xtext->buffer;
|
xtext_buffer *buf = xtext->buffer;
|
||||||
GtkAdjustment *adj = xtext->adj;
|
GtkAdjustment *adj = xtext->adj;
|
||||||
int delta_y;
|
int delta_y;
|
||||||
|
#if HAVE_GTK3
|
||||||
|
GdkWindow *window = gtk_widget_get_window (GTK_WIDGET (xtext));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if HAVE_GTK3
|
||||||
|
if (!window)
|
||||||
|
return 0;
|
||||||
|
gtk_xtext_get_pointer (window, NULL, &p_y, NULL);
|
||||||
|
#else
|
||||||
gtk_xtext_get_pointer (GTK_WIDGET (xtext)->window, NULL, &p_y, NULL);
|
gtk_xtext_get_pointer (GTK_WIDGET (xtext)->window, NULL, &p_y, NULL);
|
||||||
|
#endif
|
||||||
|
|
||||||
if (buf->last_ent_start == NULL || /* If context has changed OR */
|
if (buf->last_ent_start == NULL || /* If context has changed OR */
|
||||||
buf->pagetop_ent == NULL || /* pagetop_ent is reset OR */
|
buf->pagetop_ent == NULL || /* pagetop_ent is reset OR */
|
||||||
@@ -1798,6 +1848,9 @@ static gboolean
|
|||||||
gtk_xtext_leave_notify (GtkWidget * widget, GdkEventCrossing * event)
|
gtk_xtext_leave_notify (GtkWidget * widget, GdkEventCrossing * event)
|
||||||
{
|
{
|
||||||
GtkXText *xtext = GTK_XTEXT (widget);
|
GtkXText *xtext = GTK_XTEXT (widget);
|
||||||
|
#if HAVE_GTK3
|
||||||
|
GdkWindow *window = gtk_widget_get_window (widget);
|
||||||
|
#endif
|
||||||
|
|
||||||
if (xtext->cursor_hand)
|
if (xtext->cursor_hand)
|
||||||
{
|
{
|
||||||
@@ -1805,7 +1858,12 @@ gtk_xtext_leave_notify (GtkWidget * widget, GdkEventCrossing * event)
|
|||||||
xtext->hilight_start = -1;
|
xtext->hilight_start = -1;
|
||||||
xtext->hilight_end = -1;
|
xtext->hilight_end = -1;
|
||||||
xtext->cursor_hand = FALSE;
|
xtext->cursor_hand = FALSE;
|
||||||
|
#if HAVE_GTK3
|
||||||
|
if (window)
|
||||||
|
gdk_window_set_cursor (window, 0);
|
||||||
|
#else
|
||||||
gdk_window_set_cursor (widget->window, 0);
|
gdk_window_set_cursor (widget->window, 0);
|
||||||
|
#endif
|
||||||
xtext->hilight_ent = NULL;
|
xtext->hilight_ent = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1815,7 +1873,12 @@ gtk_xtext_leave_notify (GtkWidget * widget, GdkEventCrossing * event)
|
|||||||
xtext->hilight_start = -1;
|
xtext->hilight_start = -1;
|
||||||
xtext->hilight_end = -1;
|
xtext->hilight_end = -1;
|
||||||
xtext->cursor_resize = FALSE;
|
xtext->cursor_resize = FALSE;
|
||||||
|
#if HAVE_GTK3
|
||||||
|
if (window)
|
||||||
|
gdk_window_set_cursor (window, 0);
|
||||||
|
#else
|
||||||
gdk_window_set_cursor (widget->window, 0);
|
gdk_window_set_cursor (widget->window, 0);
|
||||||
|
#endif
|
||||||
xtext->hilight_ent = NULL;
|
xtext->hilight_ent = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1904,12 +1967,24 @@ gtk_xtext_motion_notify (GtkWidget * widget, GdkEventMotion * event)
|
|||||||
int redraw, tmp, x, y, offset, len, line_x;
|
int redraw, tmp, x, y, offset, len, line_x;
|
||||||
textentry *word_ent;
|
textentry *word_ent;
|
||||||
int word_type;
|
int word_type;
|
||||||
|
GdkWindow *window;
|
||||||
|
GtkAllocation allocation;
|
||||||
|
|
||||||
gtk_xtext_get_pointer (widget->window, &x, &y, &mask);
|
#if HAVE_GTK3
|
||||||
|
window = gtk_widget_get_window (widget);
|
||||||
|
gtk_widget_get_allocation (widget, &allocation);
|
||||||
|
#else
|
||||||
|
window = widget->window;
|
||||||
|
allocation = widget->allocation;
|
||||||
|
#endif
|
||||||
|
if (!window)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
gtk_xtext_get_pointer (window, &x, &y, &mask);
|
||||||
|
|
||||||
if (xtext->moving_separator)
|
if (xtext->moving_separator)
|
||||||
{
|
{
|
||||||
if (x < (3 * widget->allocation.width) / 5 && x > 15)
|
if (x < (3 * allocation.width) / 5 && x > 15)
|
||||||
{
|
{
|
||||||
tmp = xtext->buffer->indent;
|
tmp = xtext->buffer->indent;
|
||||||
xtext->buffer->indent = x;
|
xtext->buffer->indent = x;
|
||||||
@@ -1959,8 +2034,7 @@ gtk_xtext_motion_notify (GtkWidget * widget, GdkEventMotion * event)
|
|||||||
{
|
{
|
||||||
if (!xtext->cursor_resize)
|
if (!xtext->cursor_resize)
|
||||||
{
|
{
|
||||||
gdk_window_set_cursor (GTK_WIDGET (xtext)->window,
|
gdk_window_set_cursor (window, xtext->resize_cursor);
|
||||||
xtext->resize_cursor);
|
|
||||||
xtext->cursor_hand = FALSE;
|
xtext->cursor_hand = FALSE;
|
||||||
xtext->cursor_resize = TRUE;
|
xtext->cursor_resize = TRUE;
|
||||||
}
|
}
|
||||||
@@ -1981,8 +2055,7 @@ gtk_xtext_motion_notify (GtkWidget * widget, GdkEventMotion * event)
|
|||||||
{
|
{
|
||||||
if (!xtext->cursor_hand)
|
if (!xtext->cursor_hand)
|
||||||
{
|
{
|
||||||
gdk_window_set_cursor (GTK_WIDGET (xtext)->window,
|
gdk_window_set_cursor (window, xtext->hand_cursor);
|
||||||
xtext->hand_cursor);
|
|
||||||
xtext->cursor_hand = TRUE;
|
xtext->cursor_hand = TRUE;
|
||||||
xtext->cursor_resize = FALSE;
|
xtext->cursor_resize = FALSE;
|
||||||
}
|
}
|
||||||
@@ -2082,12 +2155,19 @@ gtk_xtext_button_release (GtkWidget * widget, GdkEventButton * event)
|
|||||||
GtkXText *xtext = GTK_XTEXT (widget);
|
GtkXText *xtext = GTK_XTEXT (widget);
|
||||||
unsigned char *word;
|
unsigned char *word;
|
||||||
int old;
|
int old;
|
||||||
|
GtkAllocation allocation;
|
||||||
|
|
||||||
|
#if HAVE_GTK3
|
||||||
|
gtk_widget_get_allocation (widget, &allocation);
|
||||||
|
#else
|
||||||
|
allocation = widget->allocation;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (xtext->moving_separator)
|
if (xtext->moving_separator)
|
||||||
{
|
{
|
||||||
xtext->moving_separator = FALSE;
|
xtext->moving_separator = FALSE;
|
||||||
old = xtext->buffer->indent;
|
old = xtext->buffer->indent;
|
||||||
if (event->x < (4 * widget->allocation.width) / 5 && event->x > 15)
|
if (event->x < (4 * allocation.width) / 5 && event->x > 15)
|
||||||
xtext->buffer->indent = event->x;
|
xtext->buffer->indent = event->x;
|
||||||
gtk_xtext_fix_indent (xtext->buffer);
|
gtk_xtext_fix_indent (xtext->buffer);
|
||||||
if (xtext->buffer->indent != old)
|
if (xtext->buffer->indent != old)
|
||||||
@@ -2158,8 +2238,17 @@ gtk_xtext_button_press (GtkWidget * widget, GdkEventButton * event)
|
|||||||
textentry *ent;
|
textentry *ent;
|
||||||
unsigned char *word;
|
unsigned char *word;
|
||||||
int line_x, x, y, offset, len;
|
int line_x, x, y, offset, len;
|
||||||
|
GdkWindow *window;
|
||||||
|
|
||||||
gtk_xtext_get_pointer (widget->window, &x, &y, &mask);
|
#if HAVE_GTK3
|
||||||
|
window = gtk_widget_get_window (widget);
|
||||||
|
#else
|
||||||
|
window = widget->window;
|
||||||
|
#endif
|
||||||
|
if (!window)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
gtk_xtext_get_pointer (window, &x, &y, &mask);
|
||||||
|
|
||||||
if (event->button == 3 || event->button == 2) /* right/middle click */
|
if (event->button == 3 || event->button == 2) /* right/middle click */
|
||||||
{
|
{
|
||||||
@@ -2387,7 +2476,16 @@ gtk_xtext_selection_get (GtkWidget * widget,
|
|||||||
case TARGET_COMPOUND_TEXT:
|
case TARGET_COMPOUND_TEXT:
|
||||||
#ifdef GDK_WINDOWING_X11
|
#ifdef GDK_WINDOWING_X11
|
||||||
{
|
{
|
||||||
GdkDisplay *display = gdk_window_get_display (widget->window);
|
GdkDisplay *display;
|
||||||
|
#if HAVE_GTK3
|
||||||
|
GdkWindow *window = gtk_widget_get_window (widget);
|
||||||
|
|
||||||
|
if (!window)
|
||||||
|
break;
|
||||||
|
display = gdk_window_get_display (window);
|
||||||
|
#else
|
||||||
|
display = gdk_window_get_display (widget->window);
|
||||||
|
#endif
|
||||||
GdkAtom encoding;
|
GdkAtom encoding;
|
||||||
gint format;
|
gint format;
|
||||||
gint new_length;
|
gint new_length;
|
||||||
@@ -2727,6 +2825,9 @@ gtk_xtext_render_flush (GtkXText * xtext, int x, int y, unsigned char *str,
|
|||||||
int dest_x = 0, dest_y = 0;
|
int dest_x = 0, dest_y = 0;
|
||||||
int tile_x = xtext->ts_x;
|
int tile_x = xtext->ts_x;
|
||||||
int tile_y = xtext->ts_y;
|
int tile_y = xtext->ts_y;
|
||||||
|
#if HAVE_GTK3
|
||||||
|
GdkWindow *window = gtk_widget_get_window (GTK_WIDGET (xtext));
|
||||||
|
#endif
|
||||||
|
|
||||||
if (xtext->dont_render || len < 1 || xtext->hidden)
|
if (xtext->dont_render || len < 1 || xtext->hidden)
|
||||||
return 0;
|
return 0;
|
||||||
@@ -2750,8 +2851,15 @@ gtk_xtext_render_flush (GtkXText * xtext, int x, int y, unsigned char *str,
|
|||||||
goto dounder;
|
goto dounder;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if HAVE_GTK3
|
||||||
|
if (!window)
|
||||||
|
return str_width;
|
||||||
|
surface = gdk_window_create_similar_surface (window,
|
||||||
|
CAIRO_CONTENT_COLOR_ALPHA, str_width, xtext->fontsize);
|
||||||
|
#else
|
||||||
surface = gdk_window_create_similar_surface (GTK_WIDGET (xtext)->window,
|
surface = gdk_window_create_similar_surface (GTK_WIDGET (xtext)->window,
|
||||||
CAIRO_CONTENT_COLOR_ALPHA, str_width, xtext->fontsize);
|
CAIRO_CONTENT_COLOR_ALPHA, str_width, xtext->fontsize);
|
||||||
|
#endif
|
||||||
if (surface)
|
if (surface)
|
||||||
{
|
{
|
||||||
dest_x = x;
|
dest_x = x;
|
||||||
@@ -3974,6 +4082,9 @@ gtk_xtext_render_page (GtkXText * xtext)
|
|||||||
int subline;
|
int subline;
|
||||||
int startline = xtext->adj->value;
|
int startline = xtext->adj->value;
|
||||||
int pos, overlap;
|
int pos, overlap;
|
||||||
|
#if HAVE_GTK3
|
||||||
|
GdkWindow *window = gtk_widget_get_window (GTK_WIDGET (xtext));
|
||||||
|
#endif
|
||||||
|
|
||||||
if(!gtk_widget_get_realized(GTK_WIDGET(xtext)))
|
if(!gtk_widget_get_realized(GTK_WIDGET(xtext)))
|
||||||
return;
|
return;
|
||||||
@@ -3981,8 +4092,15 @@ gtk_xtext_render_page (GtkXText * xtext)
|
|||||||
if (xtext->buffer->indent < MARGIN)
|
if (xtext->buffer->indent < MARGIN)
|
||||||
xtext->buffer->indent = MARGIN; /* 2 pixels is our left margin */
|
xtext->buffer->indent = MARGIN; /* 2 pixels is our left margin */
|
||||||
|
|
||||||
|
#if HAVE_GTK3
|
||||||
|
if (!window)
|
||||||
|
return;
|
||||||
|
width = gdk_window_get_width (window);
|
||||||
|
height = gdk_window_get_height (window);
|
||||||
|
#else
|
||||||
width = gdk_window_get_width (GTK_WIDGET (xtext)->window);
|
width = gdk_window_get_width (GTK_WIDGET (xtext)->window);
|
||||||
height = gdk_window_get_height (GTK_WIDGET (xtext)->window);
|
height = gdk_window_get_height (GTK_WIDGET (xtext)->window);
|
||||||
|
#endif
|
||||||
|
|
||||||
if (width < 34 || height < xtext->fontsize || width < xtext->buffer->indent + 32)
|
if (width < 34 || height < xtext->fontsize || width < xtext->buffer->indent + 32)
|
||||||
return;
|
return;
|
||||||
@@ -4028,7 +4146,11 @@ gtk_xtext_render_page (GtkXText * xtext)
|
|||||||
cr = xtext_create_context (xtext);
|
cr = xtext_create_context (xtext);
|
||||||
cairo_save (cr);
|
cairo_save (cr);
|
||||||
cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
|
cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
|
||||||
|
#if HAVE_GTK3
|
||||||
|
surface = xtext_surface_from_window (window);
|
||||||
|
#else
|
||||||
surface = xtext_surface_from_window (GTK_WIDGET (xtext)->window);
|
surface = xtext_surface_from_window (GTK_WIDGET (xtext)->window);
|
||||||
|
#endif
|
||||||
if (!surface)
|
if (!surface)
|
||||||
{
|
{
|
||||||
cairo_restore (cr);
|
cairo_restore (cr);
|
||||||
@@ -4055,7 +4177,11 @@ gtk_xtext_render_page (GtkXText * xtext)
|
|||||||
cr = xtext_create_context (xtext);
|
cr = xtext_create_context (xtext);
|
||||||
cairo_save (cr);
|
cairo_save (cr);
|
||||||
cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
|
cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
|
||||||
|
#if HAVE_GTK3
|
||||||
|
surface = xtext_surface_from_window (window);
|
||||||
|
#else
|
||||||
surface = xtext_surface_from_window (GTK_WIDGET (xtext)->window);
|
surface = xtext_surface_from_window (GTK_WIDGET (xtext)->window);
|
||||||
|
#endif
|
||||||
if (!surface)
|
if (!surface)
|
||||||
{
|
{
|
||||||
cairo_restore (cr);
|
cairo_restore (cr);
|
||||||
|
|||||||
Reference in New Issue
Block a user