view patches/pr3137-alt_button_order.patch @ 3248:2de5d5254c7c

New backports for issues to be fixed in 1.13.12. S2178143, PR2959: JVM crashes if the number of bound CPUs changed during runtime S6260348, PR3068: GTK+ L&F JTextComponent not respecting desktop caret blink rate S6961123, PR2975: setWMClass fails to null-terminate WM_CLASS string PR2800: Files are missing from resources.jar PR3137: GTKLookAndFeel does not honor gtk-alternative-button-order 2016-08-15 Andrew John Hughes <gnu.andrew@redhat.com> * Makefile.am: (ICEDTEA_PATCHES): Add new patches. * NEWS: Updated. * patches/ecj/icedtea.patch: Adjust and extend, following PR2800. * patches/openjdk/2178143-pr2959.patch, * patches/openjdk/6260348-pr3068.patch, * patches/openjdk/6961123-pr2975.patch, * patches/pr2800-missing_resources.patch, * patches/pr3137-alt_button_order.patch: New backports for issues to be fixed in 1.13.12.
author Andrew John Hughes <gnu.andrew@redhat.com>
date Mon, 15 Aug 2016 02:54:13 +0100
parents
children
line wrap: on
line source

# HG changeset patch
# User andrew
# Date 1370445992 -3600
#      Wed Jun 05 16:26:32 2013 +0100
# Node ID 083cb3631cb84dd34583d495ed079da16fb1f5be
# Parent  fdd98e50f1df83d8aead62bb1c74224f2f8c82c7
PR3137: GTKLookAndFeel does not honor gtk-alternative-button-order

diff --git a/src/share/classes/com/sun/java/swing/plaf/gtk/GTKEngine.java b/src/share/classes/com/sun/java/swing/plaf/gtk/GTKEngine.java
--- openjdk/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKEngine.java
+++ openjdk/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKEngine.java
@@ -93,7 +93,8 @@
      */
     static enum Settings {
         GTK_FONT_NAME,
-        GTK_ICON_SIZES
+        GTK_ICON_SIZES,
+	GTK_BUTTON_ORDER
     }
 
     /* Custom regions are needed for representing regions that don't exist
diff --git a/src/share/classes/com/sun/java/swing/plaf/gtk/GTKLookAndFeel.java b/src/share/classes/com/sun/java/swing/plaf/gtk/GTKLookAndFeel.java
--- openjdk/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKLookAndFeel.java
+++ openjdk/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKLookAndFeel.java
@@ -539,6 +539,14 @@
             }
         }
 
+	/* If gtk-alternative-button-order is set to true, isYesLast needs to be false */
+	Boolean buttonOrder = Boolean.TRUE;
+	Object orderSetting = GTKEngine.INSTANCE.getSetting(GTKEngine.Settings.GTK_BUTTON_ORDER);
+	if (orderSetting instanceof Boolean) {
+	    Boolean order = (Boolean) orderSetting;
+	    if (Boolean.TRUE.equals(order))
+		buttonOrder = Boolean.FALSE;
+	}
         Object[] defaults = new Object[] {
             "ArrowButton.size", Integer.valueOf(13),
 
@@ -818,7 +826,7 @@
             "OptionPane.windowBindings", new Object[] {
                 "ESCAPE", "close" },
             "OptionPane.buttonClickThreshhold", new Integer(500),
-            "OptionPane.isYesLast", Boolean.TRUE,
+            "OptionPane.isYesLast", buttonOrder,
             "OptionPane.font", new FontLazyValue(Region.OPTION_PANE),
 
             "Panel.font", new FontLazyValue(Region.PANEL),
diff --git a/src/solaris/native/sun/awt/gtk2_interface.c b/src/solaris/native/sun/awt/gtk2_interface.c
--- openjdk/jdk/src/solaris/native/sun/awt/gtk2_interface.c
+++ openjdk/jdk/src/solaris/native/sun/awt/gtk2_interface.c
@@ -1817,6 +1817,14 @@
     return create_Integer(env, intval);
 }*/
 
+jobject get_boolean_property(JNIEnv* env, GtkSettings* settings, const gchar *key)
+{
+    gboolean boolval = NULL;
+
+    (*fp_g_object_get)(settings, key, &boolval, NULL);
+    return create_Boolean(env, (jboolean) boolval);
+}
+
 jobject gtk2_get_setting(JNIEnv *env, Setting property)
 {
     GtkSettings* settings = gtk_settings_get_default ();
@@ -1827,6 +1835,8 @@
             return get_string_property(env, settings, "gtk-font-name");
         case GTK_ICON_SIZES:
             return get_string_property(env, settings, "gtk-icon-sizes");
+        case GTK_BUTTON_ORDER:
+	    return get_boolean_property(env, settings, "gtk-alternative-button-order");
     }
 
     return NULL;
diff --git a/src/solaris/native/sun/awt/gtk2_interface.h b/src/solaris/native/sun/awt/gtk2_interface.h
--- openjdk/jdk/src/solaris/native/sun/awt/gtk2_interface.h
+++ openjdk/jdk/src/solaris/native/sun/awt/gtk2_interface.h
@@ -130,7 +130,8 @@
 typedef enum _Setting
 {
     GTK_FONT_NAME,
-    GTK_ICON_SIZES
+    GTK_ICON_SIZES,
+    GTK_BUTTON_ORDER
 } Setting;
 
 /*