pkgsrc/www/seamonkey/patches/patch-mozilla_widget_gtk_gtk3drawing.c
ryoon 9f53bf9041 Update to 2.32.1
Changelog:
What's New in SeaMonkey 2.32.1

Mostly regression fixes, including:

    MailNews feeds not updating
    Selected profile in Profile Manager not remembered
    Opening a bookmark folder in tabs on Linux
    Troubleshooting Information (about:support) with the Modern theme


What's New in SeaMonkey 2.32

SeaMonkey 2.32 contains the following major changes relative to SeaMonkey 2.31:
SeaMonkey-specific changes

    The Spell Check dialog is now resizable.
    Generational Garbage Collection has been enabled.

Mozilla platform changes

    Improved handling of dynamic styling changes to increase responsiveness.
    Implemented HTTP Public Key Pinning Extension (for enhanced authentication of encrypted connections).
    Reduced resource usage for scaled images.
    Also see Firefox 35 for Developers.
    Fixed several stability issue

Fixed in SeaMonkey 2.32

    2015-09 XrayWrapper bypass through DOM objects
    2015-08 Delegated OCSP responder certificates failure with id-pkix-ocsp-nocheck extension
    2015-06 Read-after-free in WebRTC
    2015-05 Read of uninitialized memory in Web Audio
    2015-04 Cookie injection through Proxy Authenticate responses
    2015-03 sendBeacon requests lack an Origin header
    2015-02 Uninitialized memory use during bitmap rendering
    2015-01 Miscellaneous memory safety hazards (rv:35.0 / rv:31.4)
2015-02-15 02:11:03 +00:00

69 lines
2.7 KiB
C

$NetBSD: patch-mozilla_widget_gtk_gtk3drawing.c,v 1.2 2015/02/15 02:11:03 ryoon Exp $
--- mozilla/widget/gtk/gtk3drawing.c.orig 2015-02-05 04:38:47.000000000 +0000
+++ mozilla/widget/gtk/gtk3drawing.c
@@ -64,6 +64,7 @@ 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
@@ -71,6 +72,10 @@ static gboolean is_initialized;
#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)
{
@@ -714,6 +719,11 @@ moz_gtk_init()
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
@@ -1004,10 +1014,10 @@ moz_gtk_toggle_paint(cairo_t *cr, GdkRec
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) {
@@ -1025,7 +1035,7 @@ moz_gtk_toggle_paint(cairo_t *cr, GdkRec
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);
}
@@ -2588,8 +2598,9 @@ moz_gtk_check_menu_item_paint(cairo_t *c
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);