hopefully complete fix for Gtk3.19 (rhbz#1286953)
This commit is contained in:
parent
cea43891d3
commit
6924c8c1b3
@ -1,19 +1,19 @@
|
||||
diff -up firefox-43.0/firefox-43.0/widget/gtk/gtk3drawing.c.gtk3-20 firefox-43.0/firefox-43.0/widget/gtk/gtk3drawing.c
|
||||
--- firefox-43.0/firefox-43.0/widget/gtk/gtk3drawing.c.gtk3-20 2015-12-08 19:06:46.000000000 +0100
|
||||
+++ firefox-43.0/firefox-43.0/widget/gtk/gtk3drawing.c 2015-12-16 12:04:49.577047565 +0100
|
||||
diff -up firefox-43.0/widget/gtk/gtk3drawing.c.gtk3-20 firefox-43.0/widget/gtk/gtk3drawing.c
|
||||
--- firefox-43.0/widget/gtk/gtk3drawing.c.gtk3-20 2015-12-08 19:06:46.000000000 +0100
|
||||
+++ firefox-43.0/widget/gtk/gtk3drawing.c 2015-12-16 20:40:48.591930885 +0100
|
||||
@@ -17,15 +17,29 @@
|
||||
|
||||
#include <math.h>
|
||||
|
||||
+typedef struct {
|
||||
+ GtkWidget* widget;
|
||||
+ GtkWidget* widget;
|
||||
+ GtkStyleContext* styleScrollbar;
|
||||
+ GtkStyleContext* styleTrough;
|
||||
+ GtkStyleContext* styleSlider;
|
||||
+} GtkWidgetScrollbar;
|
||||
+
|
||||
+typedef struct {
|
||||
+ GtkWidget* widget;
|
||||
+ GtkWidget* widget;
|
||||
+ GtkStyleContext* styleButton;
|
||||
+ GtkStyleContext* styleCheck;
|
||||
+ GtkStyleContext* styleLabel;
|
||||
@ -35,25 +35,11 @@ diff -up firefox-43.0/firefox-43.0/widget/gtk/gtk3drawing.c.gtk3-20 firefox-43.0
|
||||
static GtkWidget* gSpinWidget;
|
||||
static GtkWidget* gHScaleWidget;
|
||||
static GtkWidget* gVScaleWidget;
|
||||
@@ -78,6 +92,13 @@ static gboolean is_initialized;
|
||||
#define GTK_STATE_FLAG_CHECKED (1 << 11)
|
||||
#endif
|
||||
|
||||
+typedef struct {
|
||||
+ GType type;
|
||||
+ const gchar *name;
|
||||
+ const gchar *class1;
|
||||
+ const gchar *class2;
|
||||
+} GtkCssNode;
|
||||
+
|
||||
static GtkStateFlags
|
||||
GetStateFlagsFromGtkWidgetState(GtkWidgetState* state)
|
||||
{
|
||||
@@ -97,6 +118,33 @@ GetStateFlagsFromGtkWidgetState(GtkWidge
|
||||
@@ -97,6 +111,33 @@ GetStateFlagsFromGtkWidgetState(GtkWidge
|
||||
return stateFlags;
|
||||
}
|
||||
|
||||
+static GtkStyleContext *
|
||||
+GtkStyleContext *
|
||||
+moz_gtk_style_create(GtkCssNode *node, GtkStyleContext *parent)
|
||||
+{
|
||||
+ GtkWidgetPath *path;
|
||||
@ -83,7 +69,7 @@ diff -up firefox-43.0/firefox-43.0/widget/gtk/gtk3drawing.c.gtk3-20 firefox-43.0
|
||||
/* Because we have such an unconventional way of drawing widgets, signal to the GTK theme engine
|
||||
that they are drawing for Mozilla instead of a conventional GTK app so they can do any specific
|
||||
things they may want to do. */
|
||||
@@ -195,9 +243,21 @@ ensure_button_arrow_widget()
|
||||
@@ -195,9 +236,21 @@ ensure_button_arrow_widget()
|
||||
static gint
|
||||
ensure_checkbox_widget()
|
||||
{
|
||||
@ -108,7 +94,7 @@ diff -up firefox-43.0/firefox-43.0/widget/gtk/gtk3drawing.c.gtk3-20 firefox-43.0
|
||||
}
|
||||
return MOZ_GTK_SUCCESS;
|
||||
}
|
||||
@@ -205,9 +265,21 @@ ensure_checkbox_widget()
|
||||
@@ -205,9 +258,21 @@ ensure_checkbox_widget()
|
||||
static gint
|
||||
ensure_radiobutton_widget()
|
||||
{
|
||||
@ -128,12 +114,12 @@ diff -up firefox-43.0/firefox-43.0/widget/gtk/gtk3drawing.c.gtk3-20 firefox-43.0
|
||||
+ gRadiobutton.styleButton = moz_gtk_style_create(&path[0], NULL);
|
||||
+ gRadiobutton.styleCheck = moz_gtk_style_create(&path[1],
|
||||
+ gRadiobutton.styleButton);
|
||||
+ gRadiobutton.styleLabel = moz_gtk_style_create(&path[2],
|
||||
+ gRadiobutton.styleLabel = moz_gtk_style_create(&path[2],
|
||||
+ gRadiobutton.styleButton);
|
||||
}
|
||||
return MOZ_GTK_SUCCESS;
|
||||
}
|
||||
@@ -215,13 +287,31 @@ ensure_radiobutton_widget()
|
||||
@@ -215,13 +280,31 @@ ensure_radiobutton_widget()
|
||||
static gint
|
||||
ensure_scrollbar_widget()
|
||||
{
|
||||
@ -155,10 +141,10 @@ diff -up firefox-43.0/firefox-43.0/widget/gtk/gtk3drawing.c.gtk3-20 firefox-43.0
|
||||
+ gVertScrollbar.widget = gtk_scrollbar_new(GTK_ORIENTATION_VERTICAL, NULL);
|
||||
+ setup_widget_prototype(gVertScrollbar.widget);
|
||||
+
|
||||
+ gVertScrollbar.styleScrollbar = moz_gtk_style_create(path+1, NULL);
|
||||
+ gVertScrollbar.styleTrough = moz_gtk_style_create(path+2,
|
||||
+ gVertScrollbar.styleScrollbar = moz_gtk_style_create(path+1, NULL);
|
||||
+ gVertScrollbar.styleTrough = moz_gtk_style_create(path+2,
|
||||
+ gVertScrollbar.styleScrollbar);
|
||||
+ gVertScrollbar.styleSlider = moz_gtk_style_create(path+3,
|
||||
+ gVertScrollbar.styleSlider = moz_gtk_style_create(path+3,
|
||||
+ gVertScrollbar.styleTrough);
|
||||
+
|
||||
+ gHorizScrollbar.widget = gtk_scrollbar_new(GTK_ORIENTATION_HORIZONTAL, NULL);
|
||||
@ -172,7 +158,7 @@ diff -up firefox-43.0/firefox-43.0/widget/gtk/gtk3drawing.c.gtk3-20 firefox-43.0
|
||||
}
|
||||
return MOZ_GTK_SUCCESS;
|
||||
}
|
||||
@@ -757,7 +847,7 @@ moz_gtk_checkbox_get_metrics(gint* indic
|
||||
@@ -757,7 +840,7 @@ moz_gtk_checkbox_get_metrics(gint* indic
|
||||
{
|
||||
ensure_checkbox_widget();
|
||||
|
||||
@ -181,7 +167,7 @@ diff -up firefox-43.0/firefox-43.0/widget/gtk/gtk3drawing.c.gtk3-20 firefox-43.0
|
||||
"indicator_size", indicator_size,
|
||||
"indicator_spacing", indicator_spacing,
|
||||
NULL);
|
||||
@@ -770,7 +860,7 @@ moz_gtk_radio_get_metrics(gint* indicato
|
||||
@@ -770,7 +853,7 @@ moz_gtk_radio_get_metrics(gint* indicato
|
||||
{
|
||||
ensure_radiobutton_widget();
|
||||
|
||||
@ -190,7 +176,7 @@ diff -up firefox-43.0/firefox-43.0/widget/gtk/gtk3drawing.c.gtk3-20 firefox-43.0
|
||||
"indicator_size", indicator_size,
|
||||
"indicator_spacing", indicator_spacing,
|
||||
NULL);
|
||||
@@ -961,15 +1051,14 @@ moz_gtk_toggle_paint(cairo_t *cr, GdkRec
|
||||
@@ -961,15 +1044,14 @@ moz_gtk_toggle_paint(cairo_t *cr, GdkRec
|
||||
gint indicator_size, indicator_spacing;
|
||||
gint x, y, width, height;
|
||||
gint focus_x, focus_y, focus_width, focus_height;
|
||||
@ -209,7 +195,7 @@ diff -up firefox-43.0/firefox-43.0/widget/gtk/gtk3drawing.c.gtk3-20 firefox-43.0
|
||||
}
|
||||
|
||||
// XXX we should assert rect->height >= indicator_size too
|
||||
@@ -988,11 +1077,8 @@ moz_gtk_toggle_paint(cairo_t *cr, GdkRec
|
||||
@@ -988,11 +1070,9 @@ moz_gtk_toggle_paint(cairo_t *cr, GdkRec
|
||||
focus_width = width + 2 * indicator_spacing;
|
||||
focus_height = height + 2 * indicator_spacing;
|
||||
|
||||
@ -220,20 +206,20 @@ diff -up firefox-43.0/firefox-43.0/widget/gtk/gtk3drawing.c.gtk3-20 firefox-43.0
|
||||
- gtk_style_context_save(style);
|
||||
+ gtk_widget_set_sensitive(w->widget, !state->disabled);
|
||||
+ gtk_widget_set_direction(w->widget, direction);
|
||||
+ gtk_style_context_save(w->styleCheck);
|
||||
|
||||
if (selected)
|
||||
state_flags |= checkbox_check_state;
|
||||
@@ -1000,13 +1086,12 @@ moz_gtk_toggle_paint(cairo_t *cr, GdkRec
|
||||
@@ -1000,13 +1080,12 @@ moz_gtk_toggle_paint(cairo_t *cr, GdkRec
|
||||
if (inconsistent)
|
||||
state_flags |= GTK_STATE_FLAG_INCONSISTENT;
|
||||
|
||||
- gtk_style_context_set_state(style, state_flags);
|
||||
+ gtk_style_context_set_state(w->styleCheck, state_flags);
|
||||
|
||||
- if (isradio) {
|
||||
if (isradio) {
|
||||
- gtk_style_context_add_class(style, GTK_STYLE_CLASS_RADIO);
|
||||
- gtk_render_option(style, cr, x, y, width, height);
|
||||
+ if (isradio) {
|
||||
+ gtk_render_option(w->styleCheck, cr, x, y, width, height);
|
||||
if (state->focused) {
|
||||
- gtk_render_focus(style, cr, focus_x, focus_y,
|
||||
@ -241,27 +227,27 @@ diff -up firefox-43.0/firefox-43.0/widget/gtk/gtk3drawing.c.gtk3-20 firefox-43.0
|
||||
focus_width, focus_height);
|
||||
}
|
||||
}
|
||||
@@ -1015,15 +1100,14 @@ moz_gtk_toggle_paint(cairo_t *cr, GdkRec
|
||||
@@ -1015,15 +1094,14 @@ 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);
|
||||
- gtk_toggle_button_set_inconsistent(GTK_TOGGLE_BUTTON(gCheckboxWidget), inconsistent);
|
||||
- gtk_render_check(style, cr, x, y, width, height);
|
||||
+ gtk_toggle_button_set_inconsistent(GTK_TOGGLE_BUTTON(gCheckbox.widget),
|
||||
+ inconsistent);
|
||||
+ gtk_render_check(w->styleCheck, cr, x, y, width, height);
|
||||
+ gtk_toggle_button_set_inconsistent(GTK_TOGGLE_BUTTON(gCheckbox.widget), inconsistent);
|
||||
+ gtk_render_check(w->styleCheck, cr, x, y, width, height);
|
||||
if (state->focused) {
|
||||
- gtk_render_focus(style, cr,
|
||||
+ gtk_render_focus(w->styleCheck, cr,
|
||||
+ gtk_render_focus(w->styleCheck, cr,
|
||||
focus_x, focus_y, focus_width, focus_height);
|
||||
}
|
||||
}
|
||||
- gtk_style_context_restore(style);
|
||||
+ gtk_style_context_restore(w->styleCheck);
|
||||
|
||||
return MOZ_GTK_SUCCESS;
|
||||
}
|
||||
@@ -1109,9 +1193,9 @@ moz_gtk_scrollbar_button_paint(cairo_t *
|
||||
@@ -1109,9 +1187,9 @@ moz_gtk_scrollbar_button_paint(cairo_t *
|
||||
ensure_scrollbar_widget();
|
||||
|
||||
if (flags & MOZ_GTK_STEPPER_VERTICAL)
|
||||
@ -273,7 +259,7 @@ diff -up firefox-43.0/firefox-43.0/widget/gtk/gtk3drawing.c.gtk3-20 firefox-43.0
|
||||
|
||||
gtk_widget_set_direction(scrollbar, direction);
|
||||
|
||||
@@ -1177,26 +1261,22 @@ moz_gtk_scrollbar_trough_paint(GtkThemeW
|
||||
@@ -1177,26 +1255,22 @@ moz_gtk_scrollbar_trough_paint(GtkThemeW
|
||||
GtkTextDirection direction)
|
||||
{
|
||||
GtkStyleContext* style;
|
||||
@ -308,7 +294,7 @@ diff -up firefox-43.0/firefox-43.0/widget/gtk/gtk3drawing.c.gtk3-20 firefox-43.0
|
||||
gtk_render_background(style, cr, rect->x, rect->y, rect->width, rect->height);
|
||||
gtk_render_frame(style, cr, rect->x, rect->y, rect->width, rect->height);
|
||||
|
||||
@@ -1204,7 +1284,6 @@ moz_gtk_scrollbar_trough_paint(GtkThemeW
|
||||
@@ -1204,7 +1278,6 @@ moz_gtk_scrollbar_trough_paint(GtkThemeW
|
||||
gtk_render_focus(style, cr,
|
||||
rect->x, rect->y, rect->width, rect->height);
|
||||
}
|
||||
@ -316,7 +302,7 @@ diff -up firefox-43.0/firefox-43.0/widget/gtk/gtk3drawing.c.gtk3-20 firefox-43.0
|
||||
return MOZ_GTK_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -1222,19 +1301,16 @@ moz_gtk_scrollbar_thumb_paint(GtkThemeWi
|
||||
@@ -1222,19 +1295,16 @@ moz_gtk_scrollbar_thumb_paint(GtkThemeWi
|
||||
|
||||
ensure_scrollbar_widget();
|
||||
|
||||
@ -344,7 +330,7 @@ diff -up firefox-43.0/firefox-43.0/widget/gtk/gtk3drawing.c.gtk3-20 firefox-43.0
|
||||
gtk_style_context_get_margin (style, state_flags, &margin);
|
||||
|
||||
gtk_render_slider(style, cr,
|
||||
@@ -1245,8 +1321,6 @@ moz_gtk_scrollbar_thumb_paint(GtkThemeWi
|
||||
@@ -1245,8 +1315,6 @@ moz_gtk_scrollbar_thumb_paint(GtkThemeWi
|
||||
(widget == MOZ_GTK_SCROLLBAR_THUMB_HORIZONTAL) ?
|
||||
GTK_ORIENTATION_HORIZONTAL : GTK_ORIENTATION_VERTICAL);
|
||||
|
||||
@ -353,7 +339,7 @@ diff -up firefox-43.0/firefox-43.0/widget/gtk/gtk3drawing.c.gtk3-20 firefox-43.0
|
||||
return MOZ_GTK_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -1801,29 +1875,27 @@ moz_gtk_container_paint(cairo_t *cr, Gdk
|
||||
@@ -1801,29 +1869,27 @@ moz_gtk_container_paint(cairo_t *cr, Gdk
|
||||
gboolean isradio, GtkTextDirection direction)
|
||||
{
|
||||
GtkStateFlags state_flags = GetStateFlagsFromGtkWidgetState(state);
|
||||
@ -391,7 +377,7 @@ diff -up firefox-43.0/firefox-43.0/widget/gtk/gtk3drawing.c.gtk3-20 firefox-43.0
|
||||
|
||||
return MOZ_GTK_SUCCESS;
|
||||
}
|
||||
@@ -1833,32 +1905,25 @@ moz_gtk_toggle_label_paint(cairo_t *cr,
|
||||
@@ -1833,32 +1899,25 @@ moz_gtk_toggle_label_paint(cairo_t *cr,
|
||||
GtkWidgetState* state,
|
||||
gboolean isradio, GtkTextDirection direction)
|
||||
{
|
||||
@ -432,7 +418,7 @@ diff -up firefox-43.0/firefox-43.0/widget/gtk/gtk3drawing.c.gtk3-20 firefox-43.0
|
||||
|
||||
return MOZ_GTK_SUCCESS;
|
||||
}
|
||||
@@ -2841,10 +2906,10 @@ moz_gtk_get_widget_border(GtkThemeWidget
|
||||
@@ -2841,10 +2900,10 @@ moz_gtk_get_widget_border(GtkThemeWidget
|
||||
{
|
||||
if (widget == MOZ_GTK_CHECKBUTTON_CONTAINER) {
|
||||
ensure_checkbox_widget();
|
||||
@ -445,7 +431,7 @@ diff -up firefox-43.0/firefox-43.0/widget/gtk/gtk3drawing.c.gtk3-20 firefox-43.0
|
||||
}
|
||||
style = gtk_widget_get_style_context(w);
|
||||
|
||||
@@ -3123,7 +3188,7 @@ moz_gtk_get_scrollbar_metrics(MozGtkScro
|
||||
@@ -3123,7 +3182,7 @@ moz_gtk_get_scrollbar_metrics(MozGtkScro
|
||||
{
|
||||
ensure_scrollbar_widget();
|
||||
|
||||
@ -454,7 +440,7 @@ diff -up firefox-43.0/firefox-43.0/widget/gtk/gtk3drawing.c.gtk3-20 firefox-43.0
|
||||
"slider_width", &metrics->slider_width,
|
||||
"trough_border", &metrics->trough_border,
|
||||
"stepper_size", &metrics->stepper_size,
|
||||
@@ -3131,7 +3196,7 @@ moz_gtk_get_scrollbar_metrics(MozGtkScro
|
||||
@@ -3131,7 +3190,7 @@ moz_gtk_get_scrollbar_metrics(MozGtkScro
|
||||
NULL);
|
||||
|
||||
metrics->min_slider_size =
|
||||
@ -463,7 +449,7 @@ diff -up firefox-43.0/firefox-43.0/widget/gtk/gtk3drawing.c.gtk3-20 firefox-43.0
|
||||
|
||||
return MOZ_GTK_SUCCESS;
|
||||
}
|
||||
@@ -3377,7 +3442,7 @@ GtkWidget* moz_gtk_get_scrollbar_widget(
|
||||
@@ -3377,7 +3436,7 @@ GtkWidget* moz_gtk_get_scrollbar_widget(
|
||||
{
|
||||
MOZ_ASSERT(is_initialized, "Forgot to call moz_gtk_init()");
|
||||
ensure_scrollbar_widget();
|
||||
@ -472,7 +458,7 @@ diff -up firefox-43.0/firefox-43.0/widget/gtk/gtk3drawing.c.gtk3-20 firefox-43.0
|
||||
}
|
||||
|
||||
gboolean moz_gtk_has_scrollbar_buttons(void)
|
||||
@@ -3385,7 +3450,7 @@ gboolean moz_gtk_has_scrollbar_buttons(v
|
||||
@@ -3385,7 +3444,7 @@ gboolean moz_gtk_has_scrollbar_buttons(v
|
||||
gboolean backward, forward, secondary_backward, secondary_forward;
|
||||
MOZ_ASSERT(is_initialized, "Forgot to call moz_gtk_init()");
|
||||
ensure_scrollbar_widget();
|
||||
@ -481,7 +467,7 @@ diff -up firefox-43.0/firefox-43.0/widget/gtk/gtk3drawing.c.gtk3-20 firefox-43.0
|
||||
"has-backward-stepper", &backward,
|
||||
"has-forward-stepper", &forward,
|
||||
"has-secondary-backward-stepper", &secondary_backward,
|
||||
@@ -3414,10 +3479,10 @@ moz_gtk_shutdown()
|
||||
@@ -3414,10 +3473,10 @@ moz_gtk_shutdown()
|
||||
gButtonWidget = NULL;
|
||||
gToggleButtonWidget = NULL;
|
||||
gButtonArrowWidget = NULL;
|
||||
@ -496,9 +482,37 @@ diff -up firefox-43.0/firefox-43.0/widget/gtk/gtk3drawing.c.gtk3-20 firefox-43.0
|
||||
gSpinWidget = NULL;
|
||||
gHScaleWidget = NULL;
|
||||
gVScaleWidget = NULL;
|
||||
diff -up firefox-43.0/firefox-43.0/widget/gtk/mozgtk/mozgtk.c.gtk3-20 firefox-43.0/firefox-43.0/widget/gtk/mozgtk/mozgtk.c
|
||||
--- firefox-43.0/firefox-43.0/widget/gtk/mozgtk/mozgtk.c.gtk3-20 2015-12-08 19:06:46.000000000 +0100
|
||||
+++ firefox-43.0/firefox-43.0/widget/gtk/mozgtk/mozgtk.c 2015-12-16 12:00:44.349188098 +0100
|
||||
diff -up firefox-43.0/widget/gtk/gtkdrawing.h.gtk3-20 firefox-43.0/widget/gtk/gtkdrawing.h
|
||||
--- firefox-43.0/widget/gtk/gtkdrawing.h.gtk3-20 2015-12-08 19:06:46.000000000 +0100
|
||||
+++ firefox-43.0/widget/gtk/gtkdrawing.h 2015-12-16 20:38:30.313116412 +0100
|
||||
@@ -67,6 +67,13 @@ typedef enum {
|
||||
MOZ_GTK_TAB_SELECTED = 1 << 10
|
||||
} GtkTabFlags;
|
||||
|
||||
+typedef struct {
|
||||
+ GType type;
|
||||
+ const gchar *name;
|
||||
+ const gchar *class1;
|
||||
+ const gchar *class2;
|
||||
+} GtkCssNode;
|
||||
+
|
||||
/** flags for menuitems **/
|
||||
typedef enum {
|
||||
/* menuitem is part of the menubar */
|
||||
@@ -464,6 +471,10 @@ gboolean moz_gtk_images_in_buttons(void)
|
||||
*/
|
||||
gboolean moz_gtk_has_scrollbar_buttons(void);
|
||||
|
||||
+
|
||||
+GtkStyleContext *
|
||||
+moz_gtk_style_create(GtkCssNode *node, GtkStyleContext *parent);
|
||||
+
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
diff -up firefox-43.0/widget/gtk/mozgtk/mozgtk.c.gtk3-20 firefox-43.0/widget/gtk/mozgtk/mozgtk.c
|
||||
--- firefox-43.0/widget/gtk/mozgtk/mozgtk.c.gtk3-20 2015-12-08 19:06:46.000000000 +0100
|
||||
+++ firefox-43.0/widget/gtk/mozgtk/mozgtk.c 2015-12-16 20:38:30.313116412 +0100
|
||||
@@ -547,6 +547,7 @@ STUB(gtk_style_context_get_border_color)
|
||||
STUB(gtk_style_context_get_color)
|
||||
STUB(gtk_style_context_get_margin)
|
||||
@ -520,9 +534,9 @@ diff -up firefox-43.0/firefox-43.0/widget/gtk/mozgtk/mozgtk.c.gtk3-20 firefox-43
|
||||
#endif
|
||||
|
||||
#ifdef GTK2_SYMBOLS
|
||||
diff -up firefox-43.0/firefox-43.0/widget/gtk/nsLookAndFeel.cpp.gtk3-20 firefox-43.0/firefox-43.0/widget/gtk/nsLookAndFeel.cpp
|
||||
--- firefox-43.0/firefox-43.0/widget/gtk/nsLookAndFeel.cpp.gtk3-20 2015-12-08 19:06:46.000000000 +0100
|
||||
+++ firefox-43.0/firefox-43.0/widget/gtk/nsLookAndFeel.cpp 2015-12-16 12:00:44.350188101 +0100
|
||||
diff -up firefox-43.0/widget/gtk/nsLookAndFeel.cpp.gtk3-20 firefox-43.0/widget/gtk/nsLookAndFeel.cpp
|
||||
--- firefox-43.0/widget/gtk/nsLookAndFeel.cpp.gtk3-20 2015-12-08 19:06:46.000000000 +0100
|
||||
+++ firefox-43.0/widget/gtk/nsLookAndFeel.cpp 2015-12-16 20:38:30.314116418 +0100
|
||||
@@ -983,7 +983,7 @@ nsLookAndFeel::Init()
|
||||
style = create_context(path);
|
||||
gtk_style_context_add_class(style, GTK_STYLE_CLASS_SCROLLBAR);
|
||||
@ -587,30 +601,44 @@ diff -up firefox-43.0/firefox-43.0/widget/gtk/nsLookAndFeel.cpp.gtk3-20 firefox-
|
||||
|
||||
g_object_unref(menu);
|
||||
#endif
|
||||
@@ -1143,40 +1149,43 @@ nsLookAndFeel::Init()
|
||||
style = gtk_widget_get_style_context(textView);
|
||||
gtk_style_context_save(style);
|
||||
gtk_style_context_add_class(style, GTK_STYLE_CLASS_VIEW);
|
||||
@@ -1139,44 +1145,53 @@ nsLookAndFeel::Init()
|
||||
GDK_COLOR_TO_NS_RGB(style->dark[GTK_STATE_NORMAL]);
|
||||
}
|
||||
#else
|
||||
+ GtkCssNode labelPath[] = {
|
||||
+ { GTK_TYPE_LABEL, "label", "view", NULL },
|
||||
+ { G_TYPE_NONE, "selection", NULL, NULL }
|
||||
+ };
|
||||
+
|
||||
+ GtkStyleContext *styleLabel;
|
||||
+ GtkStyleContext *styleSelection;
|
||||
+
|
||||
// Text colors
|
||||
- style = gtk_widget_get_style_context(textView);
|
||||
- gtk_style_context_save(style);
|
||||
- gtk_style_context_add_class(style, GTK_STYLE_CLASS_VIEW);
|
||||
- gtk_style_context_get_background_color(style, GTK_STATE_FLAG_NORMAL, &color);
|
||||
+ gtk_style_context_get_background_color(style, gtk_style_context_get_state(style), &color);
|
||||
+ styleLabel = moz_gtk_style_create(labelPath, NULL);
|
||||
+ styleSelection = moz_gtk_style_create(labelPath+1, styleLabel);
|
||||
+ gtk_style_context_get_background_color(styleLabel, gtk_style_context_get_state(styleLabel), &color);
|
||||
sMozFieldBackground = GDK_RGBA_TO_NS_RGBA(color);
|
||||
- gtk_style_context_get_color(style, GTK_STATE_FLAG_NORMAL, &color);
|
||||
+ gtk_style_context_get_color(style, gtk_style_context_get_state(style), &color);
|
||||
+ gtk_style_context_get_color(styleLabel, gtk_style_context_get_state(styleLabel), &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);
|
||||
+ gtk_style_context_set_state(style, static_cast<GtkStateFlags>(GTK_STATE_FLAG_FOCUSED|GTK_STATE_FLAG_SELECTED));
|
||||
+ gtk_style_context_get_background_color(style, gtk_style_context_get_state(style), &color);
|
||||
+ gtk_style_context_set_state (styleLabel, GTK_STATE_FLAG_SELECTED);
|
||||
+ gtk_style_context_get_background_color(styleSelection, gtk_style_context_get_state(styleSelection), &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);
|
||||
+ gtk_style_context_get_color(style, gtk_style_context_get_state(style), &color);
|
||||
+ gtk_style_context_get_color(styleSelection, gtk_style_context_get_state(styleSelection), &color);
|
||||
sTextSelectedText = GDK_RGBA_TO_NS_RGBA(color);
|
||||
gtk_style_context_restore(style);
|
||||
- gtk_style_context_restore(style);
|
||||
|
||||
// Button text, background, border
|
||||
style = gtk_widget_get_style_context(label);
|
||||
@ -644,7 +672,7 @@ diff -up firefox-43.0/firefox-43.0/widget/gtk/nsLookAndFeel.cpp.gtk3-20 firefox-
|
||||
|
||||
// GTK's guide to fancy odd row background colors:
|
||||
// 1) Check if a theme explicitly defines an odd row color
|
||||
@@ -1189,7 +1198,7 @@ nsLookAndFeel::Init()
|
||||
@@ -1189,7 +1204,7 @@ nsLookAndFeel::Init()
|
||||
// Get odd row background color
|
||||
gtk_style_context_save(style);
|
||||
gtk_style_context_add_region(style, GTK_STYLE_REGION_ROW, GTK_REGION_ODD);
|
||||
@ -653,7 +681,7 @@ diff -up firefox-43.0/firefox-43.0/widget/gtk/nsLookAndFeel.cpp.gtk3-20 firefox-
|
||||
sOddCellBackground = GDK_RGBA_TO_NS_RGBA(color);
|
||||
gtk_style_context_restore(style);
|
||||
|
||||
@@ -1199,7 +1208,7 @@ nsLookAndFeel::Init()
|
||||
@@ -1199,7 +1214,7 @@ nsLookAndFeel::Init()
|
||||
// TODO GTK3 - update sFrameOuterLightBorder
|
||||
// for GTK_BORDER_STYLE_INSET/OUTSET/GROVE/RIDGE border styles (Bug 978172).
|
||||
style = gtk_widget_get_style_context(frame);
|
||||
@ -662,7 +690,7 @@ diff -up firefox-43.0/firefox-43.0/widget/gtk/nsLookAndFeel.cpp.gtk3-20 firefox-
|
||||
sFrameInnerDarkBorder = sFrameOuterLightBorder = GDK_RGBA_TO_NS_RGBA(color);
|
||||
|
||||
gtk_widget_path_free(path);
|
||||
@@ -1211,9 +1220,11 @@ nsLookAndFeel::Init()
|
||||
@@ -1211,9 +1226,11 @@ nsLookAndFeel::Init()
|
||||
gtk_container_add(GTK_CONTAINER(parent), infoBar);
|
||||
gtk_container_add(GTK_CONTAINER(infoBarContent), infoBarLabel);
|
||||
style = gtk_widget_get_style_context(infoBarLabel);
|
||||
|
@ -77,7 +77,7 @@
|
||||
Summary: Mozilla Firefox Web browser
|
||||
Name: firefox
|
||||
Version: 43.0
|
||||
Release: 2%{?pre_tag}%{?dist}
|
||||
Release: 3%{?pre_tag}%{?dist}
|
||||
URL: http://www.mozilla.org/projects/firefox/
|
||||
License: MPLv1.1 or GPLv2+ or LGPLv2+
|
||||
Group: Applications/Internet
|
||||
@ -255,7 +255,7 @@ cd %{tarballdir}
|
||||
#%patch220 -p1 -b .rhbz-1014858
|
||||
%patch221 -p2 -b .fedora-ua
|
||||
%if 0%{?fedora} > 23
|
||||
%patch222 -p2 -b .gtk3-20
|
||||
%patch222 -p1 -b .gtk3-20
|
||||
%endif
|
||||
|
||||
%patch500 -p1
|
||||
@ -751,8 +751,8 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
||||
#---------------------------------------------------------------------
|
||||
|
||||
%changelog
|
||||
* Wed Dec 16 2015 Martin Stransky <stransky@redhat.com> - 43.0-2
|
||||
- partial fix for Gtk3.19 (rhbz#1286953)
|
||||
* Wed Dec 16 2015 Martin Stransky <stransky@redhat.com> - 43.0-3
|
||||
- fix for Gtk3.19 (rhbz#1286953)
|
||||
|
||||
* Thu Dec 10 2015 Martin Stransky <stransky@redhat.com> - 43.0-1
|
||||
- Update to 43.0
|
||||
|
Loading…
Reference in New Issue
Block a user