Skip to content

Commit 425b9dc

Browse files
hansonrhansonr
authored andcommitted
AWT dragging outside of applet fails
1 parent 49d76d1 commit 425b9dc

File tree

11 files changed

+40
-9
lines changed

11 files changed

+40
-9
lines changed
450 Bytes
Binary file not shown.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
20190701220956
1+
20190702100854
450 Bytes
Binary file not shown.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
20190701220956
1+
20190702100854
450 Bytes
Binary file not shown.

sources/net.sf.j2s.java.core/src/javax/swing/JComponent.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4253,7 +4253,9 @@ public void revalidate() {
42534253
}
42544254
if (SwingUtilities.isEventDispatchThread()) {
42554255
invalidate();
4256-
RepaintManager.currentManager(this).addInvalidComponent(this);
4256+
// problem here was that AWT labels were automatically resizing when painted
4257+
if (!秘isAWT())
4258+
RepaintManager.currentManager(this).addInvalidComponent(this);
42574259
} else {
42584260
// getFlag(REVALIDATE_RUNNABLE_SCHEDULED) + " " + this);
42594261
// To avoid a flood of Runnables when constructing GUIs off

sources/net.sf.j2s.java.core/src/swingjs/a2s/A2SEvent.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,16 @@ public void run() {
6565
Component target = (Component) this.target;
6666
if (target instanceof A2SContainer) {
6767
Component parent = ((Container)target).getMouseEventTarget(e.x, e.y, true, null, false);
68+
switch (e.id) {
69+
case Event.MOUSE_DRAG:
70+
case Event.MOUSE_UP:
71+
parent = ((A2SContainer) target).getA2SListener().lastTarget;
72+
break;
73+
case Event.MOUSE_DOWN:
74+
((A2SContainer) target).getA2SListener().lastTarget = parent;
75+
break;
76+
}
77+
// System.out.println("A2sevent " + e.id + " " +parent);
6878
// on a focus-out event, e.x or e.y may be negative
6979
if (parent != null)
7080
target = parent;

sources/net.sf.j2s.java.core/src/swingjs/a2s/A2SListener.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package swingjs.a2s;
22

3+
import java.awt.Component;
34
import java.awt.event.ActionEvent;
45
import java.awt.event.ActionListener;
56
import java.awt.event.AdjustmentEvent;
@@ -19,6 +20,8 @@
1920

2021
public class A2SListener implements AdjustmentListener, ActionListener, KeyListener, MouseListener, MouseMotionListener, TextListener, ChangeListener, ItemListener {
2122

23+
public Component lastTarget;
24+
2225
@Override
2326
public void actionPerformed(ActionEvent e) {
2427
new A2SEvent(e).run();

sources/net.sf.j2s.java.core/src/test/Test_Applet_Scroll.java

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
import java.awt.event.AdjustmentListener;
1919
import java.awt.event.FocusEvent;
2020
import java.awt.event.FocusListener;
21+
import java.awt.event.MouseEvent;
22+
import java.awt.event.MouseMotionListener;
2123
import java.awt.event.MouseWheelEvent;
2224
import java.awt.event.MouseWheelListener;
2325
import java.text.DecimalFormat;
@@ -40,7 +42,7 @@
4042
import javax.swing.plaf.ViewportUI;
4143

4244
@SuppressWarnings("serial")
43-
public class Test_Applet_Scroll extends JApplet implements ChangeListener {
45+
public class Test_Applet_Scroll extends JApplet implements ChangeListener, MouseMotionListener {
4446

4547
static {
4648
/**
@@ -83,7 +85,7 @@ public void update(Graphics g) {
8385

8486
@Override
8587
public void init() {
86-
88+
8789
final JLabel label = new JLabel("hello");
8890
// label.setBounds(0, 60, 200, 60);
8991
setSize(label, 80, 50);
@@ -187,6 +189,9 @@ public void actionPerformed(ActionEvent event) {
187189
// p.setLayout(new GridLayout(2, 2, 2, 2));
188190
JScrollPane sp = new JScrollPane();
189191

192+
sp.addMouseMotionListener(this);
193+
194+
190195
panel2 = new JPanel();
191196
panel2.add(new JTextArea(10,10));
192197
panel2.setSize(100,100);
@@ -299,4 +304,15 @@ public void stateChanged(ChangeEvent e) {
299304

300305
}
301306

307+
@Override
308+
public void mouseDragged(MouseEvent e) {
309+
System.out.println("Test_Applet_Scroll mouseDragged " + e);
310+
}
311+
312+
@Override
313+
public void mouseMoved(MouseEvent e) {
314+
// TODO Auto-generated method stub
315+
316+
}
317+
302318
}

sources/net.sf.j2s.java.core/srcjs/js/j2sApplet.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1556,7 +1556,7 @@ if (ev.keyCode == 9 && ev.target["data-focuscomponent"]) {
15561556
,"\n who:", who.id
15571557
,"\n dragging:", J2S._mouseOwner && J2S._mouseOwner.isDragging
15581558
,"doignore:",doIgnore(ev,1)
1559-
,"role:",ev.target.getAttribute("role")
1559+
,"role:",ev.target.getAttribute && ev.target.getAttribute("role")
15601560
,"data-ui:",ev.target["data-ui"]
15611561
,"data-component:",ev.target["data-component"]
15621562
,"mouseOwner:",J2S._mouseOwner && J2S._mouseOwner.id
@@ -1786,7 +1786,7 @@ if (ev.keyCode == 9 && ev.target["data-focuscomponent"]) {
17861786
return true;
17871787

17881788
if (who == J2S._mouseOwner && who.isDragging)
1789-
return J2S._drag(who, ev, 506);
1789+
return J2S._drag(who, ev, 503);
17901790
return true;
17911791
});
17921792

0 commit comments

Comments
 (0)