зеркало из https://github.com/mozilla/gecko-dev.git
bug 1320860 consider textview root node background in addition to text node for -moz-appearance:textfield-multiline r=stransky+263117
This is necessary for GTK versions > 3.18 because windows no longer clear their backgrounds since https://git.gnome.org/browse/gtk+/commit/?id=580ea227a6bb19ad6c6d4766b3a36dbad24583f3 and Ambiance for 3.20 has a transparent background for the "text" window. See bug 1324262. MozReview-Commit-ID: 7HCCwfOv0LP --HG-- extra : rebase_source : 3f4311bb976b3b7c6f17702688437c20395a4454
This commit is contained in:
Родитель
939f661d39
Коммит
510b23699f
|
@ -870,7 +870,7 @@ moz_gtk_entry_paint(cairo_t *cr, GdkRectangle* rect,
|
|||
}
|
||||
|
||||
static gint
|
||||
moz_gtk_text_view_paint(cairo_t *cr, GdkRectangle* rect,
|
||||
moz_gtk_text_view_paint(cairo_t *cr, GdkRectangle* aRect,
|
||||
GtkWidgetState* state,
|
||||
GtkTextDirection direction)
|
||||
{
|
||||
|
@ -878,26 +878,24 @@ moz_gtk_text_view_paint(cairo_t *cr, GdkRectangle* rect,
|
|||
|
||||
GtkStyleContext* style_frame =
|
||||
ClaimStyleContext(MOZ_GTK_SCROLLED_WINDOW, direction, state_flags);
|
||||
gtk_render_frame(style_frame, cr, rect->x, rect->y, rect->width, rect->height);
|
||||
gtk_render_frame(style_frame, cr,
|
||||
aRect->x, aRect->y, aRect->width, aRect->height);
|
||||
|
||||
GdkRectangle rect = *aRect;
|
||||
InsetByBorderPadding(&rect, style_frame);
|
||||
|
||||
GtkBorder border, padding;
|
||||
gtk_style_context_get_border(style_frame, state_flags, &border);
|
||||
gtk_style_context_get_padding(style_frame, state_flags, &padding);
|
||||
ReleaseStyleContext(style_frame);
|
||||
|
||||
// There is a separate "text" window, which provides the background behind
|
||||
// the text.
|
||||
GtkStyleContext* style =
|
||||
ClaimStyleContext(MOZ_GTK_TEXT_VIEW_TEXT, direction, state_flags);
|
||||
|
||||
gint xthickness = border.left + padding.left;
|
||||
gint ythickness = border.top + padding.top;
|
||||
|
||||
gtk_render_background(style, cr,
|
||||
rect->x + xthickness, rect->y + ythickness,
|
||||
rect->width - 2 * xthickness,
|
||||
rect->height - 2 * ythickness);
|
||||
|
||||
ClaimStyleContext(MOZ_GTK_TEXT_VIEW, direction, state_flags);
|
||||
gtk_render_background(style, cr, rect.x, rect.y, rect.width, rect.height);
|
||||
ReleaseStyleContext(style);
|
||||
// There is a separate "text" window, which usually provides the
|
||||
// background behind the text. However, this is transparent in Ambiance
|
||||
// for GTK 3.20, in which case the MOZ_GTK_TEXT_VIEW background is
|
||||
// visible.
|
||||
style = ClaimStyleContext(MOZ_GTK_TEXT_VIEW_TEXT, direction, state_flags);
|
||||
gtk_render_background(style, cr, rect.x, rect.y, rect.width, rect.height);
|
||||
ReleaseStyleContext(style);
|
||||
|
||||
return MOZ_GTK_SUCCESS;
|
||||
|
|
Загрузка…
Ссылка в новой задаче