Update to 37.0 Build 2

This commit is contained in:
Martin Stransky 2015-03-27 13:14:16 +01:00
parent fbebd2da69
commit 3342822142
10 changed files with 143 additions and 806 deletions

2
.gitignore vendored
View File

@ -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

View File

@ -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@redhat.com> - 37.0-1
- Update to 37.0 Build 2
* Thu Mar 26 2015 Richard Hughes <rhughes@redhat.com> - 36.0.4-2
- Add an AppData file for the software center

View File

@ -1,125 +0,0 @@
# HG changeset patch
# Parent cef590a6f94681064fa954890bae6014db819158
# User Martin Stransky <stransky@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) {

View File

@ -1,278 +0,0 @@
# HG changeset patch
# Parent 18188c19a3c3ec9cd4474de5bd1f5558ec750a36
# User Martin Stransky <stransky@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();
};

View File

@ -1,65 +0,0 @@
# HG changeset patch
# Parent 70de2960aa877d7755ee6f66bf2d4c4c46bfed2c
# User Martin Stransky <stransky@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.

View File

@ -1,8 +1,10 @@
# HG changeset patch
# Parent 900ea94508c5b6e99d40ec7e5d25e0d4ca6cfef8
# User Martin Stransky <stransky@redhat.com>
Bug 1073117 - Theme issues with GTK 3.14 - removed obsoleted focus style properties
and replaced by border and padding. r=?karlt
# 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
@ -48,7 +50,8 @@ diff --git a/widget/gtk/gtk2drawing.c b/widget/gtk/gtk2drawing.c
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
@@ -756,48 +756,28 @@ moz_gtk_radio_get_metrics(gint* indicato
"indicator_spacing", indicator_spacing,
NULL);
return MOZ_GTK_SUCCESS;
@ -56,9 +59,10 @@ diff --git a/widget/gtk/gtk3drawing.c b/widget/gtk/gtk3drawing.c
gint
moz_gtk_get_focus_outline_size(gint* focus_h_width, gint* focus_v_width)
{
-{
- gboolean interior_focus;
gint focus_width = 0;
- gint focus_width = 0;
+{
+ GtkBorder border;
+ GtkBorder padding;
+ GtkStyleContext *style;
@ -92,12 +96,11 @@ diff --git a/widget/gtk/gtk3drawing.c b/widget/gtk/gtk3drawing.c
- 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;
+ *focus_h_width = border.left + padding.left;
+ *focus_v_width = border.top + padding.top;
return MOZ_GTK_SUCCESS;
}
@ -106,7 +109,7 @@ diff --git a/widget/gtk/gtk3drawing.c b/widget/gtk/gtk3drawing.c
{
ensure_menu_item_widget();
@@ -875,34 +857,16 @@ moz_gtk_splitter_get_metrics(gint orient
@@ -875,34 +855,16 @@ moz_gtk_splitter_get_metrics(gint orient
gtk_widget_style_get(gHPanedWidget, "handle_size", size, NULL);
} else {
ensure_vpaned_widget();
@ -141,7 +144,7 @@ diff --git a/widget/gtk/gtk3drawing.c b/widget/gtk/gtk3drawing.c
{
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
@@ -1032,43 +994,33 @@ moz_gtk_toggle_paint(cairo_t *cr, GdkRec
}
static gint
@ -159,8 +162,6 @@ diff --git a/widget/gtk/gtk3drawing.c b/widget/gtk/gtk3drawing.c
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,
@ -172,11 +173,7 @@ diff --git a/widget/gtk/gtk3drawing.c b/widget/gtk/gtk3drawing.c
- 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_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;
@ -184,7 +181,11 @@ diff --git a/widget/gtk/gtk3drawing.c b/widget/gtk/gtk3drawing.c
- 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;
+ 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);
@ -198,7 +199,7 @@ diff --git a/widget/gtk/gtk3drawing.c b/widget/gtk/gtk3drawing.c
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
@@ -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,
@ -228,7 +229,7 @@ diff --git a/widget/gtk/gtk3drawing.c b/widget/gtk/gtk3drawing.c
rect->width += 2 * h;
rect->y -= v;
rect->height += 2 * v;
@@ -1471,40 +1421,27 @@ moz_gtk_entry_paint(cairo_t *cr, GdkRect
@@ -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. */
@ -269,7 +270,7 @@ diff --git a/widget/gtk/gtk3drawing.c b/widget/gtk/gtk3drawing.c
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
@@ -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,
@ -326,7 +327,7 @@ diff --git a/widget/gtk/gtk3drawing.c b/widget/gtk/gtk3drawing.c
ensure_radiobutton_widget();
widget = gRadiobuttonWidget;
} else {
@@ -1859,20 +1788,16 @@ moz_gtk_toggle_label_paint(cairo_t *cr,
@@ -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);
@ -347,7 +348,8 @@ diff --git a/widget/gtk/gtk3drawing.c b/widget/gtk/gtk3drawing.c
return MOZ_GTK_SUCCESS;
}
@@ -2661,18 +2586,16 @@ moz_gtk_get_widget_border(GtkThemeWidget
@@ -2660,44 +2580,42 @@ moz_gtk_get_widget_border(GtkThemeWidget
{
GtkWidget* w;
GtkStyleContext* style;
*left = *top = *right = *bottom = 0;
@ -355,18 +357,54 @@ diff --git a/widget/gtk/gtk3drawing.c b/widget/gtk/gtk3drawing.c
switch (widget) {
case MOZ_GTK_BUTTON:
{
GtkBorder inner_border;
- 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));
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
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:
{
@ -379,7 +417,6 @@ diff --git a/widget/gtk/gtk3drawing.c b/widget/gtk/gtk3drawing.c
- GtkBorder inner_border;
- gboolean interior_focus;
- gint focus_width, focus_pad;
+ gint focus_width;
+ GtkStyleContext *style;
ensure_tree_header_cell_widget();
@ -395,12 +432,6 @@ diff --git a/widget/gtk/gtk3drawing.c b/widget/gtk/gtk3drawing.c
- 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);
@ -412,7 +443,7 @@ diff --git a/widget/gtk/gtk3drawing.c b/widget/gtk/gtk3drawing.c
break;
case MOZ_GTK_DROPDOWN_ENTRY:
ensure_combo_box_entry_widgets();
@@ -2741,30 +2663,34 @@ moz_gtk_get_widget_border(GtkThemeWidget
@@ -2743,39 +2653,33 @@ moz_gtk_get_widget_border(GtkThemeWidget
ensure_combo_box_entry_widgets();
w = gComboBoxEntryButtonWidget;
break;
@ -424,70 +455,76 @@ diff --git a/widget/gtk/gtk3drawing.c b/widget/gtk/gtk3drawing.c
- gboolean ignored_interior_focus, wide_separators;
- gint focus_width, focus_pad, separator_width;
+ gboolean wide_separators;
+ gint focus_width, separator_width;
+ gint separator_width;
GtkRequisition arrow_req;
GtkBorder border;
ensure_combo_box_widgets();
*left = gtk_container_get_border_width(GTK_CONTAINER(gComboBoxButtonWidget));
- *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;
+ 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;
+ 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);
- 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);
*top = *left + border.top;
*left += border.left;
@@ -2818,67 +2744,41 @@ moz_gtk_get_widget_border(GtkThemeWidget
/* 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:
{
- 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();
- 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();
- }
- 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;
}
- return MOZ_GTK_SUCCESS;
- }
-
case MOZ_GTK_CHECKBUTTON_CONTAINER:
case MOZ_GTK_RADIOBUTTON_CONTAINER:
{
@ -507,6 +544,7 @@ diff --git a/widget/gtk/gtk3drawing.c b/widget/gtk/gtk3drawing.c
- &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));
-
@ -517,6 +555,10 @@ diff --git a/widget/gtk/gtk3drawing.c b/widget/gtk/gtk3drawing.c
- *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:
@ -525,6 +567,25 @@ diff --git a/widget/gtk/gtk3drawing.c b/widget/gtk/gtk3drawing.c
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
@ -578,24 +639,3 @@ diff --git a/widget/gtk/gtkdrawing.h b/widget/gtk/gtkdrawing.h
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)

View File

@ -1,122 +0,0 @@
# HG changeset patch
# Parent cef590a6f94681064fa954890bae6014db819158
# User Martin Stransky <stransky@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;

View File

@ -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;

View File

@ -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

View File

@ -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