jdk/src/solaris/classes/sun/awt/X11/MotifDnDConstants.java
changeset 439 3488710b02f8
parent 117 766ae458aaf1
child 2802 d05a9dcc8296
equal deleted inserted replaced
438:2ae294e4518c 439:3488710b02f8
   116 
   116 
   117         WindowPropertyGetter wpg = new WindowPropertyGetter(defaultRootWindow,
   117         WindowPropertyGetter wpg = new WindowPropertyGetter(defaultRootWindow,
   118                                                             XA_MOTIF_DRAG_WINDOW,
   118                                                             XA_MOTIF_DRAG_WINDOW,
   119                                                             0, 1,
   119                                                             0, 1,
   120                                                             false,
   120                                                             false,
   121                                                             XlibWrapper.AnyPropertyType);
   121                                                             XConstants.AnyPropertyType);
   122         try {
   122         try {
   123             int status = wpg.execute(XToolkit.IgnoreBadWindowHandler);
   123             int status = wpg.execute(XToolkit.IgnoreBadWindowHandler);
   124 
   124 
   125             if (status == XlibWrapper.Success &&
   125             if (status == XConstants.Success &&
   126                 wpg.getData() != 0 &&
   126                 wpg.getData() != 0 &&
   127                 wpg.getActualType() == XAtom.XA_WINDOW &&
   127                 wpg.getActualType() == XAtom.XA_WINDOW &&
   128                 wpg.getActualFormat() == 32 &&
   128                 wpg.getActualFormat() == 32 &&
   129                 wpg.getNumberOfItems() == 1) {
   129                 wpg.getNumberOfItems() == 1) {
   130                 long data = wpg.getData();
   130                 long data = wpg.getData();
   161         }
   161         }
   162 
   162 
   163         XlibWrapper.XGrabServer(newDisplay);
   163         XlibWrapper.XGrabServer(newDisplay);
   164 
   164 
   165         try {
   165         try {
   166             XlibWrapper.XSetCloseDownMode(newDisplay, (int)XlibWrapper.RetainPermanent);
   166             XlibWrapper.XSetCloseDownMode(newDisplay, (int)XConstants.RetainPermanent);
   167 
   167 
   168             XSetWindowAttributes xwa = new XSetWindowAttributes();
   168             XSetWindowAttributes xwa = new XSetWindowAttributes();
   169 
   169 
   170             try {
   170             try {
   171                 xwa.set_override_redirect(true);
   171                 xwa.set_override_redirect(true);
   172                 xwa.set_event_mask(XlibWrapper.PropertyChangeMask);
   172                 xwa.set_event_mask(XConstants.PropertyChangeMask);
   173 
   173 
   174                 motifWindow = XlibWrapper.XCreateWindow(newDisplay, defaultRootWindow,
   174                 motifWindow = XlibWrapper.XCreateWindow(newDisplay, defaultRootWindow,
   175                                                         -10, -10, 1, 1, 0, 0,
   175                                                         -10, -10, 1, 1, 0, 0,
   176                                                         XlibWrapper.InputOnly,
   176                                                         XConstants.InputOnly,
   177                                                         XlibWrapper.CopyFromParent,
   177                                                         XConstants.CopyFromParent,
   178                                                         (XlibWrapper.CWOverrideRedirect |
   178                                                         (XConstants.CWOverrideRedirect |
   179                                                          XlibWrapper.CWEventMask),
   179                                                          XConstants.CWEventMask),
   180                                                         xwa.pData);
   180                                                         xwa.pData);
   181 
   181 
   182                 if (motifWindow == 0) {
   182                 if (motifWindow == 0) {
   183                     throw new XException("XCreateWindow returns NULL");
   183                     throw new XException("XCreateWindow returns NULL");
   184                 }
   184                 }
   193                     XToolkit.WITH_XERROR_HANDLER(XWM.VerifyChangePropertyHandler);
   193                     XToolkit.WITH_XERROR_HANDLER(XWM.VerifyChangePropertyHandler);
   194                     XlibWrapper.XChangeProperty(XToolkit.getDisplay(),
   194                     XlibWrapper.XChangeProperty(XToolkit.getDisplay(),
   195                                                 defaultRootWindow,
   195                                                 defaultRootWindow,
   196                                                 XA_MOTIF_DRAG_WINDOW.getAtom(),
   196                                                 XA_MOTIF_DRAG_WINDOW.getAtom(),
   197                                                 XAtom.XA_WINDOW, 32,
   197                                                 XAtom.XA_WINDOW, 32,
   198                                                 XlibWrapper.PropModeReplace,
   198                                                 XConstants.PropModeReplace,
   199                                                 data, 1);
   199                                                 data, 1);
   200 
   200 
   201                     XToolkit.RESTORE_XERROR_HANDLER();
   201                     XToolkit.RESTORE_XERROR_HANDLER();
   202 
   202 
   203                     if (XToolkit.saved_error != null &&
   203                     if (XToolkit.saved_error != null &&
   204                         XToolkit.saved_error.get_error_code() != XlibWrapper.Success) {
   204                         XToolkit.saved_error.get_error_code() != XConstants.Success) {
   205                         throw new XException("Cannot write motif drag window handle.");
   205                         throw new XException("Cannot write motif drag window handle.");
   206                     }
   206                     }
   207 
   207 
   208                     return motifWindow;
   208                     return motifWindow;
   209                 } finally {
   209                 } finally {
   280                                                             false,
   280                                                             false,
   281                                                             XA_MOTIF_DRAG_TARGETS.getAtom());
   281                                                             XA_MOTIF_DRAG_TARGETS.getAtom());
   282         try {
   282         try {
   283             int status = wpg.execute(XToolkit.IgnoreBadWindowHandler);
   283             int status = wpg.execute(XToolkit.IgnoreBadWindowHandler);
   284 
   284 
   285             if (status != XlibWrapper.Success
   285             if (status != XConstants.Success
   286                 || wpg.getActualType() != XA_MOTIF_DRAG_TARGETS.getAtom()
   286                 || wpg.getActualType() != XA_MOTIF_DRAG_TARGETS.getAtom()
   287                 || wpg.getData() == 0) {
   287                 || wpg.getData() == 0) {
   288 
   288 
   289                 return null;
   289                 return null;
   290             }
   290             }
   397             XToolkit.WITH_XERROR_HANDLER(XWM.VerifyChangePropertyHandler);
   397             XToolkit.WITH_XERROR_HANDLER(XWM.VerifyChangePropertyHandler);
   398             XlibWrapper.XChangeProperty(XToolkit.getDisplay(),
   398             XlibWrapper.XChangeProperty(XToolkit.getDisplay(),
   399                                         motifWindow,
   399                                         motifWindow,
   400                                         XA_MOTIF_DRAG_TARGETS.getAtom(),
   400                                         XA_MOTIF_DRAG_TARGETS.getAtom(),
   401                                         XA_MOTIF_DRAG_TARGETS.getAtom(), 8,
   401                                         XA_MOTIF_DRAG_TARGETS.getAtom(), 8,
   402                                         XlibWrapper.PropModeReplace,
   402                                         XConstants.PropModeReplace,
   403                                         data, tableSize);
   403                                         data, tableSize);
   404 
   404 
   405             XToolkit.RESTORE_XERROR_HANDLER();
   405             XToolkit.RESTORE_XERROR_HANDLER();
   406 
   406 
   407             if (XToolkit.saved_error != null &&
   407             if (XToolkit.saved_error != null &&
   408                 XToolkit.saved_error.get_error_code() != XlibWrapper.Success) {
   408                 XToolkit.saved_error.get_error_code() != XConstants.Success) {
   409 
   409 
   410                 // Create a new motif window and retry.
   410                 // Create a new motif window and retry.
   411                 motifWindow = createMotifWindow();
   411                 motifWindow = createMotifWindow();
   412 
   412 
   413                 XToolkit.WITH_XERROR_HANDLER(XWM.VerifyChangePropertyHandler);
   413                 XToolkit.WITH_XERROR_HANDLER(XWM.VerifyChangePropertyHandler);
   414                 XlibWrapper.XChangeProperty(XToolkit.getDisplay(),
   414                 XlibWrapper.XChangeProperty(XToolkit.getDisplay(),
   415                                             motifWindow,
   415                                             motifWindow,
   416                                             XA_MOTIF_DRAG_TARGETS.getAtom(),
   416                                             XA_MOTIF_DRAG_TARGETS.getAtom(),
   417                                             XA_MOTIF_DRAG_TARGETS.getAtom(), 8,
   417                                             XA_MOTIF_DRAG_TARGETS.getAtom(), 8,
   418                                             XlibWrapper.PropModeReplace,
   418                                             XConstants.PropModeReplace,
   419                                             data, tableSize);
   419                                             data, tableSize);
   420 
   420 
   421                 XToolkit.RESTORE_XERROR_HANDLER();
   421                 XToolkit.RESTORE_XERROR_HANDLER();
   422 
   422 
   423                 if (XToolkit.saved_error != null &&
   423                 if (XToolkit.saved_error != null &&
   424                     XToolkit.saved_error.get_error_code() != XlibWrapper.Success) {
   424                     XToolkit.saved_error.get_error_code() != XConstants.Success) {
   425                     throw new XException("Cannot write motif drag targets property.");
   425                     throw new XException("Cannot write motif drag targets property.");
   426                 }
   426                 }
   427             }
   427             }
   428         } finally {
   428         } finally {
   429             unsafe.freeMemory(data);
   429             unsafe.freeMemory(data);
   536 
   536 
   537             XToolkit.WITH_XERROR_HANDLER(XWM.VerifyChangePropertyHandler);
   537             XToolkit.WITH_XERROR_HANDLER(XWM.VerifyChangePropertyHandler);
   538             XlibWrapper.XChangeProperty(XToolkit.getDisplay(), window,
   538             XlibWrapper.XChangeProperty(XToolkit.getDisplay(), window,
   539                                         XA_MOTIF_ATOM_0.getAtom(),
   539                                         XA_MOTIF_ATOM_0.getAtom(),
   540                                         XA_MOTIF_DRAG_INITIATOR_INFO.getAtom(),
   540                                         XA_MOTIF_DRAG_INITIATOR_INFO.getAtom(),
   541                                         8, XlibWrapper.PropModeReplace,
   541                                         8, XConstants.PropModeReplace,
   542                                         structData, MOTIF_INITIATOR_INFO_SIZE);
   542                                         structData, MOTIF_INITIATOR_INFO_SIZE);
   543             XToolkit.RESTORE_XERROR_HANDLER();
   543             XToolkit.RESTORE_XERROR_HANDLER();
   544 
   544 
   545             if (XToolkit.saved_error != null &&
   545             if (XToolkit.saved_error != null &&
   546                 XToolkit.saved_error.get_error_code() != XlibWrapper.Success) {
   546                 XToolkit.saved_error.get_error_code() != XConstants.Success) {
   547                 throw new XException("Cannot write drag initiator info");
   547                 throw new XException("Cannot write drag initiator info");
   548             }
   548             }
   549         } finally {
   549         } finally {
   550             unsafe.freeMemory(structData);
   550             unsafe.freeMemory(structData);
   551         }
   551         }
   569 
   569 
   570             XToolkit.WITH_XERROR_HANDLER(XWM.VerifyChangePropertyHandler);
   570             XToolkit.WITH_XERROR_HANDLER(XWM.VerifyChangePropertyHandler);
   571             XlibWrapper.XChangeProperty(XToolkit.getDisplay(), window,
   571             XlibWrapper.XChangeProperty(XToolkit.getDisplay(), window,
   572                                         XA_MOTIF_DRAG_RECEIVER_INFO.getAtom(),
   572                                         XA_MOTIF_DRAG_RECEIVER_INFO.getAtom(),
   573                                         XA_MOTIF_DRAG_RECEIVER_INFO.getAtom(),
   573                                         XA_MOTIF_DRAG_RECEIVER_INFO.getAtom(),
   574                                         8, XlibWrapper.PropModeReplace,
   574                                         8, XConstants.PropModeReplace,
   575                                         data, dataSize);
   575                                         data, dataSize);
   576             XToolkit.RESTORE_XERROR_HANDLER();
   576             XToolkit.RESTORE_XERROR_HANDLER();
   577 
   577 
   578             if (XToolkit.saved_error != null &&
   578             if (XToolkit.saved_error != null &&
   579                 XToolkit.saved_error.get_error_code() != XlibWrapper.Success) {
   579                 XToolkit.saved_error.get_error_code() != XConstants.Success) {
   580                 throw new XException("Cannot write Motif receiver info property");
   580                 throw new XException("Cannot write Motif receiver info property");
   581             }
   581             }
   582         } finally {
   582         } finally {
   583             unsafe.freeMemory(data);
   583             unsafe.freeMemory(data);
   584         }
   584         }