stransky pushed to firefox (f20). "Merge branch 'master' into f20"

notifications at fedoraproject.org notifications at fedoraproject.org
Fri Mar 27 12:15:04 UTC 2015


>From fbebd2da69b7689adc3e33e3ea4c77889c0c8cca Mon Sep 17 00:00:00 2001
From: Richard Hughes <richard at hughsie.com>
Date: Thu, 26 Mar 2015 16:09:24 +0000
Subject: Add an AppData file for the software center


diff --git a/firefox.spec b/firefox.spec
index 8b1eb3d..ec75318 100644
--- a/firefox.spec
+++ b/firefox.spec
@@ -107,7 +107,7 @@
 Summary:        Mozilla Firefox Web browser
 Name:           firefox
 Version:        36.0.4
-Release:        1%{?pre_tag}%{?dist}
+Release:        2%{?pre_tag}%{?dist}
 URL:            http://www.mozilla.org/projects/firefox/
 License:        MPLv1.1 or GPLv2+ or LGPLv2+
 Group:          Applications/Internet
@@ -570,6 +570,46 @@ for s in 16 22 24 32 48 256; do
                $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${s}x${s}/apps/firefox.png
 done
 
+# Register as an application to be visible in the software center
+#
+# NOTE: It would be *awesome* if this file was maintained by the upstream
+# project, translated and installed into the right place during `make install`.
+#
+# See http://www.freedesktop.org/software/appstream/docs/ for more details.
+#
+mkdir -p $RPM_BUILD_ROOT%{_datadir}/appdata
+cat > $RPM_BUILD_ROOT%{_datadir}/appdata/%{name}.appdata.xml <<EOF
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2014 Richard Hughes <richard at hughsie.com> -->
+<!--
+BugReportURL: https://bugzilla.mozilla.org/show_bug.cgi?id=1071061
+SentUpstream: 2014-09-22
+-->
+<application>
+  <id type="desktop">firefox.desktop</id>
+  <metadata_license>CC0-1.0</metadata_license>
+  <description>
+    <p>
+      Bringing together all kinds of awesomeness to make browsing better for you.
+      Get to your favorite sites quickly – even if you don’t remember the URLs.
+      Type your term into the location bar (aka the Awesome Bar) and the autocomplete
+      function will include possible matches from your browsing history, bookmarked
+      sites and open tabs.
+    </p>
+    <!-- FIXME: Needs another couple of paragraphs -->
+  </description>
+  <url type="homepage">http://www.mozilla.org/en-US/</url>
+  <screenshots>
+    <screenshot type="default">https://raw.githubusercontent.com/hughsie/fedora-appstream/master/screenshots-extra/firefox/a.png</screenshot>
+    <screenshot>https://raw.githubusercontent.com/hughsie/fedora-appstream/master/screenshots-extra/firefox/b.png</screenshot>
+    <screenshot>https://raw.githubusercontent.com/hughsie/fedora-appstream/master/screenshots-extra/firefox/c.png</screenshot>
+  </screenshots>
+  <!-- FIXME: change this to an upstream email address for spec updates
+  <updatecontact>someone_who_cares at upstream_project.org</updatecontact>
+   -->
+</application>
+EOF
+
 echo > ../%{name}.lang
 %if %{build_langpacks}
 # Extract langpacks, make any mods needed, repack the langpack, and install it.
@@ -707,6 +747,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
 %doc %{_mandir}/man1/*
 %dir %{_datadir}/mozilla/extensions/%{firefox_app_id}
 %dir %{_libdir}/mozilla/extensions/%{firefox_app_id}
+%{_datadir}/appdata/*.appdata.xml
 %{_datadir}/applications/*.desktop
 %dir %{mozappdir}
 %doc %{mozappdir}/LICENSE
@@ -767,6 +808,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
 #---------------------------------------------------------------------
 
 %changelog
+* Thu Mar 26 2015 Richard Hughes <rhughes at redhat.com> - 36.0.4-2
+- Add an AppData file for the software center
+
 * Sat Mar 21 2015 Martin Stransky <stransky at redhat.com> - 36.0.4-1
 - Update to 36.0.4
 
-- 
cgit v0.10.2


>From 3342822142e9732038265a80a4dea69646f5649b Mon Sep 17 00:00:00 2001
From: Martin Stransky <stransky at anakreon.cz>
Date: Fri, 27 Mar 2015 13:14:16 +0100
Subject: Update to 37.0 Build 2


diff --git a/.gitignore b/.gitignore
index d428054..dd01607 100644
--- a/.gitignore
+++ b/.gitignore
@@ -129,3 +129,5 @@ firefox-3.6.4.source.tar.bz2
 /firefox-langpacks-36.0.3-20150320.tar.xz
 /firefox-36.0.4.source.tar.bz2
 /firefox-langpacks-36.0.4-20150321.tar.xz
+/firefox-langpacks-37.0-20150327.tar.xz
+/firefox-37.0.source.tar.bz2
diff --git a/firefox.spec b/firefox.spec
index ec75318..199b78b 100644
--- a/firefox.spec
+++ b/firefox.spec
@@ -106,14 +106,14 @@
 
 Summary:        Mozilla Firefox Web browser
 Name:           firefox
-Version:        36.0.4
-Release:        2%{?pre_tag}%{?dist}
+Version:        37.0
+Release:        1%{?pre_tag}%{?dist}
 URL:            http://www.mozilla.org/projects/firefox/
 License:        MPLv1.1 or GPLv2+ or LGPLv2+
 Group:          Applications/Internet
 Source0:        ftp://ftp.mozilla.org/pub/firefox/releases/%{version}%{?pre_version}/source/firefox-%{version}%{?pre_version}.source.tar.bz2
 %if %{build_langpacks}
-Source1:        firefox-langpacks-%{version}%{?pre_version}-20150321.tar.xz
+Source1:        firefox-langpacks-%{version}%{?pre_version}-20150327.tar.xz
 %endif
 Source10:       firefox-mozconfig
 Source11:       firefox-mozconfig-branded
@@ -133,7 +133,6 @@ Patch18:        xulrunner-24.0-jemalloc-ppc.patch
 Patch19:        xulrunner-24.0-s390-inlines.patch
 Patch20:        firefox-build-prbool.patch
 Patch21:        firefox-ppc64le.patch
-Patch22:        mozilla-1108834.patch
 Patch23:        mozilla-1005535.patch
 
 # Fedora specific patches
@@ -148,13 +147,8 @@ Patch221:        firefox-fedora-ua.patch
 Patch301:        mozilla-1129859-dictfix2.patch
 
 # Gtk3 upstream patches
-Patch404:        mozilla-1101582.patch
-Patch405:        mozilla-1073117-check.patch
-Patch406:        mozilla-1073117-color.patch
-Patch408:        mozilla-1110211.patch
-Patch409:        mozilla-1073117-entry-button-size.patch
 Patch410:        mozilla-1073117-button-focus.patch
-Patch411:        mozilla-1073117-focus-sizes.patch
+Patch411:        mozilla-1073117-focus.patch
 Patch412:        mozilla-1073117-no-gap-tab.patch
 Patch413:        mozilla-975919-gtk3-hidpi.patch
 Patch414:        mozilla-1143686.patch
@@ -285,7 +279,6 @@ cd %{tarballdir}
 %patch19 -p2 -b .s390-inlines
 %patch20 -p1 -b .prbool
 %patch21 -p2 -b .ppc64le
-%patch22 -p2 -b .1108834
 %patch23 -p1 -b .1005535
 
 %patch3  -p2 -b .arm
@@ -303,13 +296,8 @@ cd %{tarballdir}
 %patch301 -p1 -b .dict-fix
 
 %if %{toolkit_gtk3}
-%patch404 -p1 -b .1101582
-%patch405 -p1 -b .1073117-check
-%patch406 -p1 -b .1073117-color
-%patch408 -p2 -b .1110211
-%patch409 -p1 -b .1073117-entry-button-size
 %patch410 -p1 -b .1073117-button-focus
-%patch411 -p1 -b .1073117-focus-sizes
+%patch411 -p1 -b .1073117-focus
 %patch412 -p1 -b .1073117-no-gap-tab
 %patch413 -p2 -b .975919-gtk3-hidpi
 %patch414 -p1 -b .1143686
@@ -808,6 +796,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
 #---------------------------------------------------------------------
 
 %changelog
+* Fri Mar 27 2015 Martin Stransky <stransky at redhat.com> - 37.0-1
+- Update to 37.0 Build 2
+
 * Thu Mar 26 2015 Richard Hughes <rhughes at redhat.com> - 36.0.4-2
 - Add an AppData file for the software center
 
diff --git a/mozilla-1073117-check.patch b/mozilla-1073117-check.patch
deleted file mode 100644
index eff3b5a..0000000
--- a/mozilla-1073117-check.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-# HG changeset patch
-# Parent cef590a6f94681064fa954890bae6014db819158
-# User Martin Stransky <stransky at redhat.com>
-Bug 1073117 - Add new GTK_STATE_FLAG_CHECKED for checkbox rendering, r=?karlt
-
-diff --git a/widget/gtk/gtk3drawing.c b/widget/gtk/gtk3drawing.c
---- a/widget/gtk/gtk3drawing.c
-+++ b/widget/gtk/gtk3drawing.c
-@@ -59,23 +59,28 @@ static GtkWidget* gExpanderWidget;
- static GtkWidget* gToolbarSeparatorWidget;
- static GtkWidget* gMenuSeparatorWidget;
- static GtkWidget* gHPanedWidget;
- static GtkWidget* gVPanedWidget;
- static GtkWidget* gScrolledWindowWidget;
- 
- static style_prop_t style_prop_func;
- static gboolean have_arrow_scaling;
-+static gboolean checkbox_check_state;
- static gboolean is_initialized;
- 
- #define ARROW_UP      0
- #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
-+
- static GtkStateFlags
- GetStateFlagsFromGtkWidgetState(GtkWidgetState* state)
- {
-     GtkStateFlags stateFlags = GTK_STATE_FLAG_NORMAL;
- 
-     if (state->disabled)
-         stateFlags = GTK_STATE_FLAG_INSENSITIVE;
-     else {    
-@@ -709,17 +714,22 @@ moz_gtk_init()
-     GtkWidgetClass *entry_class;
- 
-     if (is_initialized)
-         return MOZ_GTK_SUCCESS;
- 
-     is_initialized = TRUE;
-     have_arrow_scaling = (gtk_major_version > 2 ||
-                           (gtk_major_version == 2 && gtk_minor_version >= 12));
--
-+    if (gtk_major_version > 3 ||
-+       (gtk_major_version == 3 && gtk_minor_version >= 14))
-+        checkbox_check_state = GTK_STATE_FLAG_CHECKED;
-+    else
-+        checkbox_check_state = GTK_STATE_FLAG_ACTIVE;
-+
-     /* Add style property to GtkEntry.
-      * Adding the style property to the normal GtkEntry class means that it
-      * will work without issues inside GtkComboBox and for Spinbuttons. */
-     entry_class = g_type_class_ref(GTK_TYPE_ENTRY);
- 
-     return MOZ_GTK_SUCCESS;
- }
- 
-@@ -999,20 +1009,20 @@ moz_gtk_toggle_paint(cairo_t *cr, GdkRec
-     focus_width = width + 2 * indicator_spacing;
-     focus_height = height + 2 * indicator_spacing;
-   
-     style = gtk_widget_get_style_context(w);
- 
-     gtk_widget_set_sensitive(w, !state->disabled);
-     gtk_widget_set_direction(w, direction);
-     gtk_style_context_save(style);
--      
-+
-     if (isradio) {
-         gtk_style_context_add_class(style, GTK_STYLE_CLASS_RADIO);
--        gtk_style_context_set_state(style, selected ? GTK_STATE_FLAG_ACTIVE :
-+        gtk_style_context_set_state(style, selected ? checkbox_check_state :
-                                                       GTK_STATE_FLAG_NORMAL);
-         gtk_render_option(style, cr, x, y, width, height);
-         if (state->focused) {
-             gtk_render_focus(style, cr, focus_x, focus_y,
-                             focus_width, focus_height);
-         }
-     }
-     else {
-@@ -1020,17 +1030,17 @@ moz_gtk_toggle_paint(cairo_t *cr, GdkRec
-         * 'indeterminate' type on checkboxes. In GTK, the shadow type
-         * must also be changed for the state to be drawn.
-         */        
-         gtk_style_context_add_class(style, GTK_STYLE_CLASS_CHECK);
-         if (inconsistent) {
-             gtk_style_context_set_state(style, GTK_STATE_FLAG_INCONSISTENT);
-             gtk_toggle_button_set_inconsistent(GTK_TOGGLE_BUTTON(gCheckboxWidget), TRUE);
-         } else if (selected) {
--            gtk_style_context_set_state(style, GTK_STATE_FLAG_ACTIVE);
-+            gtk_style_context_set_state(style, checkbox_check_state);
-         } else {
-             gtk_toggle_button_set_inconsistent(GTK_TOGGLE_BUTTON(gCheckboxWidget), FALSE);
-         }
-         gtk_render_check(style, cr, x, y, width, height);        
-         if (state->focused) {
-             gtk_render_focus(style, cr, 
-                              focus_x, focus_y, focus_width, focus_height);
-         }
-@@ -2583,18 +2593,19 @@ moz_gtk_check_menu_item_paint(cairo_t *c
-     style = gtk_widget_get_style_context(gCheckMenuItemWidget);
-     gtk_style_context_save(style);
-     if (isradio) {
-       gtk_style_context_add_class(style, GTK_STYLE_CLASS_RADIO);
-     } else {
-       gtk_style_context_add_class(style, GTK_STYLE_CLASS_CHECK);
-     }
- 
--    if (checked)
--      state_flags |= GTK_STATE_FLAG_ACTIVE;
-+    if (checked) {
-+      state_flags |= checkbox_check_state;
-+    }
-     
-     gtk_style_context_set_state(style, state_flags);
-     gtk_style_context_get_padding(style, state_flags, &padding);
- 
-     offset = gtk_container_get_border_width(GTK_CONTAINER(gCheckMenuItemWidget)) +
-                                             padding.left + 2;
- 
-     if (direction == GTK_TEXT_DIR_RTL) {
diff --git a/mozilla-1073117-color.patch b/mozilla-1073117-color.patch
deleted file mode 100644
index b3dee3a..0000000
--- a/mozilla-1073117-color.patch
+++ /dev/null
@@ -1,278 +0,0 @@
-# HG changeset patch
-# Parent 18188c19a3c3ec9cd4474de5bd1f5558ec750a36
-# User Martin Stransky <stransky at redhat.com>
-Bug 1073117 - [gtk3] Use GTK_STYLE_CLASS_VIEW style for selected text rendering. r=?karlt
-It also merges some duplicated colors and adds GTK_STATE_FLAG_FOCUSED for selected text.
-
-
-diff --git a/widget/gtk/nsLookAndFeel.cpp b/widget/gtk/nsLookAndFeel.cpp
---- a/widget/gtk/nsLookAndFeel.cpp
-+++ b/widget/gtk/nsLookAndFeel.cpp
-@@ -33,32 +33,30 @@ using mozilla::LookAndFeel;
-                        (int)((c).blue*255), (int)((c).alpha*255)))
- 
- nsLookAndFeel::nsLookAndFeel()
-     : nsXPLookAndFeel(),
- #if (MOZ_WIDGET_GTK == 2)
-       mStyle(nullptr),
- #else
-       mBackgroundStyle(nullptr),
--      mViewStyle(nullptr),
-       mButtonStyle(nullptr),
- #endif
-       mDefaultFontCached(false), mButtonFontCached(false),
-       mFieldFontCached(false), mMenuFontCached(false)
- {
-     Init();    
- }
- 
- nsLookAndFeel::~nsLookAndFeel()
- {
- #if (MOZ_WIDGET_GTK == 2)
-     g_object_unref(mStyle);
- #else
-     g_object_unref(mBackgroundStyle);
--    g_object_unref(mViewStyle);
-     g_object_unref(mButtonStyle);
- #endif
- }
- 
- nsresult
- nsLookAndFeel::NativeGetColor(ColorID aID, nscolor& aColor)
- {
- #if (MOZ_WIDGET_GTK == 3)
-@@ -109,23 +107,29 @@ nsLookAndFeel::NativeGetColor(ColorID aI
-     case eColorID__moz_dialogtext:
-         aColor = sMozWindowText;
-         break;
-     case eColorID_WidgetSelectBackground:
-     case eColorID_TextSelectBackground:
-     case eColorID_IMESelectedRawTextBackground:
-     case eColorID_IMESelectedConvertedTextBackground:
-     case eColorID__moz_dragtargetzone:
--        aColor = sMozWindowSelectedBackground;
-+    case eColorID__moz_cellhighlight:
-+    case eColorID__moz_html_cellhighlight:
-+    case eColorID_highlight: // preference selected item,
-+        aColor = sTextSelectedBackground;
-         break;
-     case eColorID_WidgetSelectForeground:
-     case eColorID_TextSelectForeground:
-     case eColorID_IMESelectedRawTextForeground:
-     case eColorID_IMESelectedConvertedTextForeground:
--        aColor = sMozWindowSelectedText;
-+    case eColorID_highlighttext:
-+    case eColorID__moz_cellhighlighttext:
-+    case eColorID__moz_html_cellhighlighttext:
-+        aColor = sTextSelectedText;
-         break;
- #endif
-     case eColorID_Widget3DHighlight:
-         aColor = NS_RGB(0xa0,0xa0,0xa0);
-         break;
-     case eColorID_Widget3DShadow:
-         aColor = NS_RGB(0x40,0x40,0x40);
-         break;
-@@ -233,29 +237,16 @@ nsLookAndFeel::NativeGetColor(ColorID aI
-         aColor = GDK_RGBA_TO_NS_RGBA(gdk_color);
-         break;
-     case eColorID_graytext: // disabled text in windows, menus, etc.
-     case eColorID_inactivecaptiontext: // text in inactive window caption
-         gtk_style_context_get_color(mBackgroundStyle, 
-                                     GTK_STATE_FLAG_INSENSITIVE, &gdk_color);
-         aColor = GDK_RGBA_TO_NS_RGBA(gdk_color);
-         break;
--    case eColorID_highlight: // preference selected item,
--        // background of selected item
--        gtk_style_context_get_background_color(mViewStyle, 
--                                               GTK_STATE_FLAG_SELECTED, 
--                                               &gdk_color);
--        aColor = GDK_RGBA_TO_NS_RGBA(gdk_color);
--        break;
--    case eColorID_highlighttext:
--        // text of selected item
--        gtk_style_context_get_color(mViewStyle, 
--                                    GTK_STATE_FLAG_SELECTED, &gdk_color);
--        aColor = GDK_RGBA_TO_NS_RGBA(gdk_color);
--        break;
-     case eColorID_inactivecaption:
-         // inactive window caption
-         gtk_style_context_get_background_color(mBackgroundStyle, 
-                                                GTK_STATE_FLAG_INSENSITIVE, 
-                                                &gdk_color);
-         aColor = GDK_RGBA_TO_NS_RGBA(gdk_color);
-         break;
- #endif
-@@ -388,29 +379,16 @@ nsLookAndFeel::NativeGetColor(ColorID aI
-         gtk_style_context_get_background_color(mButtonStyle, 
-                                                GTK_STATE_FLAG_PRELIGHT, 
-                                                &gdk_color);
-         aColor = GDK_RGBA_TO_NS_RGBA(gdk_color);
-         break;
-     case eColorID__moz_buttonhovertext:
-         aColor = sButtonHoverText;
-         break;
--    case eColorID__moz_cellhighlight:
--    case eColorID__moz_html_cellhighlight:
--        gtk_style_context_get_background_color(mViewStyle, 
--                                               GTK_STATE_FLAG_SELECTED, 
--                                               &gdk_color);
--        aColor = GDK_RGBA_TO_NS_RGBA(gdk_color);
--        break;
--    case eColorID__moz_cellhighlighttext:
--    case eColorID__moz_html_cellhighlighttext:
--        gtk_style_context_get_color(mViewStyle, 
--                                    GTK_STATE_FLAG_SELECTED, &gdk_color);
--        aColor = GDK_RGBA_TO_NS_RGBA(gdk_color);
--        break;
- #endif
-     case eColorID__moz_menuhover:
-         aColor = sMenuHover;
-         break;
-     case eColorID__moz_menuhovertext:
-         aColor = sMenuHoverText;
-         break;
-     case eColorID__moz_oddtreerow:
-@@ -962,60 +940,66 @@ nsLookAndFeel::Init()
-     }
- 
-     g_object_unref(menu);
- #else
-     GdkRGBA color;
-     GtkStyleContext *style;
- 
-     // Gtk manages a screen's CSS in the settings object so we
--    // ask Gtk to create it explicitly. Otherwise we may end up 
-+    // ask Gtk to create it explicitly. Otherwise we may end up
-     // with wrong color theme, see Bug 972382
-     (void)gtk_settings_get_for_screen(gdk_screen_get_default());
- 
-     GtkWidgetPath *path = gtk_widget_path_new();
-     gtk_widget_path_append_type(path, GTK_TYPE_WINDOW);
- 
-     mBackgroundStyle = create_context(path);
-     gtk_style_context_add_class(mBackgroundStyle, GTK_STYLE_CLASS_BACKGROUND);
- 
--    mViewStyle = create_context(path);
--    gtk_style_context_add_class(mViewStyle, GTK_STYLE_CLASS_VIEW);
--
-     mButtonStyle = create_context(path);
-     gtk_style_context_add_class(mButtonStyle, GTK_STYLE_CLASS_BUTTON); 
- 
-     // Scrollbar colors
-     style = create_context(path);
-     gtk_style_context_add_class(style, GTK_STYLE_CLASS_SCROLLBAR);
-     gtk_style_context_add_class(style, GTK_STYLE_CLASS_TROUGH);
-     gtk_style_context_get_background_color(style, GTK_STATE_FLAG_NORMAL, &color);
-     sMozScrollbar = GDK_RGBA_TO_NS_RGBA(color);
-     g_object_unref(style);
- 
-     // Text colors
--    gtk_style_context_get_background_color(mViewStyle, GTK_STATE_FLAG_NORMAL, &color);
-+    style = create_context(path);
-+    gtk_style_context_add_class(style, GTK_STYLE_CLASS_VIEW);
-+    gtk_style_context_get_background_color(style, GTK_STATE_FLAG_NORMAL, &color);
-     sMozFieldBackground = GDK_RGBA_TO_NS_RGBA(color);
--    gtk_style_context_get_color(mViewStyle, GTK_STATE_FLAG_NORMAL, &color);
-+    gtk_style_context_get_color(style, GTK_STATE_FLAG_NORMAL, &color);
-     sMozFieldText = GDK_RGBA_TO_NS_RGBA(color);
- 
-+    // Selected text and background
-+    gtk_style_context_get_background_color(style,
-+        static_cast<GtkStateFlags>(GTK_STATE_FLAG_FOCUSED|GTK_STATE_FLAG_SELECTED),
-+        &color);
-+    sTextSelectedBackground = GDK_RGBA_TO_NS_RGBA(color);
-+    gtk_style_context_get_color(style,
-+        static_cast<GtkStateFlags>(GTK_STATE_FLAG_FOCUSED|GTK_STATE_FLAG_SELECTED),
-+        &color);
-+    sTextSelectedText = GDK_RGBA_TO_NS_RGBA(color);
-+    g_object_unref(style);
-+
-     // Window colors
-     style = create_context(path);
-     gtk_style_context_save(style);
-     gtk_style_context_add_class(style, GTK_STYLE_CLASS_BACKGROUND);
-     gtk_style_context_get_background_color(style, GTK_STATE_FLAG_NORMAL, &color);
-     sMozWindowBackground = GDK_RGBA_TO_NS_RGBA(color);
-+
-+    // Text colors
-     gtk_style_context_get_color(style, GTK_STATE_FLAG_NORMAL, &color);
-     sMozWindowText = GDK_RGBA_TO_NS_RGBA(color);
--
--    // Selected text and background
--    gtk_style_context_get_background_color(style, GTK_STATE_FLAG_SELECTED, &color);
--    sMozWindowSelectedBackground = GDK_RGBA_TO_NS_RGBA(color);
--    gtk_style_context_get_color(style, GTK_STATE_FLAG_SELECTED, &color);
--    sMozWindowSelectedText = GDK_RGBA_TO_NS_RGBA(color);
-     gtk_style_context_restore(style);
- 
-     // tooltip foreground and background
-     gtk_style_context_add_class(style, GTK_STYLE_CLASS_TOOLTIP);
-     gtk_style_context_get_background_color(style, GTK_STATE_FLAG_NORMAL, &color);
-     sInfoBackground = GDK_RGBA_TO_NS_RGBA(color);
-     gtk_style_context_get_color(style, GTK_STATE_FLAG_NORMAL, &color);
-     sInfoText = GDK_RGBA_TO_NS_RGBA(color);
-@@ -1251,21 +1235,19 @@ nsLookAndFeel::RefreshImpl()
-     mFieldFontCached = false;
-     mMenuFontCached = false;
- 
- #if (MOZ_WIDGET_GTK == 2)
-     g_object_unref(mStyle);
-     mStyle = nullptr;
- #else
-     g_object_unref(mBackgroundStyle);
--    g_object_unref(mViewStyle);
-     g_object_unref(mButtonStyle);
- 
-     mBackgroundStyle = nullptr;
--    mViewStyle = nullptr;
-     mButtonStyle = nullptr;
- #endif
- 
-     Init();
- }
- 
- bool
- nsLookAndFeel::GetEchoPasswordImpl() {
-diff --git a/widget/gtk/nsLookAndFeel.h b/widget/gtk/nsLookAndFeel.h
---- a/widget/gtk/nsLookAndFeel.h
-+++ b/widget/gtk/nsLookAndFeel.h
-@@ -30,17 +30,16 @@ public:
-     virtual char16_t GetPasswordCharacterImpl();
-     virtual bool GetEchoPasswordImpl();
- 
- protected:
- #if (MOZ_WIDGET_GTK == 2)
-     struct _GtkStyle *mStyle;
- #else
-     struct _GtkStyleContext *mBackgroundStyle;
--    struct _GtkStyleContext *mViewStyle;
-     struct _GtkStyleContext *mButtonStyle;
- #endif
- 
-     // Cached fonts
-     bool mDefaultFontCached;
-     bool mButtonFontCached;
-     bool mFieldFontCached;
-     bool mMenuFontCached;
-@@ -70,18 +69,18 @@ protected:
-     nscolor sOddCellBackground;
-     nscolor sNativeHyperLinkText;
-     nscolor sComboBoxText;
-     nscolor sComboBoxBackground;
-     nscolor sMozFieldText;
-     nscolor sMozFieldBackground;
-     nscolor sMozWindowText;
-     nscolor sMozWindowBackground;
--    nscolor sMozWindowSelectedText;
--    nscolor sMozWindowSelectedBackground;
-+    nscolor sTextSelectedText;
-+    nscolor sTextSelectedBackground;
-     nscolor sMozScrollbar;
-     char16_t sInvisibleCharacter;
-     float   sCaretRatio;
-     bool    sMenuSupportsDrag;
- 
-     void Init();
- };
- 
diff --git a/mozilla-1073117-entry-button-size.patch b/mozilla-1073117-entry-button-size.patch
deleted file mode 100644
index 24c0ac2..0000000
--- a/mozilla-1073117-entry-button-size.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-# HG changeset patch
-# Parent 70de2960aa877d7755ee6f66bf2d4c4c46bfed2c
-# User Martin Stransky <stransky at redhat.com>
-Bug 1073117 - Theme issues with GTK 3.14 - fix gtk button and entry size, r=?karlt
-Theme borders has been removed in Gtk 3.14 so we can't use them to calculate button size.
-Should computed as border + padding. Also update nsNativeThemeGTK::GetWidgetPadding() for that.
-
-diff --git a/widget/gtk/gtk3drawing.c b/widget/gtk/gtk3drawing.c
---- a/widget/gtk/gtk3drawing.c
-+++ b/widget/gtk/gtk3drawing.c
-@@ -2686,25 +2686,23 @@ moz_gtk_get_widget_border(GtkThemeWidget
-         {
-             GtkBorder inner_border;
-             gboolean interior_focus;
-             gint focus_width, focus_pad;
- 
-             ensure_button_widget();
-             *left = *top = *right = *bottom = gtk_container_get_border_width(GTK_CONTAINER(gButtonWidget));
- 
-+            style = gtk_widget_get_style_context(gButtonWidget);
-+            moz_gtk_add_style_border(style, left, top, right, bottom);
-+
-             /* Don't add this padding in HTML, otherwise the buttons will
-                become too big and stuff the layout. */
-             if (!inhtml) {
--                moz_gtk_widget_get_focus(gButtonWidget, &interior_focus, &focus_width, &focus_pad);
--                moz_gtk_button_get_inner_border(gButtonWidget, &inner_border);
--                *left += focus_width + focus_pad + inner_border.left;
--                *right += focus_width + focus_pad + inner_border.right;
--                *top += focus_width + focus_pad + inner_border.top;
--                *bottom += focus_width + focus_pad + inner_border.bottom;
-+                moz_gtk_add_style_padding(style, left, top, right, bottom);
-             }
- 
-             moz_gtk_add_style_border(gtk_widget_get_style_context(gButtonWidget), 
-                                      left, top, right, bottom);
-             return MOZ_GTK_SUCCESS;
-         }
-     case MOZ_GTK_ENTRY:
-         {
-diff --git a/widget/gtk/nsNativeThemeGTK.cpp b/widget/gtk/nsNativeThemeGTK.cpp
---- a/widget/gtk/nsNativeThemeGTK.cpp
-+++ b/widget/gtk/nsNativeThemeGTK.cpp
-@@ -992,16 +992,21 @@ nsNativeThemeGTK::GetWidgetPadding(nsDev
-   switch (aWidgetType) {
-     case NS_THEME_BUTTON_FOCUS:
-     case NS_THEME_TOOLBAR_BUTTON:
-     case NS_THEME_TOOLBAR_DUAL_BUTTON:
-     case NS_THEME_TAB_SCROLLARROW_BACK:
-     case NS_THEME_TAB_SCROLLARROW_FORWARD:
-     case NS_THEME_DROPDOWN_BUTTON:
-     case NS_THEME_TOOLBAR_BUTTON_DROPDOWN:
-+    case NS_THEME_FOCUS_OUTLINE:
-+    case NS_THEME_NUMBER_INPUT:
-+    case NS_THEME_TEXTFIELD:
-+    case NS_THEME_TEXTFIELD_MULTILINE:
-+    case NS_THEME_BUTTON:
-     case NS_THEME_BUTTON_ARROW_UP:
-     case NS_THEME_BUTTON_ARROW_DOWN:
-     case NS_THEME_BUTTON_ARROW_NEXT:
-     case NS_THEME_BUTTON_ARROW_PREVIOUS:
-     case NS_THEME_RANGE_THUMB:
-     // Radios and checkboxes return a fixed size in GetMinimumWidgetSize
-     // and have a meaningful baseline, so they can't have
-     // author-specified padding.
diff --git a/mozilla-1073117-focus-sizes.patch b/mozilla-1073117-focus-sizes.patch
deleted file mode 100644
index 0e0047b..0000000
--- a/mozilla-1073117-focus-sizes.patch
+++ /dev/null
@@ -1,601 +0,0 @@
-# HG changeset patch
-# Parent 900ea94508c5b6e99d40ec7e5d25e0d4ca6cfef8
-# User Martin Stransky <stransky at redhat.com>
-Bug 1073117 - Theme issues with GTK 3.14 - removed obsoleted focus style properties
-and replaced by border and padding. r=?karlt
-
-diff --git a/widget/gtk/gtk2drawing.c b/widget/gtk/gtk2drawing.c
---- a/widget/gtk/gtk2drawing.c
-+++ b/widget/gtk/gtk2drawing.c
-@@ -826,17 +826,17 @@ moz_gtk_get_focus_outline_size(gint* foc
-         *focus_v_width = YTHICKNESS(gEntryWidget->style) + focus_width;
-     } else {
-         *focus_h_width = focus_width;
-         *focus_v_width = focus_width;
-     }
-     return MOZ_GTK_SUCCESS;
- }
- 
--gint
-+static gint
- moz_gtk_widget_get_focus(GtkWidget* widget, gboolean* interior_focus,
-                          gint* focus_width, gint* focus_pad) 
- {
-     gtk_widget_style_get (widget,
-                           "interior-focus", interior_focus,
-                           "focus-line-width", focus_width,
-                           "focus-padding", focus_pad,
-                           NULL);
-@@ -923,17 +923,17 @@ moz_gtk_splitter_get_metrics(gint orient
-         gtk_widget_style_get(gHPanedWidget, "handle_size", size, NULL);
-     } else {
-         ensure_vpaned_widget();
-         gtk_widget_style_get(gVPanedWidget, "handle_size", size, NULL);
-     }
-     return MOZ_GTK_SUCCESS;
- }
- 
--gint
-+static gint
- moz_gtk_button_get_inner_border(GtkWidget* widget, GtkBorder* inner_border)
- {
-     static const GtkBorder default_inner_border = { 1, 1, 1, 1 };
-     GtkBorder *tmp_border;
- 
-     gtk_widget_style_get (widget, "inner-border", &tmp_border, NULL);
- 
-     if (tmp_border) {
-diff --git a/widget/gtk/gtk3drawing.c b/widget/gtk/gtk3drawing.c
---- a/widget/gtk/gtk3drawing.c
-+++ b/widget/gtk/gtk3drawing.c
-@@ -757,47 +757,29 @@ moz_gtk_radio_get_metrics(gint* indicato
-                           NULL);
- 
-     return MOZ_GTK_SUCCESS;
- }
- 
- gint
- moz_gtk_get_focus_outline_size(gint* focus_h_width, gint* focus_v_width)
- {
--    gboolean interior_focus;
-     gint focus_width = 0;
-+    GtkBorder border;
-+    GtkBorder padding;
-+    GtkStyleContext *style;
- 
-     ensure_entry_widget();
--    gtk_widget_style_get(gEntryWidget,
--                         "interior-focus", &interior_focus,
--                         "focus-line-width", &focus_width,
--                         NULL);
--    if (interior_focus) {
--        GtkBorder border;
--        GtkStyleContext *style = gtk_widget_get_style_context(gEntryWidget);
--        gtk_style_context_get_border(style, 0, &border);
--        *focus_h_width = border.left + focus_width;
--        *focus_v_width = border.top + focus_width;
--    } else {
--        *focus_h_width = focus_width;
--        *focus_v_width = focus_width;
--    }
--    return MOZ_GTK_SUCCESS;
--}
--
--gint
--moz_gtk_widget_get_focus(GtkWidget* widget, gboolean* interior_focus,
--                         gint* focus_width, gint* focus_pad) 
--{
--    gtk_widget_style_get (widget,
--                          "interior-focus", interior_focus,
--                          "focus-line-width", focus_width,
--                          "focus-padding", focus_pad,
--                          NULL);
--
-+    style = gtk_widget_get_style_context(gEntryWidget);
-+    gtk_style_context_get(style, 0, "outline-width", &focus_width, NULL);
-+
-+    gtk_style_context_get_border(style, 0, &border);
-+    gtk_style_context_get_padding(style, 0, &padding);
-+    *focus_h_width = border.left + padding.left + focus_width;
-+    *focus_v_width = border.top + padding.top + focus_width;
-     return MOZ_GTK_SUCCESS;
- }
- 
- gint
- moz_gtk_menuitem_get_horizontal_padding(gint* horizontal_padding)
- {
-     ensure_menu_item_widget();
- 
-@@ -875,34 +857,16 @@ moz_gtk_splitter_get_metrics(gint orient
-         gtk_widget_style_get(gHPanedWidget, "handle_size", size, NULL);
-     } else {
-         ensure_vpaned_widget();
-         gtk_widget_style_get(gVPanedWidget, "handle_size", size, NULL);
-     }
-     return MOZ_GTK_SUCCESS;
- }
- 
--gint
--moz_gtk_button_get_inner_border(GtkWidget* widget, GtkBorder* inner_border)
--{
--    static const GtkBorder default_inner_border = { 1, 1, 1, 1 };
--    GtkBorder *tmp_border;
--
--    gtk_widget_style_get (widget, "inner-border", &tmp_border, NULL);
--
--    if (tmp_border) {
--        *inner_border = *tmp_border;
--        gtk_border_free(tmp_border);
--    }
--    else
--        *inner_border = default_inner_border;
--
--    return MOZ_GTK_SUCCESS;
--}
--
- static gint
- moz_gtk_button_paint(cairo_t *cr, GdkRectangle* rect,
-                      GtkWidgetState* state,
-                      GtkReliefStyle relief, GtkWidget* widget,
-                      GtkTextDirection direction)
- {
-     GtkStateFlags state_flags = GetStateFlagsFromGtkWidgetState(state);
-     GtkStyleContext* style = gtk_widget_get_style_context(widget);    
-@@ -1032,43 +996,36 @@ moz_gtk_toggle_paint(cairo_t *cr, GdkRec
- }
- 
- static gint
- calculate_button_inner_rect(GtkWidget* button, GdkRectangle* rect,
-                             GdkRectangle* inner_rect,
-                             GtkTextDirection direction,
-                             gboolean ignore_focus)
- {
--    GtkBorder inner_border;
--    gboolean interior_focus;
--    gint focus_width, focus_pad;
-     GtkStyleContext* style;
-     GtkBorder border;
-+    GtkBorder padding = {0, 0, 0, 0};
- 
-     style = gtk_widget_get_style_context(button);
- 
-+    gtk_style_context_get_border(style, 0, &border);
-+
-     /* This mirrors gtkbutton's child positioning */
--    moz_gtk_button_get_inner_border(button, &inner_border);
--    moz_gtk_widget_get_focus(button, &interior_focus,
--                             &focus_width, &focus_pad);
--
--    if (ignore_focus)
--        focus_width = focus_pad = 0;
--
--    gtk_style_context_get_border(style, 0, &border);
--
--    inner_rect->x = rect->x + border.left + focus_width + focus_pad;
-+    if (!ignore_focus)
-+        gtk_style_context_get_padding(style, 0, &padding);
-+
-+    inner_rect->x = rect->x + border.left;
-     inner_rect->x += direction == GTK_TEXT_DIR_LTR ?
--                        inner_border.left : inner_border.right;
--    inner_rect->y = rect->y + inner_border.top + border.top +
--                    focus_width + focus_pad;
--    inner_rect->width = MAX(1, rect->width - inner_border.left -
--       inner_border.right - (border.left + focus_pad + focus_width) * 2);
--    inner_rect->height = MAX(1, rect->height - inner_border.top -
--       inner_border.bottom - (border.top + focus_pad + focus_width) * 2);
-+                        padding.left : padding.right;
-+    inner_rect->y = rect->y + padding.top + border.top;
-+    inner_rect->width = MAX(1, rect->width - padding.left -
-+       padding.right - border.left * 2);
-+    inner_rect->height = MAX(1, rect->height - padding.top -
-+       padding.bottom - border.top * 2);
- 
-     return MOZ_GTK_SUCCESS;
- }
- 
- 
- static gint
- calculate_arrow_rect(GtkWidget* arrow, GdkRectangle* rect,
-                      GdkRectangle* arrow_rect, GtkTextDirection direction)
-@@ -1427,29 +1384,22 @@ moz_gtk_vpaned_paint(cairo_t *cr, GdkRec
- // See gtk_entry_draw() for reference.
- static gint
- moz_gtk_entry_paint(cairo_t *cr, GdkRectangle* rect,
-                     GtkWidgetState* state,
-                     GtkWidget* widget, GtkTextDirection direction)
- {
-     gint x = rect->x, y = rect->y, width = rect->width, height = rect->height;
-     GtkStyleContext* style;
--    gboolean interior_focus;
--    gint focus_width;
-     int draw_focus_outline_only = state->depressed; // NS_THEME_FOCUS_OUTLINE
- 
-     gtk_widget_set_direction(widget, direction);
- 
-     style = gtk_widget_get_style_context(widget);
- 
--    gtk_widget_style_get(widget,
--                         "interior-focus", &interior_focus,
--                         "focus-line-width", &focus_width,
--                         NULL);
--
-     if (draw_focus_outline_only) {
-         // Inflate the given 'rect' with the focus outline size.
-         gint h, v;
-         moz_gtk_get_focus_outline_size(&h, &v);
-         rect->x -= h;
-         rect->width += 2 * h;
-         rect->y -= v;
-         rect->height += 2 * v;
-@@ -1471,40 +1421,27 @@ moz_gtk_entry_paint(cairo_t *cr, GdkRect
-     /* Now paint the shadow and focus border.
-      * We do like in gtk_entry_draw_frame, we first draw the shadow, a tad
-      * smaller when focused if the focus is not interior, then the focus. */
- 
-     if (state->focused && !state->disabled) {
-         /* This will get us the lit borders that focused textboxes enjoy on
-          * some themes. */
-         gtk_style_context_set_state(style, GTK_STATE_FLAG_FOCUSED);
--        if (!interior_focus) {
--            /* Indent the border a little bit if we have exterior focus 
--               (this is what GTK does to draw native entries) */
--            x += focus_width;
--            y += focus_width;
--            width -= 2 * focus_width;
--            height -= 2 * focus_width;
--        }
-     }
- 
-     if (state->disabled) {
-         gtk_style_context_set_state(style, GTK_STATE_FLAG_INSENSITIVE);
-     }
- 
-     if (!draw_focus_outline_only) {
-         gtk_render_background(style, cr, x, y, width, height);
-     }
-     gtk_render_frame(style, cr, x, y, width, height);
- 
--    if (state->focused && !state->disabled) {
--        if (!interior_focus) {
--            gtk_render_focus(style, cr, rect->x, rect->y, rect->width, rect->height);
--        }
--    }
-     gtk_style_context_restore(style);
- 
-     return MOZ_GTK_SUCCESS;
- }
- 
- static gint 
- moz_gtk_treeview_paint(cairo_t *cr, GdkRectangle* rect,
-                        GtkWidgetState* state,
-@@ -1799,56 +1736,48 @@ moz_gtk_combo_box_entry_button_paint(cai
- static gint
- moz_gtk_container_paint(cairo_t *cr, GdkRectangle* rect,
-                         GtkWidgetState* state, 
-                         gboolean isradio, GtkTextDirection direction)
- {
-     GtkStateFlags state_flags = GetStateFlagsFromGtkWidgetState(state);
-     GtkStyleContext* style;
-     GtkWidget *widget;
--    gboolean interior_focus;
--    gint focus_width, focus_pad;
- 
-     if (isradio) {
-         ensure_radiobutton_widget();
-         widget = gRadiobuttonWidget;
-     } else {
-         ensure_checkbox_widget();
-         widget = gCheckboxWidget;
-     }
-     gtk_widget_set_direction(widget, direction);
- 
-     style = gtk_widget_get_style_context(widget);
-     gtk_style_context_save(style);
--    moz_gtk_widget_get_focus(widget, &interior_focus, &focus_width, &focus_pad);
-     gtk_style_context_set_state(style, state_flags);
-   
-     /* this is for drawing a prelight box */
-     if (state_flags & GTK_STATE_FLAG_PRELIGHT) {
-         gtk_render_background(style, cr,
-                               rect->x, rect->y, rect->width, rect->height);
-     }
-   
--    if (state->focused && !interior_focus) {
--        gtk_render_focus(style, cr,
--                        rect->x, rect->y, rect->width, rect->height);
--    }
-     gtk_style_context_restore(style);
-   
-     return MOZ_GTK_SUCCESS;
- }
- 
- static gint
- moz_gtk_toggle_label_paint(cairo_t *cr, GdkRectangle* rect,
-                            GtkWidgetState* state, 
-                            gboolean isradio, GtkTextDirection direction)
- {
-     GtkStyleContext *style;
-     GtkWidget *widget;
--    gboolean interior_focus;
- 
-     if (!state->focused)
-         return MOZ_GTK_SUCCESS;
- 
-     if (isradio) {
-         ensure_radiobutton_widget();
-         widget = gRadiobuttonWidget;
-     } else {
-@@ -1859,20 +1788,16 @@ moz_gtk_toggle_label_paint(cairo_t *cr, 
-     gtk_style_context_save(style);
-     if (isradio) {
-       gtk_style_context_add_class(style, GTK_STYLE_CLASS_RADIO);
-     } else {
-       gtk_style_context_add_class(style, GTK_STYLE_CLASS_CHECK);
-     }
-     gtk_widget_set_direction(widget, direction);
- 
--    gtk_widget_style_get(widget, "interior-focus", &interior_focus, NULL);
--    if (!interior_focus)
--        return MOZ_GTK_SUCCESS;
--
-     gtk_style_context_set_state(style, GetStateFlagsFromGtkWidgetState(state));
-     gtk_render_focus(style, cr,
-                     rect->x, rect->y, rect->width, rect->height);
-     gtk_style_context_restore(style);
- 
-     return MOZ_GTK_SUCCESS;
- }
- 
-@@ -2661,18 +2586,16 @@ moz_gtk_get_widget_border(GtkThemeWidget
-     GtkWidget* w;
-     GtkStyleContext* style;
-     *left = *top = *right = *bottom = 0;
- 
-     switch (widget) {
-     case MOZ_GTK_BUTTON:
-         {
-             GtkBorder inner_border;
--            gboolean interior_focus;
--            gint focus_width, focus_pad;
- 
-             ensure_button_widget();
-             *left = *top = *right = *bottom = gtk_container_get_border_width(GTK_CONTAINER(gButtonWidget));
- 
-             style = gtk_widget_get_style_context(gButtonWidget);
-             moz_gtk_add_style_border(style, left, top, right, bottom);
- 
-             /* Don't add this padding in HTML, otherwise the buttons will
-@@ -2705,33 +2628,32 @@ moz_gtk_get_widget_border(GtkThemeWidget
-         }
-     case MOZ_GTK_TREE_HEADER_CELL:
-         {
-             /* A Tree Header in GTK is just a different styled button 
-              * It must be placed in a TreeView for getting the correct style
-              * assigned.
-              * That is why the following code is the same as for MOZ_GTK_BUTTON.  
-              * */
--
--            GtkBorder inner_border;
--            gboolean interior_focus;
--            gint focus_width, focus_pad;
-+            gint focus_width;
-+            GtkStyleContext *style;
- 
-             ensure_tree_header_cell_widget();
-             *left = *top = *right = *bottom = gtk_container_get_border_width(GTK_CONTAINER(gTreeHeaderCellWidget));
- 
--            moz_gtk_widget_get_focus(gTreeHeaderCellWidget, &interior_focus, &focus_width, &focus_pad);
--            moz_gtk_button_get_inner_border(gTreeHeaderCellWidget, &inner_border);
--            *left += focus_width + focus_pad + inner_border.left;
--            *right += focus_width + focus_pad + inner_border.right;
--            *top += focus_width + focus_pad + inner_border.top;
--            *bottom += focus_width + focus_pad + inner_border.bottom;
--        
--            moz_gtk_add_style_border(gtk_widget_get_style_context(gTreeHeaderCellWidget), 
--                                     left, top, right, bottom);
-+            style = gtk_widget_get_style_context(gTreeHeaderCellWidget);
-+            gtk_style_context_get(style, 0, "outline-width", &focus_width, NULL);
-+
-+            *left += focus_width;
-+            *right += focus_width;
-+            *top += focus_width;
-+            *bottom += focus_width;
-+
-+            moz_gtk_add_style_border(style, left, top, right, bottom);
-+            moz_gtk_add_style_padding(style, left, top, right, bottom);
-             return MOZ_GTK_SUCCESS;
-         }
-     case MOZ_GTK_TREE_HEADER_SORTARROW:
-         ensure_tree_header_cell_widget();
-         w = gTreeHeaderSortArrowWidget;
-         break;
-     case MOZ_GTK_DROPDOWN_ENTRY:
-         ensure_combo_box_entry_widgets();
-@@ -2741,30 +2663,34 @@ moz_gtk_get_widget_border(GtkThemeWidget
-         ensure_combo_box_entry_widgets();
-         w = gComboBoxEntryButtonWidget;
-         break;
-     case MOZ_GTK_DROPDOWN:
-         {
-             /* We need to account for the arrow on the dropdown, so text
-              * doesn't come too close to the arrow, or in some cases spill
-              * into the arrow. */
--            gboolean ignored_interior_focus, wide_separators;
--            gint focus_width, focus_pad, separator_width;
-+            gboolean wide_separators;
-+            gint focus_width, separator_width;
-             GtkRequisition arrow_req;
-             GtkBorder border;
- 
-             ensure_combo_box_widgets();
- 
-             *left = gtk_container_get_border_width(GTK_CONTAINER(gComboBoxButtonWidget));
- 
-             if (!inhtml) {
--                moz_gtk_widget_get_focus(gComboBoxButtonWidget,
--                                         &ignored_interior_focus,
--                                         &focus_width, &focus_pad);
--                *left += focus_width + focus_pad;
-+                gint focus_width;
-+                GtkBorder focus_pad;
-+                GtkStyleContext *style = gtk_widget_get_style_context(gComboBoxButtonWidget);
-+
-+                gtk_style_context_get(style, 0, "outline-width", &focus_width, NULL);
-+                gtk_style_context_get_padding(style, 0, &focus_pad);
-+
-+                *left += focus_width + focus_pad.left;
-             }
-           
-             style = gtk_widget_get_style_context(gComboBoxButtonWidget);
-             gtk_style_context_get_border(style, 0, &border);
- 
-             *top = *left + border.top;
-             *left += border.left;
- 
-@@ -2818,67 +2744,41 @@ moz_gtk_get_widget_border(GtkThemeWidget
-         break;
-     case MOZ_GTK_FRAME:
-         ensure_frame_widget();
-         w = gFrameWidget;
-         break;
-     case MOZ_GTK_CHECKBUTTON_LABEL:
-     case MOZ_GTK_RADIOBUTTON_LABEL:
-         {
--            gboolean interior_focus;
--            gint focus_width, focus_pad;
--
--            /* If the focus is interior, then the label has a border of
--               (focus_width + focus_pad). */
-             if (widget == MOZ_GTK_CHECKBUTTON_LABEL) {
-                 ensure_checkbox_widget();
--                moz_gtk_widget_get_focus(gCheckboxWidget, &interior_focus,
--                                           &focus_width, &focus_pad);
-+                w = gCheckboxWidget;
-             }
-             else {
-                 ensure_radiobutton_widget();
--                moz_gtk_widget_get_focus(gRadiobuttonWidget, &interior_focus,
--                                        &focus_width, &focus_pad);
-+                w = gRadiobuttonWidget;
-             }
--
--            if (interior_focus)
--                *left = *top = *right = *bottom = (focus_width + focus_pad);
--
-+            moz_gtk_add_style_border(gtk_widget_get_style_context(w), 
-+                                     left, top, right, bottom);
-             return MOZ_GTK_SUCCESS;
-         }
- 
-     case MOZ_GTK_CHECKBUTTON_CONTAINER:
-     case MOZ_GTK_RADIOBUTTON_CONTAINER:
-         {
--            gboolean interior_focus;
--            gint focus_width, focus_pad;
--
--            /* If the focus is _not_ interior, then the container has a border
--               of (focus_width + focus_pad). */
-             if (widget == MOZ_GTK_CHECKBUTTON_CONTAINER) {
-                 ensure_checkbox_widget();
--                moz_gtk_widget_get_focus(gCheckboxWidget, &interior_focus,
--                                           &focus_width, &focus_pad);
-                 w = gCheckboxWidget;
-             } else {
-                 ensure_radiobutton_widget();
--                moz_gtk_widget_get_focus(gRadiobuttonWidget, &interior_focus,
--                                        &focus_width, &focus_pad);
-                 w = gRadiobuttonWidget;
-             }
- 
-             *left = *top = *right = *bottom = gtk_container_get_border_width(GTK_CONTAINER(w));
--
--            if (!interior_focus) {
--                *left += (focus_width + focus_pad);
--                *right += (focus_width + focus_pad);
--                *top += (focus_width + focus_pad);
--                *bottom += (focus_width + focus_pad);
--            }
--
-             return MOZ_GTK_SUCCESS;
-         }
-     case MOZ_GTK_MENUPOPUP:
-         ensure_menu_popup_widget();
-         w = gMenuPopupWidget;
-         break;
-     case MOZ_GTK_MENUITEM:
-     case MOZ_GTK_CHECKMENUITEM:
-diff --git a/widget/gtk/gtkdrawing.h b/widget/gtk/gtkdrawing.h
---- a/widget/gtk/gtkdrawing.h
-+++ b/widget/gtk/gtkdrawing.h
-@@ -288,49 +288,26 @@ moz_gtk_checkbox_get_metrics(gint* indic
-  * indicator_spacing:  [OUT] the spacing between the indicator and its
-  *                     container
-  *
-  * returns:    MOZ_GTK_SUCCESS if there was no error, an error code otherwise
-  */
- gint
- moz_gtk_radio_get_metrics(gint* indicator_size, gint* indicator_spacing);
- 
--/**
-- * Get the inner-border value for a GtkButton widget (button or tree header)
-- * widget:             [IN]  the widget to get the border value for 
-- * inner_border:       [OUT] the inner border
-- *
-- * returns:   MOZ_GTK_SUCCESS if there was no error, an error code otherwise
-- */
--gint
--moz_gtk_button_get_inner_border(GtkWidget* widget, GtkBorder* inner_border);
--
- /** Get the extra size for the focus ring for outline:auto.
-  * widget:             [IN]  the widget to get the focus metrics for    
-  * focus_h_width:      [OUT] the horizontal width
-  * focus_v_width:      [OUT] the vertical width
-  *
-  * returns:    MOZ_GTK_SUCCESS
-  */
- gint
- moz_gtk_get_focus_outline_size(gint* focus_h_width, gint* focus_v_width);
- 
--/** Get the focus metrics for a treeheadercell, button, checkbox, or radio button.
-- * widget:             [IN]  the widget to get the focus metrics for    
-- * interior_focus:     [OUT] whether the focus is drawn around the
-- *                           label (TRUE) or around the whole container (FALSE)
-- * focus_width:        [OUT] the width of the focus line
-- * focus_pad:          [OUT] the padding between the focus line and children
-- *
-- * returns:    MOZ_GTK_SUCCESS if there was no error, an error code otherwise
-- */
--gint
--moz_gtk_widget_get_focus(GtkWidget* widget, gboolean* interior_focus,
--                         gint* focus_width, gint* focus_pad);
--
- /** Get the horizontal padding for the menuitem widget or checkmenuitem widget.
-  * horizontal_padding: [OUT] The left and right padding of the menuitem or checkmenuitem
-  *
-  * returns:    MOZ_GTK_SUCCESS if there was no error, an error code otherwise
-  */
- gint
- moz_gtk_menuitem_get_horizontal_padding(gint* horizontal_padding);
- 
-diff --git a/widget/gtk/mozgtk/mozgtk.c b/widget/gtk/mozgtk/mozgtk.c
---- a/widget/gtk/mozgtk/mozgtk.c
-+++ b/widget/gtk/mozgtk/mozgtk.c
-@@ -510,16 +510,17 @@ STUB(gtk_render_frame_gap)
- STUB(gtk_render_handle)
- STUB(gtk_render_line)
- STUB(gtk_render_option)
- STUB(gtk_render_slider)
- STUB(gtk_scale_new)
- STUB(gtk_scrollbar_new)
- STUB(gtk_style_context_add_class)
- STUB(gtk_style_context_add_region)
-+STUB(gtk_style_context_get)
- STUB(gtk_style_context_get_background_color)
- STUB(gtk_style_context_get_border)
- STUB(gtk_style_context_get_border_color)
- STUB(gtk_style_context_get_color)
- STUB(gtk_style_context_get_margin)
- STUB(gtk_style_context_get_padding)
- STUB(gtk_style_context_new)
- STUB(gtk_style_context_remove_region)
diff --git a/mozilla-1073117-focus.patch b/mozilla-1073117-focus.patch
new file mode 100644
index 0000000..a67f6e9
--- /dev/null
+++ b/mozilla-1073117-focus.patch
@@ -0,0 +1,641 @@
+# HG changeset patch
+# User Martin Stransky <stransky at redhat.com>
+# Parent  0850966fdb761c309032575cbc6748a27d794983
+Bug 1073117 - Theme issues with GTK 3.14 - fix gtk button and entry size, r=?karlt
+Inner borders and focus theming has been removed in Gtk 3.14 so we can't use them to calculate button size.
+The size should be computed as border + padding.
+
+
+diff --git a/widget/gtk/gtk2drawing.c b/widget/gtk/gtk2drawing.c
+--- a/widget/gtk/gtk2drawing.c
++++ b/widget/gtk/gtk2drawing.c
+@@ -826,17 +826,17 @@ moz_gtk_get_focus_outline_size(gint* foc
+         *focus_v_width = YTHICKNESS(gEntryWidget->style) + focus_width;
+     } else {
+         *focus_h_width = focus_width;
+         *focus_v_width = focus_width;
+     }
+     return MOZ_GTK_SUCCESS;
+ }
+ 
+-gint
++static gint
+ moz_gtk_widget_get_focus(GtkWidget* widget, gboolean* interior_focus,
+                          gint* focus_width, gint* focus_pad) 
+ {
+     gtk_widget_style_get (widget,
+                           "interior-focus", interior_focus,
+                           "focus-line-width", focus_width,
+                           "focus-padding", focus_pad,
+                           NULL);
+@@ -923,17 +923,17 @@ moz_gtk_splitter_get_metrics(gint orient
+         gtk_widget_style_get(gHPanedWidget, "handle_size", size, NULL);
+     } else {
+         ensure_vpaned_widget();
+         gtk_widget_style_get(gVPanedWidget, "handle_size", size, NULL);
+     }
+     return MOZ_GTK_SUCCESS;
+ }
+ 
+-gint
++static gint
+ moz_gtk_button_get_inner_border(GtkWidget* widget, GtkBorder* inner_border)
+ {
+     static const GtkBorder default_inner_border = { 1, 1, 1, 1 };
+     GtkBorder *tmp_border;
+ 
+     gtk_widget_style_get (widget, "inner-border", &tmp_border, NULL);
+ 
+     if (tmp_border) {
+diff --git a/widget/gtk/gtk3drawing.c b/widget/gtk/gtk3drawing.c
+--- a/widget/gtk/gtk3drawing.c
++++ b/widget/gtk/gtk3drawing.c
+@@ -756,48 +756,28 @@ moz_gtk_radio_get_metrics(gint* indicato
+                           "indicator_spacing", indicator_spacing,
+                           NULL);
+ 
+     return MOZ_GTK_SUCCESS;
+ }
+ 
+ gint
+ moz_gtk_get_focus_outline_size(gint* focus_h_width, gint* focus_v_width)
+-{
+-    gboolean interior_focus;
+-    gint focus_width = 0;
++{
++    GtkBorder border;
++    GtkBorder padding;
++    GtkStyleContext *style;
+ 
+     ensure_entry_widget();
+-    gtk_widget_style_get(gEntryWidget,
+-                         "interior-focus", &interior_focus,
+-                         "focus-line-width", &focus_width,
+-                         NULL);
+-    if (interior_focus) {
+-        GtkBorder border;
+-        GtkStyleContext *style = gtk_widget_get_style_context(gEntryWidget);
+-        gtk_style_context_get_border(style, 0, &border);
+-        *focus_h_width = border.left + focus_width;
+-        *focus_v_width = border.top + focus_width;
+-    } else {
+-        *focus_h_width = focus_width;
+-        *focus_v_width = focus_width;
+-    }
+-    return MOZ_GTK_SUCCESS;
+-}
+-
+-gint
+-moz_gtk_widget_get_focus(GtkWidget* widget, gboolean* interior_focus,
+-                         gint* focus_width, gint* focus_pad) 
+-{
+-    gtk_widget_style_get (widget,
+-                          "interior-focus", interior_focus,
+-                          "focus-line-width", focus_width,
+-                          "focus-padding", focus_pad,
+-                          NULL);
+-
++    style = gtk_widget_get_style_context(gEntryWidget);
++
++    gtk_style_context_get_border(style, 0, &border);
++    gtk_style_context_get_padding(style, 0, &padding);
++    *focus_h_width = border.left + padding.left;
++    *focus_v_width = border.top + padding.top;
+     return MOZ_GTK_SUCCESS;
+ }
+ 
+ gint
+ moz_gtk_menuitem_get_horizontal_padding(gint* horizontal_padding)
+ {
+     ensure_menu_item_widget();
+ 
+@@ -875,34 +855,16 @@ moz_gtk_splitter_get_metrics(gint orient
+         gtk_widget_style_get(gHPanedWidget, "handle_size", size, NULL);
+     } else {
+         ensure_vpaned_widget();
+         gtk_widget_style_get(gVPanedWidget, "handle_size", size, NULL);
+     }
+     return MOZ_GTK_SUCCESS;
+ }
+ 
+-gint
+-moz_gtk_button_get_inner_border(GtkWidget* widget, GtkBorder* inner_border)
+-{
+-    static const GtkBorder default_inner_border = { 1, 1, 1, 1 };
+-    GtkBorder *tmp_border;
+-
+-    gtk_widget_style_get (widget, "inner-border", &tmp_border, NULL);
+-
+-    if (tmp_border) {
+-        *inner_border = *tmp_border;
+-        gtk_border_free(tmp_border);
+-    }
+-    else
+-        *inner_border = default_inner_border;
+-
+-    return MOZ_GTK_SUCCESS;
+-}
+-
+ static gint
+ moz_gtk_button_paint(cairo_t *cr, GdkRectangle* rect,
+                      GtkWidgetState* state,
+                      GtkReliefStyle relief, GtkWidget* widget,
+                      GtkTextDirection direction)
+ {
+     GtkStateFlags state_flags = GetStateFlagsFromGtkWidgetState(state);
+     GtkStyleContext* style = gtk_widget_get_style_context(widget);    
+@@ -1032,43 +994,33 @@ moz_gtk_toggle_paint(cairo_t *cr, GdkRec
+ }
+ 
+ static gint
+ calculate_button_inner_rect(GtkWidget* button, GdkRectangle* rect,
+                             GdkRectangle* inner_rect,
+                             GtkTextDirection direction,
+                             gboolean ignore_focus)
+ {
+-    GtkBorder inner_border;
+-    gboolean interior_focus;
+-    gint focus_width, focus_pad;
+     GtkStyleContext* style;
+     GtkBorder border;
++    GtkBorder padding = {0, 0, 0, 0};
+ 
+     style = gtk_widget_get_style_context(button);
+ 
+     /* This mirrors gtkbutton's child positioning */
+-    moz_gtk_button_get_inner_border(button, &inner_border);
+-    moz_gtk_widget_get_focus(button, &interior_focus,
+-                             &focus_width, &focus_pad);
+-
+-    if (ignore_focus)
+-        focus_width = focus_pad = 0;
+-
+-    gtk_style_context_get_border(style, 0, &border);
+-
+-    inner_rect->x = rect->x + border.left + focus_width + focus_pad;
+-    inner_rect->x += direction == GTK_TEXT_DIR_LTR ?
+-                        inner_border.left : inner_border.right;
+-    inner_rect->y = rect->y + inner_border.top + border.top +
+-                    focus_width + focus_pad;
+-    inner_rect->width = MAX(1, rect->width - inner_border.left -
+-       inner_border.right - (border.left + focus_pad + focus_width) * 2);
+-    inner_rect->height = MAX(1, rect->height - inner_border.top -
+-       inner_border.bottom - (border.top + focus_pad + focus_width) * 2);
++    gtk_style_context_get_border(style, 0, &border);
++    if (!ignore_focus)
++        gtk_style_context_get_padding(style, 0, &padding);
++
++    inner_rect->x = rect->x + border.left + padding.left;
++    inner_rect->y = rect->y + padding.top + border.top;
++    inner_rect->width = MAX(1, rect->width - padding.left -
++       padding.right - border.left * 2);
++    inner_rect->height = MAX(1, rect->height - padding.top -
++       padding.bottom - border.top * 2);
+ 
+     return MOZ_GTK_SUCCESS;
+ }
+ 
+ 
+ static gint
+ calculate_arrow_rect(GtkWidget* arrow, GdkRectangle* rect,
+                      GdkRectangle* arrow_rect, GtkTextDirection direction)
+@@ -1427,29 +1379,22 @@ moz_gtk_vpaned_paint(cairo_t *cr, GdkRec
+ // See gtk_entry_draw() for reference.
+ static gint
+ moz_gtk_entry_paint(cairo_t *cr, GdkRectangle* rect,
+                     GtkWidgetState* state,
+                     GtkWidget* widget, GtkTextDirection direction)
+ {
+     gint x = rect->x, y = rect->y, width = rect->width, height = rect->height;
+     GtkStyleContext* style;
+-    gboolean interior_focus;
+-    gint focus_width;
+     int draw_focus_outline_only = state->depressed; // NS_THEME_FOCUS_OUTLINE
+ 
+     gtk_widget_set_direction(widget, direction);
+ 
+     style = gtk_widget_get_style_context(widget);
+ 
+-    gtk_widget_style_get(widget,
+-                         "interior-focus", &interior_focus,
+-                         "focus-line-width", &focus_width,
+-                         NULL);
+-
+     if (draw_focus_outline_only) {
+         // Inflate the given 'rect' with the focus outline size.
+         gint h, v;
+         moz_gtk_get_focus_outline_size(&h, &v);
+         rect->x -= h;
+         rect->width += 2 * h;
+         rect->y -= v;
+         rect->height += 2 * v;
+@@ -1471,40 +1416,27 @@ moz_gtk_entry_paint(cairo_t *cr, GdkRect
+     /* Now paint the shadow and focus border.
+      * We do like in gtk_entry_draw_frame, we first draw the shadow, a tad
+      * smaller when focused if the focus is not interior, then the focus. */
+ 
+     if (state->focused && !state->disabled) {
+         /* This will get us the lit borders that focused textboxes enjoy on
+          * some themes. */
+         gtk_style_context_set_state(style, GTK_STATE_FLAG_FOCUSED);
+-        if (!interior_focus) {
+-            /* Indent the border a little bit if we have exterior focus 
+-               (this is what GTK does to draw native entries) */
+-            x += focus_width;
+-            y += focus_width;
+-            width -= 2 * focus_width;
+-            height -= 2 * focus_width;
+-        }
+     }
+ 
+     if (state->disabled) {
+         gtk_style_context_set_state(style, GTK_STATE_FLAG_INSENSITIVE);
+     }
+ 
+     if (!draw_focus_outline_only) {
+         gtk_render_background(style, cr, x, y, width, height);
+     }
+     gtk_render_frame(style, cr, x, y, width, height);
+ 
+-    if (state->focused && !state->disabled) {
+-        if (!interior_focus) {
+-            gtk_render_focus(style, cr, rect->x, rect->y, rect->width, rect->height);
+-        }
+-    }
+     gtk_style_context_restore(style);
+ 
+     return MOZ_GTK_SUCCESS;
+ }
+ 
+ static gint 
+ moz_gtk_treeview_paint(cairo_t *cr, GdkRectangle* rect,
+                        GtkWidgetState* state,
+@@ -1799,56 +1731,48 @@ moz_gtk_combo_box_entry_button_paint(cai
+ static gint
+ moz_gtk_container_paint(cairo_t *cr, GdkRectangle* rect,
+                         GtkWidgetState* state, 
+                         gboolean isradio, GtkTextDirection direction)
+ {
+     GtkStateFlags state_flags = GetStateFlagsFromGtkWidgetState(state);
+     GtkStyleContext* style;
+     GtkWidget *widget;
+-    gboolean interior_focus;
+-    gint focus_width, focus_pad;
+ 
+     if (isradio) {
+         ensure_radiobutton_widget();
+         widget = gRadiobuttonWidget;
+     } else {
+         ensure_checkbox_widget();
+         widget = gCheckboxWidget;
+     }
+     gtk_widget_set_direction(widget, direction);
+ 
+     style = gtk_widget_get_style_context(widget);
+     gtk_style_context_save(style);
+-    moz_gtk_widget_get_focus(widget, &interior_focus, &focus_width, &focus_pad);
+     gtk_style_context_set_state(style, state_flags);
+   
+     /* this is for drawing a prelight box */
+     if (state_flags & GTK_STATE_FLAG_PRELIGHT) {
+         gtk_render_background(style, cr,
+                               rect->x, rect->y, rect->width, rect->height);
+     }
+   
+-    if (state->focused && !interior_focus) {
+-        gtk_render_focus(style, cr,
+-                        rect->x, rect->y, rect->width, rect->height);
+-    }
+     gtk_style_context_restore(style);
+   
+     return MOZ_GTK_SUCCESS;
+ }
+ 
+ static gint
+ moz_gtk_toggle_label_paint(cairo_t *cr, GdkRectangle* rect,
+                            GtkWidgetState* state, 
+                            gboolean isradio, GtkTextDirection direction)
+ {
+     GtkStyleContext *style;
+     GtkWidget *widget;
+-    gboolean interior_focus;
+ 
+     if (!state->focused)
+         return MOZ_GTK_SUCCESS;
+ 
+     if (isradio) {
+         ensure_radiobutton_widget();
+         widget = gRadiobuttonWidget;
+     } else {
+@@ -1859,20 +1783,16 @@ moz_gtk_toggle_label_paint(cairo_t *cr, 
+     gtk_style_context_save(style);
+     if (isradio) {
+       gtk_style_context_add_class(style, GTK_STYLE_CLASS_RADIO);
+     } else {
+       gtk_style_context_add_class(style, GTK_STYLE_CLASS_CHECK);
+     }
+     gtk_widget_set_direction(widget, direction);
+ 
+-    gtk_widget_style_get(widget, "interior-focus", &interior_focus, NULL);
+-    if (!interior_focus)
+-        return MOZ_GTK_SUCCESS;
+-
+     gtk_style_context_set_state(style, GetStateFlagsFromGtkWidgetState(state));
+     gtk_render_focus(style, cr,
+                     rect->x, rect->y, rect->width, rect->height);
+     gtk_style_context_restore(style);
+ 
+     return MOZ_GTK_SUCCESS;
+ }
+ 
+@@ -2660,44 +2580,42 @@ moz_gtk_get_widget_border(GtkThemeWidget
+ {
+     GtkWidget* w;
+     GtkStyleContext* style;
+     *left = *top = *right = *bottom = 0;
+ 
+     switch (widget) {
+     case MOZ_GTK_BUTTON:
+         {
+-            GtkBorder inner_border;
+-            gboolean interior_focus;
+-            gint focus_width, focus_pad;
+-
+             ensure_button_widget();
++            style = gtk_widget_get_style_context(gButtonWidget);
++
+             *left = *top = *right = *bottom = gtk_container_get_border_width(GTK_CONTAINER(gButtonWidget));
+ 
+             /* Don't add this padding in HTML, otherwise the buttons will
+                become too big and stuff the layout. */
+             if (!inhtml) {
+-                moz_gtk_widget_get_focus(gButtonWidget, &interior_focus, &focus_width, &focus_pad);
+-                moz_gtk_button_get_inner_border(gButtonWidget, &inner_border);
+-                *left += focus_width + focus_pad + inner_border.left;
+-                *right += focus_width + focus_pad + inner_border.right;
+-                *top += focus_width + focus_pad + inner_border.top;
+-                *bottom += focus_width + focus_pad + inner_border.bottom;
++                moz_gtk_add_style_padding(style, left, top, right, bottom);
+             }
+ 
+-            moz_gtk_add_style_border(gtk_widget_get_style_context(gButtonWidget), 
+-                                     left, top, right, bottom);
++            moz_gtk_add_style_border(style, left, top, right, bottom);
+             return MOZ_GTK_SUCCESS;
+         }
+     case MOZ_GTK_ENTRY:
+         {
+             ensure_entry_widget();
+             style = gtk_widget_get_style_context(gEntryWidget);
+             moz_gtk_add_style_border(style, left, top, right, bottom);
+-            moz_gtk_add_style_padding(style, left, top, right, bottom);
++
++            /* Use the document padding in HTML
++               and GTK style padding in XUL. */
++            if (!inhtml) {
++                moz_gtk_add_style_padding(style, left, top, right, bottom);
++            }
++
+             return MOZ_GTK_SUCCESS;
+         }
+     case MOZ_GTK_TREEVIEW:
+         {
+             ensure_scrolled_window_widget();
+             style = gtk_widget_get_style_context(gScrolledWindowWidget);
+             gtk_style_context_save(style);
+             gtk_style_context_add_class(style, GTK_STYLE_CLASS_FRAME);
+@@ -2707,33 +2625,25 @@ moz_gtk_get_widget_border(GtkThemeWidget
+         }
+     case MOZ_GTK_TREE_HEADER_CELL:
+         {
+             /* A Tree Header in GTK is just a different styled button 
+              * It must be placed in a TreeView for getting the correct style
+              * assigned.
+              * That is why the following code is the same as for MOZ_GTK_BUTTON.  
+              * */
+-
+-            GtkBorder inner_border;
+-            gboolean interior_focus;
+-            gint focus_width, focus_pad;
++            GtkStyleContext *style;
+ 
+             ensure_tree_header_cell_widget();
+             *left = *top = *right = *bottom = gtk_container_get_border_width(GTK_CONTAINER(gTreeHeaderCellWidget));
+ 
+-            moz_gtk_widget_get_focus(gTreeHeaderCellWidget, &interior_focus, &focus_width, &focus_pad);
+-            moz_gtk_button_get_inner_border(gTreeHeaderCellWidget, &inner_border);
+-            *left += focus_width + focus_pad + inner_border.left;
+-            *right += focus_width + focus_pad + inner_border.right;
+-            *top += focus_width + focus_pad + inner_border.top;
+-            *bottom += focus_width + focus_pad + inner_border.bottom;
+-        
+-            moz_gtk_add_style_border(gtk_widget_get_style_context(gTreeHeaderCellWidget), 
+-                                     left, top, right, bottom);
++            style = gtk_widget_get_style_context(gTreeHeaderCellWidget);
++
++            moz_gtk_add_style_border(style, left, top, right, bottom);
++            moz_gtk_add_style_padding(style, left, top, right, bottom);
+             return MOZ_GTK_SUCCESS;
+         }
+     case MOZ_GTK_TREE_HEADER_SORTARROW:
+         ensure_tree_header_cell_widget();
+         w = gTreeHeaderSortArrowWidget;
+         break;
+     case MOZ_GTK_DROPDOWN_ENTRY:
+         ensure_combo_box_entry_widgets();
+@@ -2743,39 +2653,33 @@ moz_gtk_get_widget_border(GtkThemeWidget
+         ensure_combo_box_entry_widgets();
+         w = gComboBoxEntryButtonWidget;
+         break;
+     case MOZ_GTK_DROPDOWN:
+         {
+             /* We need to account for the arrow on the dropdown, so text
+              * doesn't come too close to the arrow, or in some cases spill
+              * into the arrow. */
+-            gboolean ignored_interior_focus, wide_separators;
+-            gint focus_width, focus_pad, separator_width;
++            gboolean wide_separators;
++            gint separator_width;
+             GtkRequisition arrow_req;
+             GtkBorder border;
+ 
+             ensure_combo_box_widgets();
+ 
+-            *left = gtk_container_get_border_width(GTK_CONTAINER(gComboBoxButtonWidget));
++            *left = *top = *right = *bottom = 
++                gtk_container_get_border_width(GTK_CONTAINER(gComboBoxButtonWidget));
++
++            style = gtk_widget_get_style_context(gComboBoxButtonWidget);
+ 
+             if (!inhtml) {
+-                moz_gtk_widget_get_focus(gComboBoxButtonWidget,
+-                                         &ignored_interior_focus,
+-                                         &focus_width, &focus_pad);
+-                *left += focus_width + focus_pad;
++                moz_gtk_add_style_padding(style, left, top, right, bottom);
+             }
+           
+-            style = gtk_widget_get_style_context(gComboBoxButtonWidget);
+-            gtk_style_context_get_border(style, 0, &border);
+-
+-            *top = *left + border.top;
+-            *left += border.left;
+-
+-            *right = *left; *bottom = *top;
++            moz_gtk_add_style_border(style, left, top, right, bottom);
+ 
+             /* If there is no separator, don't try to count its width. */
+             separator_width = 0;
+             if (gComboBoxSeparatorWidget) {
+                 gtk_widget_style_get(gComboBoxSeparatorWidget,
+                                      "wide-separators", &wide_separators,
+                                      "separator-width", &separator_width,
+                                      NULL);
+@@ -2817,70 +2721,33 @@ moz_gtk_get_widget_border(GtkThemeWidget
+     case MOZ_GTK_SCALE_VERTICAL:
+         ensure_scale_widget();
+         w = gVScaleWidget;
+         break;
+     case MOZ_GTK_FRAME:
+         ensure_frame_widget();
+         w = gFrameWidget;
+         break;
+-    case MOZ_GTK_CHECKBUTTON_LABEL:
+-    case MOZ_GTK_RADIOBUTTON_LABEL:
+-        {
+-            gboolean interior_focus;
+-            gint focus_width, focus_pad;
+-
+-            /* If the focus is interior, then the label has a border of
+-               (focus_width + focus_pad). */
+-            if (widget == MOZ_GTK_CHECKBUTTON_LABEL) {
+-                ensure_checkbox_widget();
+-                moz_gtk_widget_get_focus(gCheckboxWidget, &interior_focus,
+-                                           &focus_width, &focus_pad);
+-            }
+-            else {
+-                ensure_radiobutton_widget();
+-                moz_gtk_widget_get_focus(gRadiobuttonWidget, &interior_focus,
+-                                        &focus_width, &focus_pad);
+-            }
+-
+-            if (interior_focus)
+-                *left = *top = *right = *bottom = (focus_width + focus_pad);
+-
+-            return MOZ_GTK_SUCCESS;
+-        }
+-
+     case MOZ_GTK_CHECKBUTTON_CONTAINER:
+     case MOZ_GTK_RADIOBUTTON_CONTAINER:
+         {
+-            gboolean interior_focus;
+-            gint focus_width, focus_pad;
+-
+-            /* If the focus is _not_ interior, then the container has a border
+-               of (focus_width + focus_pad). */
+             if (widget == MOZ_GTK_CHECKBUTTON_CONTAINER) {
+                 ensure_checkbox_widget();
+-                moz_gtk_widget_get_focus(gCheckboxWidget, &interior_focus,
+-                                           &focus_width, &focus_pad);
+                 w = gCheckboxWidget;
+             } else {
+                 ensure_radiobutton_widget();
+-                moz_gtk_widget_get_focus(gRadiobuttonWidget, &interior_focus,
+-                                        &focus_width, &focus_pad);
+                 w = gRadiobuttonWidget;
+             }
++            style = gtk_widget_get_style_context(w);
+ 
+             *left = *top = *right = *bottom = gtk_container_get_border_width(GTK_CONTAINER(w));
+-
+-            if (!interior_focus) {
+-                *left += (focus_width + focus_pad);
+-                *right += (focus_width + focus_pad);
+-                *top += (focus_width + focus_pad);
+-                *bottom += (focus_width + focus_pad);
+-            }
+-
++            moz_gtk_add_style_border(style,
++                                     left, top, right, bottom);
++            moz_gtk_add_style_padding(style,
++                                      left, top, right, bottom);
+             return MOZ_GTK_SUCCESS;
+         }
+     case MOZ_GTK_MENUPOPUP:
+         ensure_menu_popup_widget();
+         w = gMenuPopupWidget;
+         break;
+     case MOZ_GTK_MENUITEM:
+     case MOZ_GTK_CHECKMENUITEM:
+@@ -2897,16 +2764,18 @@ moz_gtk_get_widget_border(GtkThemeWidget
+             }
+ 
+             *left = *top = *right = *bottom = gtk_container_get_border_width(GTK_CONTAINER(w));
+             moz_gtk_add_style_padding(gtk_widget_get_style_context(w),
+                                       left, top, right, bottom);
+             return MOZ_GTK_SUCCESS;
+         }
+     /* These widgets have no borders, since they are not containers. */
++    case MOZ_GTK_CHECKBUTTON_LABEL:
++    case MOZ_GTK_RADIOBUTTON_LABEL:
+     case MOZ_GTK_SPLITTER_HORIZONTAL:
+     case MOZ_GTK_SPLITTER_VERTICAL:
+     case MOZ_GTK_CHECKBUTTON:
+     case MOZ_GTK_RADIOBUTTON:
+     case MOZ_GTK_SCROLLBAR_BUTTON:
+     case MOZ_GTK_SCROLLBAR_TRACK_HORIZONTAL:
+     case MOZ_GTK_SCROLLBAR_TRACK_VERTICAL:
+     case MOZ_GTK_SCROLLBAR_THUMB_HORIZONTAL:
+diff --git a/widget/gtk/gtkdrawing.h b/widget/gtk/gtkdrawing.h
+--- a/widget/gtk/gtkdrawing.h
++++ b/widget/gtk/gtkdrawing.h
+@@ -288,49 +288,26 @@ moz_gtk_checkbox_get_metrics(gint* indic
+  * indicator_spacing:  [OUT] the spacing between the indicator and its
+  *                     container
+  *
+  * returns:    MOZ_GTK_SUCCESS if there was no error, an error code otherwise
+  */
+ gint
+ moz_gtk_radio_get_metrics(gint* indicator_size, gint* indicator_spacing);
+ 
+-/**
+- * Get the inner-border value for a GtkButton widget (button or tree header)
+- * widget:             [IN]  the widget to get the border value for 
+- * inner_border:       [OUT] the inner border
+- *
+- * returns:   MOZ_GTK_SUCCESS if there was no error, an error code otherwise
+- */
+-gint
+-moz_gtk_button_get_inner_border(GtkWidget* widget, GtkBorder* inner_border);
+-
+ /** Get the extra size for the focus ring for outline:auto.
+  * widget:             [IN]  the widget to get the focus metrics for    
+  * focus_h_width:      [OUT] the horizontal width
+  * focus_v_width:      [OUT] the vertical width
+  *
+  * returns:    MOZ_GTK_SUCCESS
+  */
+ gint
+ moz_gtk_get_focus_outline_size(gint* focus_h_width, gint* focus_v_width);
+ 
+-/** Get the focus metrics for a treeheadercell, button, checkbox, or radio button.
+- * widget:             [IN]  the widget to get the focus metrics for    
+- * interior_focus:     [OUT] whether the focus is drawn around the
+- *                           label (TRUE) or around the whole container (FALSE)
+- * focus_width:        [OUT] the width of the focus line
+- * focus_pad:          [OUT] the padding between the focus line and children
+- *
+- * returns:    MOZ_GTK_SUCCESS if there was no error, an error code otherwise
+- */
+-gint
+-moz_gtk_widget_get_focus(GtkWidget* widget, gboolean* interior_focus,
+-                         gint* focus_width, gint* focus_pad);
+-
+ /** Get the horizontal padding for the menuitem widget or checkmenuitem widget.
+  * horizontal_padding: [OUT] The left and right padding of the menuitem or checkmenuitem
+  *
+  * returns:    MOZ_GTK_SUCCESS if there was no error, an error code otherwise
+  */
+ gint
+ moz_gtk_menuitem_get_horizontal_padding(gint* horizontal_padding);
+ 
diff --git a/mozilla-1101582.patch b/mozilla-1101582.patch
deleted file mode 100644
index c1963f8..0000000
--- a/mozilla-1101582.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-# HG changeset patch
-# Parent cef590a6f94681064fa954890bae6014db819158
-# User Martin Stransky <stransky at redhat.com>
-Bug 1101582 - [GTK3] - Use window background color for ThreeDFace,ButtonFace r=karlt
-This fixes missing borders on non-natively-styled textareas.
-
-diff --git a/widget/gtk/nsLookAndFeel.cpp b/widget/gtk/nsLookAndFeel.cpp
---- a/widget/gtk/nsLookAndFeel.cpp
-+++ b/widget/gtk/nsLookAndFeel.cpp
-@@ -279,39 +279,41 @@ nsLookAndFeel::NativeGetColor(ColorID aI
-         // scrollbar gray area
- #if (MOZ_WIDGET_GTK == 2)
-         aColor = GDK_COLOR_TO_NS_RGB(mStyle->bg[GTK_STATE_ACTIVE]);
- #else
-         aColor = sMozScrollbar;
- #endif
-         break;
- 
-+    case eColorID_threedlightshadow:
-+        // 3-D highlighted inner edge color
-+        // always same as background in GTK code
-     case eColorID_threedface:
-     case eColorID_buttonface:
-         // 3-D face color
--        aColor = sFrameBackground;
-+#if (MOZ_WIDGET_GTK == 3)
-+        aColor = sMozWindowBackground;
-+#else
-+        aColor = sButtonBackground;
-+#endif
-         break;
- 
-     case eColorID_buttontext:
-         // text on push buttons
-         aColor = sButtonText;
-         break;
- 
-     case eColorID_buttonhighlight:
-         // 3-D highlighted edge color
-     case eColorID_threedhighlight:
-         // 3-D highlighted outer edge color
-         aColor = sFrameOuterLightBorder;
-         break;
- 
--    case eColorID_threedlightshadow:
--        // 3-D highlighted inner edge color
--        aColor = sFrameBackground; // always same as background in GTK code
--        break;
--
-     case eColorID_buttonshadow:
-         // 3-D shadow edge color
-     case eColorID_threedshadow:
-         // 3-D shadow inner edge color
-         aColor = sFrameInnerDarkBorder;
-         break;
- 
- #if (MOZ_WIDGET_GTK == 2)
-@@ -1136,17 +1138,17 @@ nsLookAndFeel::Init()
-     }
- 
-     sOddCellBackground = GDK_COLOR_TO_NS_RGB(colorValue);
-     if (colorValuePtr)
-         gdk_color_free(colorValuePtr);
- 
-     style = gtk_widget_get_style(button);
-     if (style) {
--        sFrameBackground = GDK_COLOR_TO_NS_RGB(style->bg[GTK_STATE_NORMAL]);
-+        sButtonBackground = GDK_COLOR_TO_NS_RGB(style->bg[GTK_STATE_NORMAL]);
-         sFrameOuterLightBorder =
-             GDK_COLOR_TO_NS_RGB(style->light[GTK_STATE_NORMAL]);
-         sFrameInnerDarkBorder =
-             GDK_COLOR_TO_NS_RGB(style->dark[GTK_STATE_NORMAL]);
-     }
- #else
-     // Button text, background, border
-     style = gtk_widget_get_style_context(label);
-@@ -1184,22 +1186,19 @@ nsLookAndFeel::Init()
-     gtk_style_context_add_region(style, GTK_STYLE_REGION_ROW, GTK_REGION_ODD);
-     gtk_style_context_get_background_color(style, GTK_STATE_FLAG_NORMAL, &color);
-     sOddCellBackground = GDK_RGBA_TO_NS_RGBA(color);
-     gtk_style_context_restore(style);
- 
-     GtkWidget *frame = gtk_frame_new(nullptr);
-     gtk_container_add(GTK_CONTAINER(parent), frame);
- 
--    style = gtk_widget_get_style_context(frame);
--    gtk_style_context_get_background_color(style, GTK_STATE_FLAG_NORMAL, &color);
--    sFrameBackground = GDK_RGBA_TO_NS_RGBA(color);
--
-     // TODO GTK3 - update sFrameOuterLightBorder 
-     // for GTK_BORDER_STYLE_INSET/OUTSET/GROVE/RIDGE border styles (Bug 978172).
-+    style = gtk_widget_get_style_context(frame);
-     gtk_style_context_get_border_color(style, GTK_STATE_FLAG_NORMAL, &color);
-     sFrameInnerDarkBorder = sFrameOuterLightBorder = GDK_RGBA_TO_NS_RGBA(color);
- #endif
-     // Some themes have a unified menu bar, and support window dragging on it
-     gboolean supports_menubar_drag = FALSE;
-     GParamSpec *param_spec =
-         gtk_widget_class_find_style_property(GTK_WIDGET_GET_CLASS(menuBar),
-                                              "window-dragging");
-diff --git a/widget/gtk/nsLookAndFeel.h b/widget/gtk/nsLookAndFeel.h
---- a/widget/gtk/nsLookAndFeel.h
-+++ b/widget/gtk/nsLookAndFeel.h
-@@ -59,17 +59,17 @@ protected:
-     nscolor sMenuBackground;
-     nscolor sMenuBarText;
-     nscolor sMenuBarHoverText;
-     nscolor sMenuText;
-     nscolor sMenuHover;
-     nscolor sMenuHoverText;
-     nscolor sButtonText;
-     nscolor sButtonHoverText;
--    nscolor sFrameBackground;
-+    nscolor sButtonBackground;
-     nscolor sFrameOuterLightBorder;
-     nscolor sFrameInnerDarkBorder;
-     nscolor sOddCellBackground;
-     nscolor sNativeHyperLinkText;
-     nscolor sComboBoxText;
-     nscolor sComboBoxBackground;
-     nscolor sMozFieldText;
-     nscolor sMozFieldBackground;
diff --git a/mozilla-1108834.patch b/mozilla-1108834.patch
deleted file mode 100644
index 87edc57..0000000
--- a/mozilla-1108834.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up firefox-36.0/mozilla-release/js/src/jit/none/Lowering-none.h.old firefox-36.0/mozilla-release/js/src/jit/none/Lowering-none.h
---- firefox-36.0/mozilla-release/js/src/jit/none/Lowering-none.h.old	2015-02-20 03:01:48.000000000 +0100
-+++ firefox-36.0/mozilla-release/js/src/jit/none/Lowering-none.h	2015-03-06 12:00:43.486675228 +0100
-@@ -89,6 +89,7 @@ class LIRGeneratorNone : public LIRGener
-     bool visitSimdTernaryBitwise(MSimdTernaryBitwise *ins) { MOZ_CRASH(); }
-     bool visitSimdSplatX4(MSimdSplatX4 *ins) { MOZ_CRASH(); }
-     bool visitSimdValueX4(MSimdValueX4 *lir) { MOZ_CRASH(); }
-+    bool visitSubstr(MSubstr *) { MOZ_CRASH(); }
- };
- 
- typedef LIRGeneratorNone LIRGeneratorSpecific;
diff --git a/mozilla-1110211.patch b/mozilla-1110211.patch
deleted file mode 100644
index 0828055..0000000
--- a/mozilla-1110211.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-diff -up firefox-35.0/mozilla-release/accessible/atk/Platform.cpp.1110211 firefox-35.0/mozilla-release/accessible/atk/Platform.cpp
---- firefox-35.0/mozilla-release/accessible/atk/Platform.cpp.1110211	2015-01-06 06:11:41.000000000 +0100
-+++ firefox-35.0/mozilla-release/accessible/atk/Platform.cpp	2015-01-06 12:24:02.508105586 +0100
-@@ -18,6 +18,9 @@
- #include <dbus/dbus.h>
- #endif
- #include <gtk/gtk.h>
-+#if (MOZ_WIDGET_GTK == 3)
-+#include <atk-bridge.h>
-+#endif
- 
- using namespace mozilla;
- using namespace mozilla::a11y;
-@@ -43,6 +46,7 @@ static gulong sToplevel_hide_hook = 0;
- 
- GType g_atk_hyperlink_impl_type = G_TYPE_INVALID;
- 
-+#if (MOZ_WIDGET_GTK == 2)
- struct GnomeAccessibilityModule
- {
-     const char *libName;
-@@ -119,6 +123,7 @@ LoadGtkModule(GnomeAccessibilityModule&
-     }
-     return NS_OK;
- }
-+#endif // (MOZ_WIDGET_GTK == 2)
- 
- void
- a11y::PlatformInit()
-@@ -158,20 +163,26 @@ a11y::PlatformInit()
-     }
-   }
- 
-+#if (MOZ_WIDGET_GTK == 2)
-   // Load and initialize gail library.
-   nsresult rv = LoadGtkModule(sGail);
-   if (NS_SUCCEEDED(rv))
-     (*sGail.init)();
-+#endif
- 
-   // Initialize the MAI Utility class, it will overwrite gail_util.
-   g_type_class_unref(g_type_class_ref(mai_util_get_type()));
- 
-   // Init atk-bridge now
-   PR_SetEnv("NO_AT_BRIDGE=0");
-+#if (MOZ_WIDGET_GTK == 2)
-   rv = LoadGtkModule(sAtkBridge);
-   if (NS_SUCCEEDED(rv)) {
-     (*sAtkBridge.init)();
-   }
-+#else
-+  atk_bridge_adaptor_init(nullptr, nullptr);
-+#endif
- 
-   if (!sToplevel_event_hook_added) {
-     sToplevel_event_hook_added = true;
-@@ -199,6 +210,7 @@ a11y::PlatformShutdown()
-                                     sToplevel_hide_hook);
-     }
- 
-+#if (MOZ_WIDGET_GTK == 2)
-     if (sAtkBridge.lib) {
-         // Do not shutdown/unload atk-bridge,
-         // an exit function registered will take care of it
-@@ -220,6 +232,7 @@ a11y::PlatformShutdown()
-         sGail.init = nullptr;
-         sGail.shutdown = nullptr;
-     }
-+#endif
-     // if (sATKLib) {
-     //     PR_UnloadLibrary(sATKLib);
-     //     sATKLib = nullptr;
-diff -up firefox-35.0/mozilla-release/config/system-headers.1110211 firefox-35.0/mozilla-release/config/system-headers
---- firefox-35.0/mozilla-release/config/system-headers.1110211	2015-01-06 06:11:48.000000000 +0100
-+++ firefox-35.0/mozilla-release/config/system-headers	2015-01-06 12:24:02.508105586 +0100
-@@ -189,6 +189,7 @@ asm/signal.h
- ASRegistry.h
- assert.h
- atk/atk.h
-+atk-bridge.h
- atlcom.h
- atlconv.h
- atlctl.cpp
-diff -up firefox-35.0/mozilla-release/configure.in.1110211 firefox-35.0/mozilla-release/configure.in
---- firefox-35.0/mozilla-release/configure.in.1110211	2015-01-06 12:24:02.509105590 +0100
-+++ firefox-35.0/mozilla-release/configure.in	2015-01-06 12:24:49.419274706 +0100
-@@ -4364,7 +4364,7 @@ fi
- 
- if test "$COMPILE_ENVIRONMENT"; then
-   if test "$MOZ_ENABLE_GTK3"; then
--    PKG_CHECK_MODULES(MOZ_GTK3, gtk+-3.0 >= $GTK3_VERSION gtk+-unix-print-3.0 glib-2.0 gobject-2.0 $GDK_PACKAGES)
-+    PKG_CHECK_MODULES(MOZ_GTK3, gtk+-3.0 >= $GTK3_VERSION gtk+-unix-print-3.0 glib-2.0 gobject-2.0 atk-bridge-2.0 $GDK_PACKAGES)
-     MOZ_GTK3_CFLAGS="-I${_topsrcdir}/widget/gtk/compat-gtk3 $MOZ_GTK3_CFLAGS"
-     dnl Contrary to MOZ_GTK2_LIBS, MOZ_GTK3_LIBS needs to be literally added to TK_LIBS instead
-     dnl of a make reference because of how TK_LIBS is mangled in toolkit/library/moz.build
diff --git a/sources b/sources
index 71e210b..d85fd4c 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-da5d71fa9ce3c57efbc9db247861823c  firefox-36.0.4.source.tar.bz2
-81d175210e6f6ddbf62a46c7383ed823  firefox-langpacks-36.0.4-20150321.tar.xz
+1da9fa09bda70c1d77607c38427f143a  firefox-langpacks-37.0-20150327.tar.xz
+ccdec2d8f362a3782fe74e0ca7f79724  firefox-37.0.source.tar.bz2
-- 
cgit v0.10.2


	http://pkgs.fedoraproject.org/cgit/firefox.git/commit/?h=f20&id=a28ac415396974731adc7be63469588dbafca107


More information about the scm-commits mailing list