[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[cp-patches] FYI: new fix for SwingUtilities.replaceUIActionMap
From: |
Roman Kennke |
Subject: |
[cp-patches] FYI: new fix for SwingUtilities.replaceUIActionMap |
Date: |
Fri, 03 Jun 2005 13:56:24 +0200 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20021204 |
My last patch was not quite correct. Here comes the better one. This
makes sure that no loops are build in ActionMap chains.
2005-06-03 Roman Kennke <address@hidden>
* javax/swing/SwingUtilites.java
(replaceUIActionMap): Fixed loop again. Now correctly, I hope.
* javax/swing/ActionMap.java
(setParent): Make sure we don't build a loop.
* javax/swing/plaf/basic/BasicTextUI.java
(createActionMap): Create ActionMapUIResource instead of
plain ActionMap.
/Roman
Index: ActionMap.java
===================================================================
RCS file: /cvsroot/classpath/classpath/javax/swing/ActionMap.java,v
retrieving revision 1.8
diff -u -r1.8 ActionMap.java
--- ActionMap.java 22 Oct 2004 12:43:59 -0000 1.8
+++ ActionMap.java 3 Jun 2005 11:50:19 -0000
@@ -133,7 +133,8 @@
*/
public void setParent(ActionMap parentMap)
{
- parent = parentMap;
+ if (parentMap != this)
+ parent = parentMap;
}
/**
Index: SwingUtilities.java
===================================================================
RCS file: /cvsroot/classpath/classpath/javax/swing/SwingUtilities.java,v
retrieving revision 1.29
diff -u -r1.29 SwingUtilities.java
--- SwingUtilities.java 3 Jun 2005 09:59:12 -0000 1.29
+++ SwingUtilities.java 3 Jun 2005 11:50:19 -0000
@@ -1128,9 +1128,13 @@
component.setActionMap(uiActionMap);
else
{
- while(child.getParent() != null
- && (child.getParent() instanceof ActionMapUIResource))
- child = child.getParent();
+ ActionMap parent = child.getParent();
+ while(parent != null)
+ {
+ child = parent;
+ parent = child.getParent();
+ }
+
if (child != null)
child.setParent(uiActionMap);
}
Index: plaf/basic/BasicTextUI.java
===================================================================
RCS file: /cvsroot/classpath/classpath/javax/swing/plaf/basic/BasicTextUI.java,v
retrieving revision 1.19
diff -u -r1.19 BasicTextUI.java
--- plaf/basic/BasicTextUI.java 22 May 2005 19:49:20 -0000 1.19
+++ plaf/basic/BasicTextUI.java 3 Jun 2005 11:50:20 -0000
@@ -59,6 +59,7 @@
import javax.swing.UIManager;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
+import javax.swing.plaf.ActionMapUIResource;
import javax.swing.plaf.TextUI;
import javax.swing.plaf.UIResource;
import javax.swing.text.BadLocationException;
@@ -416,7 +417,7 @@
ActionMap createActionMap()
{
Action[] actions = textComponent.getActions();
- ActionMap am = new ActionMap();
+ ActionMap am = new ActionMapUIResource();
for (int i = 0; i < actions.length; ++i)
{
String name = (String) actions[i].getValue(Action.NAME);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [cp-patches] FYI: new fix for SwingUtilities.replaceUIActionMap,
Roman Kennke <=