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