38 import java.io.ObjectInputStream;
39 import java.io.ObjectOutputStream;
40 import java.io.ObjectStreamField;
41 import java.io.PrintStream;
42 import java.io.PrintWriter;
43
44 import java.lang.ref.WeakReference;
45 import java.security.AccessController;
46
47 import java.util.ArrayList;
48 import java.util.EventListener;
49 import java.util.HashSet;
50 import java.util.Set;
51
52 import javax.accessibility.*;
53
54 import sun.util.logging.PlatformLogger;
55
56 import sun.awt.AppContext;
57 import sun.awt.AWTAccessor;
58 import sun.awt.PeerEvent;
59 import sun.awt.SunToolkit;
60
61 import sun.awt.dnd.SunDropTargetEvent;
62
63 import sun.java2d.pipe.Region;
64
65 import sun.security.action.GetBooleanAction;
66
67 /**
68 * A generic Abstract Window Toolkit(AWT) container object is a component
69 * that can contain other AWT components.
70 * <p>
71 * Components added to a container are tracked in a list. The order
72 * of the list will define the components' front-to-back stacking order
73 * within the container. If no index is specified when adding a
74 * component to a container, it will be added to the end of the list
75 * (and hence to the bottom of the stacking order).
76 * <p>
77 * <b>Note</b>: For details on the focus subsystem, see
4766 }
4767 if ((c == null) || ((Window)c).isModalBlocked()) {
4768 return;
4769 }
4770
4771 //
4772 // create an internal 'dragged-over' event indicating
4773 // we are being dragged over from another hw component
4774 //
4775 me = new MouseEvent(nativeContainer,
4776 LWD_MOUSE_DRAGGED_OVER,
4777 srcEvent.getWhen(),
4778 srcEvent.getModifiersEx() | srcEvent.getModifiers(),
4779 srcEvent.getX(),
4780 srcEvent.getY(),
4781 srcEvent.getXOnScreen(),
4782 srcEvent.getYOnScreen(),
4783 srcEvent.getClickCount(),
4784 srcEvent.isPopupTrigger(),
4785 srcEvent.getButton());
4786 ((AWTEvent)srcEvent).copyPrivateDataInto(me);
4787 // translate coordinates to this native container
4788 final Point ptSrcOrigin = srcComponent.getLocationOnScreen();
4789
4790 if (AppContext.getAppContext() != nativeContainer.appContext) {
4791 final MouseEvent mouseEvent = me;
4792 Runnable r = new Runnable() {
4793 public void run() {
4794 if (!nativeContainer.isShowing() ) {
4795 return;
4796 }
4797
4798 Point ptDstOrigin = nativeContainer.getLocationOnScreen();
4799 mouseEvent.translatePoint(ptSrcOrigin.x - ptDstOrigin.x,
4800 ptSrcOrigin.y - ptDstOrigin.y );
4801 Component targetOver =
4802 nativeContainer.getMouseEventTarget(mouseEvent.getX(),
4803 mouseEvent.getY(),
4804 Container.INCLUDE_SELF);
4805 trackMouseEnterExit(targetOver, mouseEvent);
4867 e.getYOnScreen(),
4868 e.getClickCount(),
4869 e.isPopupTrigger(),
4870 ((MouseWheelEvent)e).getScrollType(),
4871 ((MouseWheelEvent)e).getScrollAmount(),
4872 ((MouseWheelEvent)e).getWheelRotation(),
4873 ((MouseWheelEvent)e).getPreciseWheelRotation());
4874 }
4875 else {
4876 retargeted = new MouseEvent(target,
4877 id,
4878 e.getWhen(),
4879 e.getModifiersEx() | e.getModifiers(),
4880 x,
4881 y,
4882 e.getXOnScreen(),
4883 e.getYOnScreen(),
4884 e.getClickCount(),
4885 e.isPopupTrigger(),
4886 e.getButton());
4887 }
4888
4889 ((AWTEvent)e).copyPrivateDataInto(retargeted);
4890
4891 if (target == nativeContainer) {
4892 // avoid recursively calling LightweightDispatcher...
4893 ((Container)target).dispatchEventToSelf(retargeted);
4894 } else {
4895 assert AppContext.getAppContext() == target.appContext;
4896
4897 if (nativeContainer.modalComp != null) {
4898 if (((Container)nativeContainer.modalComp).isAncestorOf(target)) {
4899 target.dispatchEvent(retargeted);
4900 } else {
4901 e.consume();
4902 }
4903 } else {
4904 target.dispatchEvent(retargeted);
4905 }
4906 }
|
38 import java.io.ObjectInputStream;
39 import java.io.ObjectOutputStream;
40 import java.io.ObjectStreamField;
41 import java.io.PrintStream;
42 import java.io.PrintWriter;
43
44 import java.lang.ref.WeakReference;
45 import java.security.AccessController;
46
47 import java.util.ArrayList;
48 import java.util.EventListener;
49 import java.util.HashSet;
50 import java.util.Set;
51
52 import javax.accessibility.*;
53
54 import sun.util.logging.PlatformLogger;
55
56 import sun.awt.AppContext;
57 import sun.awt.AWTAccessor;
58 import sun.awt.AWTAccessor.MouseEventAccessor;
59 import sun.awt.PeerEvent;
60 import sun.awt.SunToolkit;
61
62 import sun.awt.dnd.SunDropTargetEvent;
63
64 import sun.java2d.pipe.Region;
65
66 import sun.security.action.GetBooleanAction;
67
68 /**
69 * A generic Abstract Window Toolkit(AWT) container object is a component
70 * that can contain other AWT components.
71 * <p>
72 * Components added to a container are tracked in a list. The order
73 * of the list will define the components' front-to-back stacking order
74 * within the container. If no index is specified when adding a
75 * component to a container, it will be added to the end of the list
76 * (and hence to the bottom of the stacking order).
77 * <p>
78 * <b>Note</b>: For details on the focus subsystem, see
4767 }
4768 if ((c == null) || ((Window)c).isModalBlocked()) {
4769 return;
4770 }
4771
4772 //
4773 // create an internal 'dragged-over' event indicating
4774 // we are being dragged over from another hw component
4775 //
4776 me = new MouseEvent(nativeContainer,
4777 LWD_MOUSE_DRAGGED_OVER,
4778 srcEvent.getWhen(),
4779 srcEvent.getModifiersEx() | srcEvent.getModifiers(),
4780 srcEvent.getX(),
4781 srcEvent.getY(),
4782 srcEvent.getXOnScreen(),
4783 srcEvent.getYOnScreen(),
4784 srcEvent.getClickCount(),
4785 srcEvent.isPopupTrigger(),
4786 srcEvent.getButton());
4787 MouseEventAccessor meAccessor = AWTAccessor.getMouseEventAccessor();
4788 meAccessor.setCausedByTouchEvent(me,
4789 meAccessor.isCausedByTouchEvent(srcEvent));
4790 ((AWTEvent)srcEvent).copyPrivateDataInto(me);
4791 // translate coordinates to this native container
4792 final Point ptSrcOrigin = srcComponent.getLocationOnScreen();
4793
4794 if (AppContext.getAppContext() != nativeContainer.appContext) {
4795 final MouseEvent mouseEvent = me;
4796 Runnable r = new Runnable() {
4797 public void run() {
4798 if (!nativeContainer.isShowing() ) {
4799 return;
4800 }
4801
4802 Point ptDstOrigin = nativeContainer.getLocationOnScreen();
4803 mouseEvent.translatePoint(ptSrcOrigin.x - ptDstOrigin.x,
4804 ptSrcOrigin.y - ptDstOrigin.y );
4805 Component targetOver =
4806 nativeContainer.getMouseEventTarget(mouseEvent.getX(),
4807 mouseEvent.getY(),
4808 Container.INCLUDE_SELF);
4809 trackMouseEnterExit(targetOver, mouseEvent);
4871 e.getYOnScreen(),
4872 e.getClickCount(),
4873 e.isPopupTrigger(),
4874 ((MouseWheelEvent)e).getScrollType(),
4875 ((MouseWheelEvent)e).getScrollAmount(),
4876 ((MouseWheelEvent)e).getWheelRotation(),
4877 ((MouseWheelEvent)e).getPreciseWheelRotation());
4878 }
4879 else {
4880 retargeted = new MouseEvent(target,
4881 id,
4882 e.getWhen(),
4883 e.getModifiersEx() | e.getModifiers(),
4884 x,
4885 y,
4886 e.getXOnScreen(),
4887 e.getYOnScreen(),
4888 e.getClickCount(),
4889 e.isPopupTrigger(),
4890 e.getButton());
4891 MouseEventAccessor meAccessor = AWTAccessor.getMouseEventAccessor();
4892 meAccessor.setCausedByTouchEvent(retargeted,
4893 meAccessor.isCausedByTouchEvent(e));
4894 }
4895
4896 ((AWTEvent)e).copyPrivateDataInto(retargeted);
4897
4898 if (target == nativeContainer) {
4899 // avoid recursively calling LightweightDispatcher...
4900 ((Container)target).dispatchEventToSelf(retargeted);
4901 } else {
4902 assert AppContext.getAppContext() == target.appContext;
4903
4904 if (nativeContainer.modalComp != null) {
4905 if (((Container)nativeContainer.modalComp).isAncestorOf(target)) {
4906 target.dispatchEvent(retargeted);
4907 } else {
4908 e.consume();
4909 }
4910 } else {
4911 target.dispatchEvent(retargeted);
4912 }
4913 }
|