54 lines
1.7 KiB
Diff
54 lines
1.7 KiB
Diff
|
diff --git a/widget/gtk/gtk3drawing.c b/widget/gtk/gtk3drawing.c
|
||
|
--- a/widget/gtk/gtk3drawing.c
|
||
|
+++ b/widget/gtk/gtk3drawing.c
|
||
|
@@ -72,16 +72,19 @@ static gboolean is_initialized;
|
||
|
#define ARROW_DOWN G_PI
|
||
|
#define ARROW_RIGHT G_PI_2
|
||
|
#define ARROW_LEFT (G_PI+G_PI_2)
|
||
|
|
||
|
#if !GTK_CHECK_VERSION(3,14,0)
|
||
|
#define GTK_STATE_FLAG_CHECKED (1 << 11)
|
||
|
#endif
|
||
|
|
||
|
+// See Bug 1160154 for details
|
||
|
+#define MAX_WIDGET_PADDING 6
|
||
|
+
|
||
|
static GtkStateFlags
|
||
|
GetStateFlagsFromGtkWidgetState(GtkWidgetState* state)
|
||
|
{
|
||
|
GtkStateFlags stateFlags = GTK_STATE_FLAG_NORMAL;
|
||
|
|
||
|
if (state->disabled)
|
||
|
stateFlags = GTK_STATE_FLAG_INSENSITIVE;
|
||
|
else {
|
||
|
@@ -2590,22 +2593,22 @@ moz_gtk_add_style_border(GtkStyleContext
|
||
|
}
|
||
|
|
||
|
static void
|
||
|
moz_gtk_add_style_padding(GtkStyleContext* style,
|
||
|
gint* left, gint* top, gint* right, gint* bottom)
|
||
|
{
|
||
|
GtkBorder padding;
|
||
|
|
||
|
- gtk_style_context_get_padding(style, 0, &padding);
|
||
|
-
|
||
|
- *left += padding.left;
|
||
|
- *right += padding.right;
|
||
|
- *top += padding.top;
|
||
|
- *bottom += padding.bottom;
|
||
|
+ gtk_style_context_get_padding(style, 0, &padding);
|
||
|
+
|
||
|
+ *left += (padding.left > MAX_WIDGET_PADDING) ? MAX_WIDGET_PADDING : padding.left;
|
||
|
+ *right += (padding.right > MAX_WIDGET_PADDING) ? MAX_WIDGET_PADDING : padding.right;
|
||
|
+ *top += (padding.top > MAX_WIDGET_PADDING) ? MAX_WIDGET_PADDING : padding.top;
|
||
|
+ *bottom += (padding.bottom > MAX_WIDGET_PADDING) ? MAX_WIDGET_PADDING : padding.bottom;
|
||
|
}
|
||
|
|
||
|
gint
|
||
|
moz_gtk_get_widget_border(GtkThemeWidgetType widget, gint* left, gint* top,
|
||
|
gint* right, gint* bottom, GtkTextDirection direction,
|
||
|
gboolean inhtml)
|
||
|
{
|
||
|
GtkWidget* w;
|
||
|
|