54 lines
1.9 KiB
Diff
54 lines
1.9 KiB
Diff
|
# HG changeset patch
|
||
|
# User Martin Stransky <stransky@redhat.com>
|
||
|
# Parent 436686833af095ee3a44f933228ea04890162778
|
||
|
Bug 1143686 - Gtk3 - render scrollbar thumb with margin, r=?karlt
|
||
|
|
||
|
diff --git a/widget/gtk/gtk3drawing.c b/widget/gtk/gtk3drawing.c
|
||
|
--- a/widget/gtk/gtk3drawing.c
|
||
|
+++ b/widget/gtk/gtk3drawing.c
|
||
|
@@ -1225,34 +1225,40 @@ moz_gtk_scrollbar_thumb_paint(GtkThemeWi
|
||
|
cairo_t *cr, GdkRectangle* rect,
|
||
|
GtkWidgetState* state,
|
||
|
GtkTextDirection direction)
|
||
|
{
|
||
|
GtkStateFlags state_flags = GetStateFlagsFromGtkWidgetState(state);
|
||
|
GtkStyleContext* style;
|
||
|
GtkScrollbar *scrollbar;
|
||
|
GtkAdjustment *adj;
|
||
|
+ GtkBorder margin;
|
||
|
|
||
|
ensure_scrollbar_widget();
|
||
|
|
||
|
if (widget == MOZ_GTK_SCROLLBAR_THUMB_HORIZONTAL)
|
||
|
scrollbar = GTK_SCROLLBAR(gHorizScrollbarWidget);
|
||
|
else
|
||
|
scrollbar = GTK_SCROLLBAR(gVertScrollbarWidget);
|
||
|
|
||
|
gtk_widget_set_direction(GTK_WIDGET(scrollbar), direction);
|
||
|
-
|
||
|
+
|
||
|
style = gtk_widget_get_style_context(GTK_WIDGET(scrollbar));
|
||
|
gtk_style_context_save(style);
|
||
|
-
|
||
|
+
|
||
|
gtk_style_context_add_class(style, GTK_STYLE_CLASS_SLIDER);
|
||
|
gtk_style_context_set_state(style, state_flags);
|
||
|
|
||
|
- gtk_render_slider(style, cr, rect->x, rect->y,
|
||
|
- rect->width, rect->height,
|
||
|
+ gtk_style_context_get_margin (style, state_flags, &margin);
|
||
|
+
|
||
|
+ gtk_render_slider(style, cr,
|
||
|
+ rect->x + margin.left,
|
||
|
+ rect->y + margin.top,
|
||
|
+ rect->width - margin.left - margin.right,
|
||
|
+ rect->height - margin.top - margin.bottom,
|
||
|
(widget == MOZ_GTK_SCROLLBAR_THUMB_HORIZONTAL) ?
|
||
|
GTK_ORIENTATION_HORIZONTAL : GTK_ORIENTATION_VERTICAL);
|
||
|
|
||
|
gtk_style_context_restore(style);
|
||
|
|
||
|
return MOZ_GTK_SUCCESS;
|
||
|
}
|
||
|
|