Mercurial > hg > xemacs-beta
changeset 4825:2e1527b8385b
merge changes to get things to compile under cygwin
author | Ben Wing <ben@xemacs.org> |
---|---|
date | Thu, 24 Dec 2009 19:46:51 -0600 |
parents | bc4f2511bbea (diff) c12b646d84ee (current diff) |
children | 780bb5441c14 |
files | |
diffstat | 32 files changed, 110 insertions(+), 1313 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Thu Dec 24 19:45:23 2009 -0600 +++ b/ChangeLog Thu Dec 24 19:46:51 2009 -0600 @@ -1,3 +1,9 @@ +2009-12-21 Jerry James <james@xemacs.org> + + * INSTALL: Remove references to OffiX. + * configure.ac: Remove support for OffiX drag-and-drop. + * configure: Regenerate. + 2009-12-21 Jerry James <james@xemacs.org> * INSTALL: Replace reference to yow.
--- a/INSTALL Thu Dec 24 19:45:23 2009 -0600 +++ b/INSTALL Thu Dec 24 19:46:51 2009 -0600 @@ -379,11 +379,6 @@ drop support. `configure' will attempt to detect this option and define `--with-cde' for you. -The `--with-offix' option allows you to enable or disable OffiX drag -and drop support. This requires no external library support, so if -X11 support is available, then this option defaults to `yes'. OffiX -support can be explicitly disabled via the `--with-offix=no' option. - Internationalization Options ---------------------------- @@ -895,7 +890,6 @@ --with-widgets Unchanged --with-dragndrop Unchanged --with-cde Unchanged ---with-offix Unchanged --with-xmu Unchanged --external-widget --with-external-widget
--- a/configure Thu Dec 24 19:45:23 2009 -0600 +++ b/configure Thu Dec 24 19:46:51 2009 -0600 @@ -954,8 +954,6 @@ with_dragndrop enable_cde with_cde -enable_offix -with_offix enable_external_widget with_external_widget enable_tty @@ -1851,15 +1849,10 @@ can be found, else Athena is used. --with-dragndrop Compile in the generic drag and drop API. This is automatically added if one of the drag and drop - protocols is found (currently CDE, OffiX, MSWindows, - and GTK). *WARNING* The Drag'n'drop support is under + protocols is found (currently CDE, MSWindows, and + GTK). *WARNING* The Drag'n'drop support is under development and is considered experimental. --with-cde Compile in support for CDE drag and drop. - --with-offix Compile in support for OffiX drag and drop. - *WARNING* If you compile in OffiX, you may not be - able to use multiple X displays success- fully. If - the two servers are from different vendors, the - results may be unpredictable. --with-external-widget Support XEmacs server for text widgets in other applications. @@ -3539,22 +3532,6 @@ withval="$with_cde" fi; -# If --with-offix or --without-offix were given then copy the value to the -# equivalent enable_offix variable. -if test "${with_offix+set}" = set; then - enable_offix="$with_offix" -fi; -# If -enable-offix or --disable-offix were given then copy the value to the -# equivalent with_offix variable. -if test "${enable_offix+set}" = set; then - with_offix="$enable_offix" -fi; -# Check whether --with-offix or --without-offix was given. -if test "${with_offix+set}" = set; then - enableval="$with_offix" - withval="$with_offix" - -fi; # If --with-external-widget or --without-external-widget were given then copy the value to the # equivalent enable_external-widget variable. if test "${with_external_widget+set}" = set; then @@ -21053,7 +21030,7 @@ fi if test "$with_x11" != "yes"; then - for feature in with_tooltalk with_cde with_offix with_wmcommand with_xim enable_sound_nas + for feature in with_tooltalk with_cde with_wmcommand with_xim enable_sound_nas do if eval "test -n \"\$${feature}\" -a \"\$${feature}\" != \"no\"" ; then { $as_echo "$as_me:$LINENO: WARNING: --$feature ignored: Not valid without X support" >&5 @@ -23384,30 +23361,6 @@ need_motif=yes # CDE requires Motif fi -test "$window_system" != "x11" && with_offix=no -if test "$with_dragndrop" = no; then - if test "$with_offix" = "yes" ; then - { $as_echo "$as_me:$LINENO: WARNING: --with-offix forced to \`no'; no generic Drag'n'Drop support" >&5 -$as_echo "$as_me: WARNING: --with-offix forced to \`no'; no generic Drag'n'Drop support" >&2;} - fi - with_offix=no -fi -if test "$with_cde" = yes; then - if test "$with_offix" = "yes" ; then - { $as_echo "$as_me:$LINENO: WARNING: --with-offix forced to \`no'; CDE already found" >&5 -$as_echo "$as_me: WARNING: --with-offix forced to \`no'; CDE already found" >&2;} - fi - with_offix=no -fi -test -z "$with_offix" && with_offix=no -if test "$with_offix" = "yes"; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_OFFIX_DND 1 -_ACEOF - - dnd_objs="$dnd_objs offix.o" && if test "$verbose" = "yes"; then echo " Appending \"offix.o\" to \$dnd_objs"; fi - dragndrop_proto="$dragndrop_proto OffiX" && if test "$verbose" = "yes"; then echo " Appending \"OffiX\" to \$dragndrop_proto"; fi -fi if test "$with_gtk" = "yes"; then dragndrop_proto="$dragndrop_proto GTK" && if test "$verbose" = "yes"; then echo " Appending \"GTK\" to \$dragndrop_proto"; fi fi
--- a/configure.ac Thu Dec 24 19:45:23 2009 -0600 +++ b/configure.ac Thu Dec 24 19:46:51 2009 -0600 @@ -741,22 +741,13 @@ [], [],[yes,no,lucid,motif,athena,gtk,msw]) XE_MERGED_ARG([dragndrop], AS_HELP_STRING([--with-dragndrop],[Compile in the generic drag and drop API. This is automatically added if one of the drag and drop - protocols is found (currently CDE, OffiX, MSWindows, - and GTK). + protocols is found (currently CDE, MSWindows, and GTK). *WARNING* The Drag'n'drop support is under development and is considered experimental.]), [], []) XE_MERGED_ARG([cde], AS_HELP_STRING([--with-cde],[Compile in support for CDE drag and drop.]), [], []) -XE_MERGED_ARG([offix], - AS_HELP_STRING([--with-offix],[Compile in support for OffiX drag and drop. - *WARNING* If you compile in OffiX, you may not be - able to use multiple X displays success- - fully. If the two servers are from - different vendors, the results may be - unpredictable.]), - [], []) XE_MERGED_ARG([external-widget], AS_HELP_STRING([--enable-external-widget],[Support XEmacs server for text widgets in other applications.]), [], []) @@ -3252,7 +3243,7 @@ dnl if test "$with_tty" = "no" ; then dnl AC_MSG_ERROR([No window system support and no TTY support - Unable to proceed.]) dnl fi - for feature in with_tooltalk with_cde with_offix with_wmcommand with_xim enable_sound_nas + for feature in with_tooltalk with_cde with_wmcommand with_xim enable_sound_nas do if eval "test -n \"\$${feature}\" -a \"\$${feature}\" != \"no\"" ; then AC_MSG_WARN([--$feature ignored: Not valid without X support]) @@ -3488,35 +3479,12 @@ need_motif=yes # CDE requires Motif fi -dnl Always compile OffiX unless --without-offix is given, no -dnl X11 support is compiled in, or dragndrop support is disabled -dnl Because OffiX support currently loses when more than one display -dnl is in use, we now disable it by default -slb 07/10/1998. -test "$window_system" != "x11" && with_offix=no -if test "$with_dragndrop" = no; then - if test "$with_offix" = "yes" ; then - AC_MSG_WARN([--with-offix forced to `no'; no generic Drag'n'Drop support]) - fi - with_offix=no -fi -if test "$with_cde" = yes; then - if test "$with_offix" = "yes" ; then - AC_MSG_WARN([--with-offix forced to `no'; CDE already found]) - fi - with_offix=no -fi -test -z "$with_offix" && with_offix=no -if test "$with_offix" = "yes"; then - AC_DEFINE(HAVE_OFFIX_DND) - XE_APPEND(offix.o, dnd_objs) - XE_APPEND(OffiX, dragndrop_proto) -fi if test "$with_gtk" = "yes"; then XE_APPEND(GTK, dragndrop_proto) fi dnl Autodetect Drag'n'Drop support -dnl always included if CDE, Offix, or MSWindows are defined +dnl always included if CDE or MSWindows is defined if test "$with_dragndrop" != "no" ; then AC_MSG_CHECKING(if drag and drop API is needed) if test -n "$dragndrop_proto" ; then
--- a/lisp/ChangeLog Thu Dec 24 19:45:23 2009 -0600 +++ b/lisp/ChangeLog Thu Dec 24 19:46:51 2009 -0600 @@ -1,3 +1,15 @@ +2009-12-21 Jerry James <james@xemacs.org> + + * dragdrop.el (offix-start-drag): Remove. + (offix-start-drag-region): Remove. + * mouse.el (mouse-begin-drag-n-drop): Remove OffiX support. + +2009-12-21 Adrian Aichner <adrian@xemacs.org> + + * package-get.el (package-get-download-sites): Remove + dk.xemacs.org from list of package download sites. + * package-get.el (package-get-pre-release-download-sites): Ditto. + 2009-12-21 Aidan Kehoe <kehoea@parhasard.net> * mule/arabic.el (arabic-iso8859-6):
--- a/lisp/dragdrop.el Thu Dec 24 19:45:23 2009 -0600 +++ b/lisp/dragdrop.el Thu Dec 24 19:46:51 2009 -0600 @@ -400,29 +400,6 @@ event nil (list (buffer-substring-no-properties begin end))) (error "CDE functionality not compiled in."))) -;; the OffiX drag stuff will soon move also (perhaps mouse.el) -;; if the drag event is done -(defun offix-start-drag (event data &optional type) - "Implement the OffiX drag operation. -Calls the internal function offix-start-drag-internal to do the actual work. -If type is not given, DndText is assumed." - ;; Oliver Graf <ograf@fga.de> - (interactive "esi") - (if (featurep 'offix) - (funcall (intern "offix-start-drag-internal") event data type) - (error "OffiX functionality not compiled in."))) - -(defun offix-start-drag-region (event begin end) - "Implement the OffiX drag operation for a region. -Calls the internal function offix-start-drag-internal to do the actual work. -This always assumes DndText as type." - ;; Oliver Graf <ograf@fga.de> - (interactive "_er") - (if (featurep 'offix) - (funcall (intern "offix-start-drag-internal") - event (buffer-substring-no-properties begin end)) - (error "OffiX functionality not compiled in."))) - (defun gtk-start-drag (event data &optional type) (interactive "esi") (if (featurep 'gtk)
--- a/lisp/mouse.el Thu Dec 24 19:45:23 2009 -0600 +++ b/lisp/mouse.el Thu Dec 24 19:46:51 2009 -0600 @@ -231,15 +231,7 @@ Returns whether a drag was begun." ;; #### barely implemented. (when (click-inside-selection-p event) - (cond ((featurep 'offix) - (declare-fboundp - (offix-start-drag-region - event - (extent-start-position zmacs-region-extent) - (extent-end-position zmacs-region-extent))) - t) - ((featurep 'cde) - ;; should also work with CDE + (cond ((featurep 'cde) (declare-fboundp (cde-start-drag-region event (extent-start-position zmacs-region-extent)
--- a/lisp/package-get.el Thu Dec 24 19:45:23 2009 -0600 +++ b/lisp/package-get.el Thu Dec 24 19:46:51 2009 -0600 @@ -227,7 +227,6 @@ ; ("Chile (cl.xemacs.org)" "ftp.cl.xemacs.org" "packages") ("China (ftp.cn.xemacs.org)" "ftp.cn.xemacs.org" "pub/xemacs/packages") ("Czech Republic (cz.xemacs.org)" "ftp.cz.xemacs.org" "MIRRORS/ftp.xemacs.org/pub/xemacs/packages") - ("Denmark (dk.xemacs.org)" "ftp.dk.xemacs.org" "xemacs/packages") ("Finland (fi.xemacs.org)" "ftp.fi.xemacs.org" "pub/mirrors/ftp.xemacs.org/pub/tux/xemacs/packages") ("France (fr.xemacs.org)" "ftp.fr.xemacs.org" "pub/xemacs/packages") ("France (mirror.cict.fr)" "mirror.cict.fr" "xemacs/packages") @@ -302,8 +301,6 @@ "pub/xemacs/beta/experimental/packages") ("Czech Republic Pre-Releases (cz.xemacs.org)" "ftp.cz.xemacs.org" "MIRRORS/ftp.xemacs.org/pub/xemacs/xemacs-21.5/experimental/packages") - ("Denmark Pre-Releases (dk.xemacs.org)" "ftp.dk.xemacs.org" - "xemacs/beta/experimental/packages") ("Finland Pre-Releases (fi.xemacs.org)" "ftp.fi.xemacs.org" "pub/mirrors/ftp.xemacs.org/pub/tux/xemacs/beta/experimental/packages") ("France Pre-Releases (fr.xemacs.org)" "ftp.fr.xemacs.org"
--- a/man/ChangeLog Thu Dec 24 19:45:23 2009 -0600 +++ b/man/ChangeLog Thu Dec 24 19:46:51 2009 -0600 @@ -1,3 +1,11 @@ +2009-12-21 Jerry James <james@xemacs.rg> + + * internals/internals.texi (A Summary of the Various XEmacs Modules): + Remove references to OffiX support files. + * lispref/dragndrop.texi (Drag and Drop): Remove reference to OffiX. + (Supported Protocols): Ditto. + (OffiX DND): Remove. + 2009-12-10 Jerry James <james@xemacs.org> * lispref/processes.texi (Functions that Create Subprocesses): Refer
--- a/man/internals/internals.texi Thu Dec 24 19:45:23 2009 -0600 +++ b/man/internals/internals.texi Thu Dec 24 19:46:51 2009 -0600 @@ -3107,10 +3107,6 @@ @item @file{objects-x.h} @tab @ref{Modules for other Display-Related Lisp Objects}. @item @file{objects.c} @tab @ref{Modules for other Display-Related Lisp Objects}. @item @file{objects.h} @tab @ref{Modules for other Display-Related Lisp Objects}. -@item @file{offix-cursors.h} @tab -@item @file{offix-types.h} @tab -@item @file{offix.c} @tab -@item @file{offix.h} @tab @item @file{opaque.c} @tab @ref{Modules for Other Aspects of the Lisp Interpreter and Object System}. @item @file{opaque.h} @tab @ref{Modules for Other Aspects of the Lisp Interpreter and Object System}. @item @file{paths.h.in} @tab
--- a/man/lispref/dragndrop.texi Thu Dec 24 19:45:23 2009 -0600 +++ b/man/lispref/dragndrop.texi Thu Dec 24 19:46:51 2009 -0600 @@ -12,9 +12,9 @@ interface may change! The current implementation is considered experimental. Drag'n'drop is a way to transfer information between multiple applications. -To do this several GUIs define their own protocols. Examples are OffiX, CDE, -Motif, KDE, MSWindows, GNOME, and many more. To catch all these protocols, -XEmacs provides a generic API. +To do this several GUIs define their own protocols. Examples are CDE, Motif, +KDE, MSWindows, GNOME, and many more. To catch all these protocols, XEmacs +provides a generic API. One prime idea behind the API is to use a data interface that is transparent for all systems. The author thinks that this is best @@ -35,36 +35,11 @@ protocols. Some of these only support limited options available in the API. @menu -* OffiX DND:: A generic X based protocol. * CDE dt:: Common Desktop Environment used on suns. * MSWindows OLE:: Mr. Gates way of live. * Loose ends:: The other protocols. @end menu -@node OffiX DND -@subsection OffiX DND -@cindex OffiX DND - -@emph{WARNING}: If you compile in OffiX, you may not be able to use -multiple X displays successfully. If the two servers are from -different vendors, the results may be unpredictable. - -The OffiX Drag'n'Drop protocol is part of a X API/Widget library created by -Cesar Crusius. It is based on X-Atoms and ClientMessage events, and works with -any X platform supporting them. - -OffiX is supported if 'offix is member of the variable dragdrop-protocols, or -the feature 'offix is defined. - -Unfortunately it uses it's own data types. Examples are: File, Files, -Exe, Link, URL, MIME. The API tries to choose the right type for the data that -is dragged from XEmacs (well, not yet...). - -XEmacs supports both MIME and URL drags and drops using this API. No application -interaction is possible while dragging is in progress. - -For information about the OffiX project have a look at http://leb.net/~offix/ - @node CDE dt @subsection CDE dt @cindex CDE dt @@ -90,7 +65,7 @@ @subsection Loose ends The following protocols will be supported soon: Xdnd, Motif, Xde (if I -get some specs), KDE OffiX (if KDE can find XEmacs windows). +get some specs). In particular Xdnd will be one of the protocols that can benefit from the XEmacs API, cause it also uses MIME types to encode dragged data.
--- a/nt/ChangeLog Thu Dec 24 19:45:23 2009 -0600 +++ b/nt/ChangeLog Thu Dec 24 19:46:51 2009 -0600 @@ -1,3 +1,7 @@ +2009-12-21 Jerry James <james@xemacs.org> + + * xemacs.dsp: Remove references to OffiX files. + 2009-12-15 Jerry James <james@xemacs.org> * xemacs.mak: Remove build dependency for lib-src/wakeup. Thanks to
--- a/nt/xemacs.dsp Thu Dec 24 19:45:23 2009 -0600 +++ b/nt/xemacs.dsp Thu Dec 24 19:46:51 2009 -0600 @@ -919,22 +919,6 @@ # End Source File # Begin Source File -SOURCE="..\src\offix-cursors.h" -# End Source File -# Begin Source File - -SOURCE="..\src\offix-types.h" -# End Source File -# Begin Source File - -SOURCE=..\src\offix.c -# End Source File -# Begin Source File - -SOURCE=..\src\offix.h -# End Source File -# Begin Source File - SOURCE=..\src\opaque.c # End Source File # Begin Source File
--- a/src/ChangeLog Thu Dec 24 19:45:23 2009 -0600 +++ b/src/ChangeLog Thu Dec 24 19:46:51 2009 -0600 @@ -1,3 +1,31 @@ +2009-12-21 Jerry James <james@xemacs.org> + + * config.h.in: Remove OffiX support. + * device-x.c: Ditto. + * dragdrop.c: Ditto. + (vars_of_dragrop): Ditto + * event-Xt.c: Ditto. + (x_event_to_emacs_event): Ditto. + * frame.c (vars_of_frame): Ditto + * frame-x.c: Ditto. + (Foffix_start_drag_internal): Remove. + (syms_of_frame_x): Remove OffiX support.. + * Makefile.in.in: Ditto. + * event-gtk.c: Don't include OffiX headers. + * offix.c: Remove. + * offic.h: Remove. + * offix-cursors.h: Remove. + * offix-types.h: Remove. + * text.h (Qoffix_dnd_encoding): Remove, twice. + * depend: Regenerate. + +2009-11-27 Adrian Aichner <adrian@xemacs.org> + + * nt.c (mswindows_getdcwd): Check first whether drive is valid + with _getdrives() to avoid crash in _wgetdcwd(...) when linking + against msvcrt8. This fix was taken from the Mozilla project + which experienced the same problem. + 2009-12-18 Jerry James <james@xemacs.org> * ppc.ldscript: Remove, obsolete.
--- a/src/Makefile.in.in Thu Dec 24 19:45:23 2009 -0600 +++ b/src/Makefile.in.in Thu Dec 24 19:46:51 2009 -0600 @@ -353,9 +353,9 @@ # endif /* EXTERNAL_WIDGET */ -# if defined (HAVE_OFFIX_DND) || defined (HAVE_CDE) +# if defined (HAVE_CDE) dnd_objs = @dnd_objs@ -# endif /* HAVE_OFFIX_DND || HAVE_CDE */ +# endif /* HAVE_CDE */ X11_objs = EmacsFrame.o EmacsShell.o TopLevelEmacsShell.o TransientEmacsShell.o EmacsManager.o $(external_widget_objs) $(dnd_objs) #endif /* HAVE_X_WINDOWS */
--- a/src/config.h.in Thu Dec 24 19:45:23 2009 -0600 +++ b/src/config.h.in Thu Dec 24 19:46:51 2009 -0600 @@ -659,9 +659,6 @@ Requires libDtSvc, which typically must be present at runtime. */ #undef HAVE_CDE -/* Compile in support for OffiX Drag and Drop? */ -#undef HAVE_OFFIX_DND - /* Compile in generic Drag'n'Drop API */ #undef HAVE_DRAGNDROP
--- a/src/depend Thu Dec 24 19:45:23 2009 -0600 +++ b/src/depend Thu Dec 24 19:46:51 2009 -0600 @@ -42,9 +42,9 @@ balloon-x.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h balloon_help.h compiler.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dumper.h gc.h general-slots.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h specifier.h symeval.h symsinit.h text.h vdb.h xintrinsic.h balloon_help.o: $(CONFIG_H) balloon_help.h compiler.h xintrinsic.h console-x.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h buffer.h bufslots.h casetab.h charset.h chartab.h compiler.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dumper.h elhash.h gc.h general-slots.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h process.h redisplay.h specifier.h symeval.h symsinit.h text.h vdb.h xintrinsic.h -device-x.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h buffer.h bufslots.h casetab.h charset.h chartab.h coding-system-slots.h compiler.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dumper.h elhash.h events.h faces.h file-coding.h frame-impl.h frame.h frameslots.h gc.h general-slots.h glyphs-x.h glyphs.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h objects-x.h objects.h offix-types.h offix.h process.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h sysdll.h sysfile.h systime.h text.h vdb.h window-impl.h window.h winslots.h xgccache.h xintrinsic.h xintrinsicp.h +device-x.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h buffer.h bufslots.h casetab.h charset.h chartab.h coding-system-slots.h compiler.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dumper.h elhash.h events.h faces.h file-coding.h frame-impl.h frame.h frameslots.h gc.h general-slots.h glyphs-x.h glyphs.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h objects-x.h objects.h process.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h sysdll.h sysfile.h systime.h text.h vdb.h window-impl.h window.h winslots.h xgccache.h xintrinsic.h xintrinsicp.h dialog-x.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h buffer.h bufslots.h casetab.h charset.h chartab.h commands.h compiler.h conslots.h console-impl.h console-x-impl.h console-x.h console.h dumper.h events.h frame-impl.h frame.h frameslots.h gc.h general-slots.h gui.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h opaque.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h text.h vdb.h window.h xintrinsic.h -frame-x.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h EmacsFrameP.h EmacsManager.h EmacsShell.h ExternalShell.h buffer.h bufslots.h casetab.h charset.h chartab.h compiler.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dragdrop.h dumper.h events.h extents.h faces.h frame-impl.h frame.h frameslots.h gc.h general-slots.h glyphs-x.h glyphs.h gutter.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h objects-impl.h objects-x-impl.h objects-x.h objects.h offix-types.h offix.h redisplay.h scrollbar-x.h scrollbar.h specifier.h symeval.h symsinit.h systime.h text.h vdb.h window-impl.h window.h winslots.h xintrinsic.h xintrinsicp.h xmotif.h xmprimitivep.h +frame-x.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h EmacsFrameP.h EmacsManager.h EmacsShell.h ExternalShell.h buffer.h bufslots.h casetab.h charset.h chartab.h compiler.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dragdrop.h dumper.h events.h extents.h faces.h frame-impl.h frame.h frameslots.h gc.h general-slots.h glyphs-x.h glyphs.h gutter.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h objects-impl.h objects-x-impl.h objects-x.h objects.h redisplay.h scrollbar-x.h scrollbar.h specifier.h symeval.h symsinit.h systime.h text.h vdb.h window-impl.h window.h winslots.h xintrinsic.h xintrinsicp.h xmotif.h xmprimitivep.h glyphs-x.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h bitmaps.h buffer.h bufslots.h casetab.h charset.h chartab.h coding-system-slots.h compiler.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dumper.h faces.h file-coding.h frame-impl.h frame.h frameslots.h gc.h general-slots.h glyphs-x.h glyphs.h gui.h imgproc.h insdel.h lisp-disunion.h lisp-union.h lisp.h lrecord.h lstream.h mc-alloc.h number-gmp.h number-mp.h number.h objects-impl.h objects-x-impl.h objects-x.h objects.h opaque.h process.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysfile.h sysproc.h syssignal.h systime.h text.h vdb.h window-impl.h window.h winslots.h xintrinsic.h xmotif.h gui-x.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h buffer.h bufslots.h casetab.h charset.h chartab.h compiler.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dumper.h events.h frame.h gc.h general-slots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h menubar.h number-gmp.h number-mp.h number.h opaque.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h text.h vdb.h window-impl.h window.h winslots.h xintrinsic.h xmotif.h intl-x.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h compiler.h console-x.h console.h dumper.h gc.h general-slots.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h symeval.h symsinit.h text.h vdb.h xintrinsic.h @@ -70,7 +70,7 @@ dialog-gtk.o: $(CONFIG_H) $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h commands.h compiler.h conslots.h console-gtk-impl.h console-gtk.h console-impl.h console.h dumper.h events.h frame.h gc.h general-slots.h gui.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h opaque.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h text.h vdb.h window.h emacs-marshals.o: hash.h emacs-widget-accessors.o: -event-gtk.o: $(CONFIG_H) $(LISP_H) blocktype.h buffer.h bufslots.h casetab.h charset.h chartab.h coding-system-slots.h commands.h compiler.h conslots.h console-gtk-impl.h console-gtk.h console-impl.h console-tty.h console.h device-impl.h device.h devslots.h dragdrop.h dumper.h elhash.h event-gtk.h event-xlike-inc.c events.h file-coding.h frame-impl.h frame.h frameslots.h gc.h general-slots.h gtk-xemacs.h gui.h lisp-disunion.h lisp-union.h lisp.h lrecord.h lstream.h mc-alloc.h menubar.h number-gmp.h number-mp.h number.h objects-gtk.h objects.h offix-types.h offix.h process.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysproc.h syssignal.h systime.h systty.h text.h vdb.h window.h xintrinsic.h +event-gtk.o: $(CONFIG_H) $(LISP_H) blocktype.h buffer.h bufslots.h casetab.h charset.h chartab.h coding-system-slots.h commands.h compiler.h conslots.h console-gtk-impl.h console-gtk.h console-impl.h console-tty.h console.h device-impl.h device.h devslots.h dragdrop.h dumper.h elhash.h event-gtk.h event-xlike-inc.c events.h file-coding.h frame-impl.h frame.h frameslots.h gc.h general-slots.h gtk-xemacs.h gui.h lisp-disunion.h lisp-union.h lisp.h lrecord.h lstream.h mc-alloc.h menubar.h number-gmp.h number-mp.h number.h objects-gtk.h objects.h process.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysproc.h syssignal.h systime.h systty.h text.h vdb.h window.h frame-gtk.o: $(CONFIG_H) $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h compiler.h conslots.h console-gtk-impl.h console-gtk.h console-impl.h console.h device-impl.h device.h devslots.h dragdrop.h dumper.h elhash.h events.h extents.h faces.h frame-impl.h frame.h frameslots.h gc.h general-slots.h glyphs-gtk.h glyphs.h gtk-xemacs.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h objects-gtk-impl.h objects-gtk.h objects-impl.h objects.h redisplay.h scrollbar-gtk.h scrollbar.h specifier.h symeval.h symsinit.h sysdll.h systime.h text.h ui-gtk.h vdb.h window-impl.h window.h winslots.h gccache-gtk.o: $(CONFIG_H) $(LISP_H) compiler.h dumper.h gc.h gccache-gtk.h general-slots.h hash.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h symeval.h symsinit.h text.h vdb.h glade.o: bytecode.h @@ -138,7 +138,7 @@ emodules.o: $(CONFIG_H) $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h coding-system-slots.h compiler.h console.h dumper.h emodules.h file-coding.h frame.h gc.h general-slots.h insdel.h lisp-disunion.h lisp-union.h lisp.h lrecord.h lstream.h mc-alloc.h number-gmp.h number-mp.h number.h redisplay.h scrollbar.h symeval.h symsinit.h sysdep.h sysdll.h text.h vdb.h window.h esd.o: $(CONFIG_H) $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h compiler.h dumper.h gc.h general-slots.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h miscplay.h number-gmp.h number-mp.h number.h sound.h symeval.h symsinit.h sysfile.h text.h vdb.h eval.o: $(CONFIG_H) $(LISP_H) backtrace.h buffer.h bufslots.h bytecode.h casetab.h charset.h chartab.h commands.h compiler.h conslots.h console-impl.h console.h device.h dumper.h frame.h gc.h general-slots.h lisp-disunion.h lisp-union.h lisp.h lrecord.h lstream.h mc-alloc.h number-gmp.h number-mp.h number.h opaque.h profile.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h text.h vdb.h window.h -event-Xt.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h Emacs.ad.h EmacsFrame.h blocktype.h charset.h coding-system-slots.h compiler.h conslots.h console-impl.h console-tty.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dragdrop.h dumper.h elhash.h event-xlike-inc.c events.h file-coding.h frame-impl.h frame.h frameslots.h gc.h general-slots.h glyphs.h lisp-disunion.h lisp-union.h lisp.h lrecord.h lstream.h mc-alloc.h number-gmp.h number-mp.h number.h objects-x.h objects.h offix-types.h offix.h process.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysproc.h syssignal.h systime.h systty.h text.h vdb.h window-impl.h window.h winslots.h xintrinsic.h xintrinsicp.h xmotif.h +event-Xt.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h Emacs.ad.h EmacsFrame.h blocktype.h charset.h coding-system-slots.h compiler.h conslots.h console-impl.h console-tty.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dragdrop.h dumper.h elhash.h event-xlike-inc.c events.h file-coding.h frame-impl.h frame.h frameslots.h gc.h general-slots.h glyphs.h lisp-disunion.h lisp-union.h lisp.h lrecord.h lstream.h mc-alloc.h number-gmp.h number-mp.h number.h objects-x.h objects.h process.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysproc.h syssignal.h systime.h systty.h text.h vdb.h window-impl.h window.h winslots.h xintrinsic.h xintrinsicp.h xmotif.h event-stream.o: $(CONFIG_H) $(LISP_H) backtrace.h blocktype.h buffer.h bufslots.h casetab.h charset.h chartab.h coding-system-slots.h commands.h compiler.h conslots.h console-impl.h console.h device-impl.h device.h devslots.h dumper.h elhash.h events.h file-coding.h frame-impl.h frame.h frameslots.h gc.h general-slots.h gui.h insdel.h keymap.h lisp-disunion.h lisp-union.h lisp.h lrecord.h lstream.h macros.h mc-alloc.h menubar.h number-gmp.h number-mp.h number.h process.h profile.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h sysfile.h syssignal.h systime.h text.h vdb.h window-impl.h window.h winslots.h event-unixoid.o: $(CONFIG_H) $(LISP_H) compiler.h conslots.h console-impl.h console-stream-impl.h console-stream.h console-tty-impl.h console-tty.h console.h device-impl.h device.h devslots.h dumper.h events.h gc.h general-slots.h lisp-disunion.h lisp-union.h lisp.h lrecord.h lstream.h mc-alloc.h number-gmp.h number-mp.h number.h process.h specifier.h symeval.h symsinit.h sysdep.h sysfile.h sysproc.h syssignal.h systime.h systty.h text.h vdb.h events.o: $(CONFIG_H) $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h compiler.h conslots.h console-impl.h console-tty-impl.h console-tty.h console.h device.h dumper.h events.h extents.h frame-impl.h frame.h frameslots.h gc.h general-slots.h glyphs.h keymap.h lisp-disunion.h lisp-union.h lisp.h lrecord.h lstream.h mc-alloc.h number-gmp.h number-mp.h number.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h systty.h text.h toolbar.h vdb.h window-impl.h window.h winslots.h @@ -200,7 +200,6 @@ number-mp.o: $(CONFIG_H) $(LISP_H) compiler.h dumper.h gc.h general-slots.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h symeval.h symsinit.h text.h vdb.h number.o: $(CONFIG_H) $(LISP_H) compiler.h dumper.h gc.h general-slots.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h symeval.h symsinit.h text.h vdb.h objects.o: $(CONFIG_H) $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h compiler.h conslots.h console-impl.h console-tty.h console.h device-impl.h device.h devslots.h dumper.h elhash.h faces.h frame.h gc.h general-slots.h glyphs.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h objects-impl.h objects.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systty.h text.h vdb.h window-impl.h window.h winslots.h -offix.o: offix-cursors.h offix-types.h offix.h xintrinsic.h opaque.o: $(CONFIG_H) $(LISP_H) compiler.h dumper.h gc.h general-slots.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h opaque.h symeval.h symsinit.h text.h vdb.h print.o: $(CONFIG_H) $(LISP_H) backtrace.h buffer.h bufslots.h bytecode.h casetab.h charset.h chartab.h compiler.h conslots.h console-impl.h console-msw.h console-stream-impl.h console-stream.h console-tty-impl.h console-tty.h console.h device-impl.h device.h devslots.h dumper.h extents.h frame.h gc.h general-slots.h insdel.h intl-auto-encap-win32.h lisp-disunion.h lisp-union.h lisp.h lrecord.h lstream.h mc-alloc.h number-gmp.h number-mp.h number.h opaque.h redisplay.h specifier.h symeval.h symsinit.h sysfile.h systty.h syswindows.h text.h vdb.h process-nt.o: $(CONFIG_H) $(LISP_H) compiler.h console-msw.h console.h dumper.h events.h gc.h general-slots.h hash.h intl-auto-encap-win32.h lisp-disunion.h lisp-union.h lisp.h lrecord.h lstream.h mc-alloc.h number-gmp.h number-mp.h number.h process-slots.h process.h procimpl.h symeval.h symsinit.h sysfile.h sysproc.h syssignal.h systime.h syswindows.h text.h vdb.h
--- a/src/device-x.c Thu Dec 24 19:45:23 2009 -0600 +++ b/src/device-x.c Thu Dec 24 19:46:51 2009 -0600 @@ -61,10 +61,6 @@ #include "sysdll.h" #endif /* HAVE_SHLIB and LWLIB_USES_ATHENA and not HAVE_ATHENA_3D */ -#ifdef HAVE_OFFIX_DND -#include "offix.h" -#endif - Lisp_Object Vx_app_defaults_directory; #ifdef MULE Lisp_Object Qget_coding_system_from_locale; @@ -910,11 +906,6 @@ } #endif /* HAVE_WMCOMMAND */ - -#ifdef HAVE_OFFIX_DND - DndInitialize (app_shell); -#endif - Vx_initial_argv_list = make_arg_list (argc, argv); free_argc_argv (argv);
--- a/src/dragdrop.c Thu Dec 24 19:45:23 2009 -0600 +++ b/src/dragdrop.c Thu Dec 24 19:46:51 2009 -0600 @@ -26,8 +26,6 @@ /* A short introduction to the new Drag'n'Drop Model: - Currently only drops from OffiX are implemented. - A drop generates a extended misc-user-event, as defined in events.[ch]. This event contains the same as a eval and a button event. The function of a drop is set to 'dragdrop-drop-dispatch' which will be @@ -137,9 +135,6 @@ #ifdef HAVE_CDE Vdragdrop_protocols = Fcons (intern ("cde"), Vdragdrop_protocols); #endif -#ifdef HAVE_OFFIX_DND - Vdragdrop_protocols = Fcons (intern ("offix"), Vdragdrop_protocols); -#endif #ifdef HAVE_GTK Vdragdrop_protocols = Fcons (Qgtk, Vdragdrop_protocols); #endif
--- a/src/event-Xt.c Thu Dec 24 19:45:23 2009 -0600 +++ b/src/event-Xt.c Thu Dec 24 19:46:51 2009 -0600 @@ -63,10 +63,6 @@ #include "dragdrop.h" #endif -#if defined (HAVE_OFFIX_DND) -#include "offix.h" -#endif - #ifdef WIN32_ANY extern int mswindows_is_blocking; #endif @@ -1317,135 +1313,7 @@ passed as the timestamp of the TAKE_FOCUS, which the ICCCM explicitly prohibits. */ XClientMessageEvent *ev = &x_event->xclient; -#ifdef HAVE_OFFIX_DND - if (DndIsDropMessage (x_event)) - { - unsigned int state; - int modifiers = 0; - int button = 0; - struct frame *frame = x_any_window_to_frame (d, ev->window); - Extbyte *data; - unsigned long size, dtype; - Lisp_Object l_type = Qnil, l_data = Qnil; - Lisp_Object l_dndlist = Qnil, l_item = Qnil; - struct gcpro gcpro1, gcpro2, gcpro3, gcpro4; - - if (! frame) - return 0; /* not for us */ - - GCPRO4 (l_type, l_data, l_dndlist, l_item); - set_event_type (emacs_event, misc_user_event); - SET_EVENT_CHANNEL (emacs_event, wrap_frame (frame)); - SET_EVENT_TIMESTAMP (emacs_event, - DEVICE_X_LAST_SERVER_TIMESTAMP (d)); - state=DndDragButtons (x_event); - - if (state & ShiftMask) modifiers |= XEMACS_MOD_SHIFT; - if (state & ControlMask) modifiers |= XEMACS_MOD_CONTROL; - if (state & xd->MetaMask) modifiers |= XEMACS_MOD_META; - if (state & xd->SuperMask) modifiers |= XEMACS_MOD_SUPER; - if (state & xd->HyperMask) modifiers |= XEMACS_MOD_HYPER; - if (state & xd->AltMask) modifiers |= XEMACS_MOD_ALT; - if (state & Button1Mask) modifiers |= XEMACS_MOD_BUTTON1; - if (state & Button2Mask) modifiers |= XEMACS_MOD_BUTTON2; - if (state & Button3Mask) modifiers |= XEMACS_MOD_BUTTON3; - if (state & Button4Mask) modifiers |= XEMACS_MOD_BUTTON4; - if (state & Button5Mask) modifiers |= XEMACS_MOD_BUTTON5; - - if (state & Button5Mask) button = Button5; - if (state & Button4Mask) button = Button4; - if (state & Button3Mask) button = Button3; - if (state & Button2Mask) button = Button2; - if (state & Button1Mask) button = Button1; - - SET_EVENT_MISC_USER_MODIFIERS (emacs_event, modifiers); - SET_EVENT_MISC_USER_BUTTON (emacs_event, button); - - DndDropCoordinates (FRAME_X_TEXT_WIDGET (frame), x_event, - &(EVENT_MISC_USER_X (emacs_event)), - &(EVENT_MISC_USER_Y (emacs_event))); - DndGetData (x_event, &data, &size); - - dtype = DndDataType (x_event); - switch (dtype) - { - case DndFiles: /* null terminated strings, end null */ - { - int len; - Ibyte *hurl = NULL; - - while (*data) - { - Ibyte *dataint; - len = strlen (data); - EXTERNAL_TO_C_STRING (data, dataint, Qfile_name); - hurl = dnd_url_hexify_string (dataint, - (const Ibyte *) "file:"); - l_item = build_intstring (hurl); - l_dndlist = Fcons (l_item, l_dndlist); - data += len + 1; - xfree (hurl, Ibyte *); - } - l_type = Qdragdrop_URL; - } - break; - case DndText: - l_type = Qdragdrop_MIME; - l_dndlist = list1 (list3 (list1 (build_string ("text/plain")), - build_string ("8bit"), - build_ext_string (data, - Qctext))); - break; - case DndMIME: - /* we have to parse this in some way to extract - content-type and params (in the tm way) and - content encoding. - OR: if data is string, let tm do the job - if data is list[2], give the first two - to tm... - */ - l_type = Qdragdrop_MIME; - l_dndlist = list1 (build_ext_string (data, Qbinary)); - break; - case DndFile: - case DndDir: - case DndLink: - case DndExe: - { - Ibyte *dataint, *hurl; - EXTERNAL_TO_C_STRING (data, dataint, Qfile_name); - hurl = dnd_url_hexify_string (dataint, "file:"); - l_dndlist = list1 (build_intstring (hurl)); - xfree (hurl, Ibyte *); - } - break; - case DndURL: - /* as it is a real URL it should already be escaped - and escaping again will break them (cause % is unsave) */ - l_dndlist = list1 (build_ext_string (data, - Qfile_name)); - l_type = Qdragdrop_URL; - break; - default: /* Unknown, RawData and any other type */ - l_dndlist = list1 (list3 (list1 (build_string - ("application/octet-stream")), - build_string ("8bit"), - make_ext_string (data, size, - Qbinary))); - l_type = Qdragdrop_MIME; - break; - } - - SET_EVENT_MISC_USER_FUNCTION (emacs_event, - Qdragdrop_drop_dispatch); - SET_EVENT_MISC_USER_OBJECT (emacs_event, - Fcons (l_type, l_dndlist)); - - UNGCPRO; - - break; - } -#endif /* HAVE_OFFIX_DND */ + if (ev->message_type == DEVICE_XATOM_WM_PROTOCOLS (d) && (Atom) (ev->data.l[0]) == DEVICE_XATOM_WM_TAKE_FOCUS (d) && (Atom) (ev->data.l[1]) == 0)
--- a/src/event-gtk.c Thu Dec 24 19:45:23 2009 -0600 +++ b/src/event-gtk.c Thu Dec 24 19:46:51 2009 -0600 @@ -62,10 +62,6 @@ # include "menubar.h" #endif -#if defined (HAVE_OFFIX_DND) -#include "offix.h" -#endif - #include <gdk/gdkx.h> #include "event-gtk.h"
--- a/src/frame-x.c Thu Dec 24 19:45:23 2009 -0600 +++ b/src/frame-x.c Thu Dec 24 19:46:51 2009 -0600 @@ -60,10 +60,6 @@ #include "dragdrop.h" #endif -#ifdef HAVE_OFFIX_DND -#include "offix.h" -#endif - /* Default properties to use when creating frames. */ Lisp_Object Vdefault_x_frame_plist; @@ -1002,7 +998,7 @@ frame_title_format_already_set = 1; } -#if defined (HAVE_CDE) || defined (HAVE_OFFIX_DND) +#if defined (HAVE_CDE) static Extbyte * start_drag_internal_1 (Lisp_Object event, Lisp_Object data, @@ -1095,7 +1091,7 @@ return dnd_data; } -#endif /* defined (HAVE_CDE) || defined (HAVE_OFFIX_DND) */ +#endif /* defined (HAVE_CDE) */ #ifdef HAVE_CDE #include <Dt/Dt.h> @@ -1333,46 +1329,6 @@ } #endif /* HAVE_CDE */ -#ifdef HAVE_OFFIX_DND - -DEFUN ("offix-start-drag-internal", Foffix_start_drag_internal, 2, 3, 0, /* -Start a OffiX drag from a buffer. -First arg is the event that started the drag, -second arg should be some string, and the third -is the type of the data (this should be an int). -The type defaults to DndText (4). -*/ - (event, data, dtyp)) -{ - Extbyte *dnd_data; - XEvent x_event; - Bytecount dnd_len; - Widget wid; - int num_items; - int dnd_type = DndText; - - if (!NILP (dtyp)) - { - CHECK_INT (dtyp); - dnd_type = XINT (dtyp); - } - - dnd_data = start_drag_internal_1 (event, data, Qoffix_dnd_encoding, - &x_event, dnd_type == DndFiles, - &wid, &dnd_len, &num_items); - - DndSetData (dnd_type, (UExtbyte *) dnd_data, dnd_len); - xfree (dnd_data, Extbyte *); - - /* the next thing blocks everything... */ - if (DndHandleDragging (wid, &x_event)) - return Qt; - - return Qnil; -} - -#endif /* HAVE_OFFIX_DND */ - /************************************************************************/ /* widget creation */ @@ -2811,9 +2767,6 @@ #ifdef HAVE_CDE DEFSUBR (Fcde_start_drag_internal); #endif -#ifdef HAVE_OFFIX_DND - DEFSUBR (Foffix_start_drag_internal); -#endif } void
--- a/src/frame.c Thu Dec 24 19:45:23 2009 -0600 +++ b/src/frame.c Thu Dec 24 19:46:51 2009 -0600 @@ -3751,10 +3751,6 @@ Fprovide (intern ("cde")); #endif -#ifdef HAVE_OFFIX_DND - Fprovide (intern ("offix")); -#endif - #if 0 /* FSFmacs stupidity */ xxDEFVAR_LISP ("emacs-iconified", &Vemacs_iconified /* Non-nil if all of emacs is iconified and frame updates are not needed.
--- a/src/nt.c Thu Dec 24 19:45:23 2009 -0600 +++ b/src/nt.c Thu Dec 24 19:46:51 2009 -0600 @@ -1815,7 +1815,27 @@ { Extbyte *cwdext; Ibyte *cwd; - + /* Following comment and two-liner fix comes from + https://bugzilla.mozilla.org/show_bug.cgi?id=419326 which + apparently fell prey to this feature of msvcrt8 as well. */ + /* We need to worry about IPH, for details read bug 419326. + * _getdrives - http://msdn2.microsoft.com/en-us/library/xdhk0xd2.aspx + * uses a bitmask, bit 0 is 'a:' + * _chdrive - http://msdn2.microsoft.com/en-us/library/0d1409hb.aspx + * _getdcwd - http://msdn2.microsoft.com/en-us/library/7t2zk3s4.aspx + * take an int, 1 is 'a:'. + * + * Because of this, we need to do some math. Subtract 1 to convert from + * _chdrive/_getdcwd format to _getdrives drive numbering. + * Shift left x bits to convert from integer indexing to bitfield indexing. + * And of course, we need to find out if the drive is in the bitmask. + * + * If we're really unlucky, we can still lose, but only if the user + * manages to eject the drive between our call to _getdrives() and + * our *calls* to _wgetdcwd. + */ + if (!((1 << (drivelet - 1)) & _getdrives())) + return NULL; if (XEUNICODE_P) cwdext = (Extbyte *) _wgetdcwd (drivelet, NULL, 0); else
--- a/src/offix-cursors.h Thu Dec 24 19:45:23 2009 -0600 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,346 +0,0 @@ -#define app_width 42 -#define app_height 32 -#define app_x_hot 1 -#define app_y_hot 1 -static unsigned char app_bits[] = { - 0x00, 0xc0, 0xff, 0xff, 0x00, 0x00, 0x02, 0x40, 0x00, 0x80, 0x01, 0x00, - 0x06, 0x40, 0x00, 0x80, 0x02, 0x00, 0x0e, 0x40, 0x00, 0x80, 0x04, 0x00, - 0x1e, 0x40, 0x00, 0x80, 0x08, 0x00, 0x3e, 0x40, 0x00, 0x80, 0x10, 0x00, - 0x7e, 0x40, 0x00, 0x80, 0x20, 0x00, 0xfe, 0x40, 0x00, 0x80, 0x7f, 0x00, - 0xfe, 0x41, 0x00, 0x00, 0x60, 0x00, 0x3e, 0x40, 0xfe, 0xff, 0x67, 0x00, - 0x36, 0x40, 0xaa, 0xaa, 0x6e, 0x00, 0x62, 0x40, 0x56, 0x55, 0x6d, 0x00, - 0x60, 0x40, 0xfe, 0xff, 0x6f, 0x00, 0xc0, 0x40, 0x02, 0x00, 0x6c, 0x00, - 0xc0, 0x40, 0x02, 0x00, 0x6c, 0x00, 0x00, 0x40, 0x02, 0x00, 0x6c, 0x00, - 0x00, 0x40, 0x02, 0x00, 0x6c, 0x00, 0x00, 0x40, 0x02, 0x00, 0x6c, 0x00, - 0x00, 0x40, 0x02, 0x00, 0x6c, 0x00, 0x00, 0x40, 0x02, 0x00, 0x6c, 0x00, - 0x00, 0x40, 0x02, 0x00, 0x6c, 0x00, 0x00, 0x40, 0x02, 0x00, 0x6c, 0x00, - 0x00, 0x40, 0x02, 0x00, 0x6c, 0x00, 0x00, 0x40, 0x02, 0x00, 0x6c, 0x00, - 0x00, 0x40, 0x02, 0x00, 0x6c, 0x00, 0x00, 0x40, 0xfe, 0xff, 0x6f, 0x00, - 0x00, 0x40, 0xfc, 0xff, 0x6f, 0x00, 0x00, 0x40, 0x00, 0x00, 0x60, 0x00, - 0x00, 0x40, 0x00, 0x00, 0x60, 0x00, 0x00, 0x40, 0x00, 0x00, 0x60, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x80, 0xff, 0xff, 0x7f, 0x00}; -#define app_mask_width 42 -#define app_mask_height 32 -#define app_mask_x_hot 1 -#define app_mask_y_hot 1 -static unsigned char app_mask_bits[] = { - 0x03, 0xc0, 0xff, 0xff, 0x00, 0x00, 0x07, 0xc0, 0xff, 0xff, 0x01, 0x00, - 0x0f, 0xc0, 0xff, 0xff, 0x03, 0x00, 0x1f, 0xc0, 0xff, 0xff, 0x07, 0x00, - 0x3f, 0xc0, 0xff, 0xff, 0x0f, 0x00, 0x7f, 0xc0, 0xff, 0xff, 0x1f, 0x00, - 0xff, 0xc0, 0xff, 0xff, 0x3f, 0x00, 0xff, 0xc1, 0xff, 0xff, 0x7f, 0x00, - 0xff, 0xc3, 0xff, 0xff, 0x7f, 0x00, 0xff, 0xc3, 0xff, 0xff, 0x7f, 0x00, - 0x7f, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0xf7, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0xf3, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0xe0, 0xc1, 0xff, 0xff, 0x7f, 0x00, - 0xe0, 0xc1, 0xff, 0xff, 0x7f, 0x00, 0xc0, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x80, 0xff, 0xff, 0x7f, 0x00}; -#define cursor_width 10 -#define cursor_height 16 -#define cursor_x_hot 0 -#define cursor_y_hot 0 -#if 0 /* unused */ -static unsigned char cursor_bits[] = { - 0x00, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0e, 0x00, 0x1e, 0x00, 0x3e, 0x00, - 0x7e, 0x00, 0xfe, 0x00, 0xfe, 0x01, 0x3e, 0x00, 0x36, 0x00, 0x62, 0x00, - 0x60, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0x00, 0x00}; -#endif /* unused */ -#define dir_width 42 -#define dir_height 24 -#define dir_x_hot 1 -#define dir_y_hot 1 -static unsigned char dir_bits[] = { - 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0x02, 0x80, 0x00, 0x02, 0x00, 0x00, - 0x06, 0x40, 0x00, 0x04, 0x00, 0x00, 0x0e, 0x20, 0x00, 0x08, 0x00, 0x00, - 0x1e, 0xf0, 0xff, 0xff, 0xff, 0x03, 0x3e, 0x10, 0x00, 0x00, 0x00, 0x02, - 0x7e, 0x10, 0x00, 0x00, 0x00, 0x02, 0xfe, 0x10, 0x00, 0x00, 0x00, 0x02, - 0xfe, 0x11, 0x00, 0x00, 0x00, 0x02, 0x3e, 0x10, 0x00, 0x00, 0x00, 0x02, - 0x36, 0x10, 0x00, 0x00, 0x00, 0x02, 0x62, 0x10, 0x00, 0x00, 0x00, 0x02, - 0x60, 0x10, 0x00, 0x00, 0x00, 0x02, 0xc0, 0x10, 0x00, 0x00, 0x00, 0x02, - 0xc0, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x03}; -#define dir_mask_width 42 -#define dir_mask_height 24 -#define dir_mask_x_hot 1 -#define dir_mask_y_hot 1 -static unsigned char dir_mask_bits[] = { - 0x03, 0x00, 0xff, 0x01, 0x00, 0x00, 0x07, 0x80, 0xff, 0x03, 0x00, 0x00, - 0x0f, 0xc0, 0xff, 0x07, 0x00, 0x00, 0x1f, 0xe0, 0xff, 0x0f, 0x00, 0x00, - 0x3f, 0xf0, 0xff, 0xff, 0xff, 0x03, 0x7f, 0xf0, 0xff, 0xff, 0xff, 0x03, - 0xff, 0xf0, 0xff, 0xff, 0xff, 0x03, 0xff, 0xf1, 0xff, 0xff, 0xff, 0x03, - 0xff, 0xf3, 0xff, 0xff, 0xff, 0x03, 0xff, 0xf3, 0xff, 0xff, 0xff, 0x03, - 0x7f, 0xf0, 0xff, 0xff, 0xff, 0x03, 0xf7, 0xf0, 0xff, 0xff, 0xff, 0x03, - 0xf3, 0xf0, 0xff, 0xff, 0xff, 0x03, 0xe0, 0xf1, 0xff, 0xff, 0xff, 0x03, - 0xe0, 0xf1, 0xff, 0xff, 0xff, 0x03, 0xc0, 0xf0, 0xff, 0xff, 0xff, 0x03, - 0x00, 0xf0, 0xff, 0xff, 0xff, 0x03, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x03, - 0x00, 0xf0, 0xff, 0xff, 0xff, 0x03, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x03, - 0x00, 0xf0, 0xff, 0xff, 0xff, 0x03, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x03, - 0x00, 0xf0, 0xff, 0xff, 0xff, 0x03, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x03}; -#define file_width 42 -#define file_height 32 -#define file_x_hot 1 -#define file_y_hot 1 -static unsigned char file_bits[] = { - 0x00, 0xc0, 0xff, 0xff, 0x07, 0x00, 0x02, 0x40, 0x00, 0x00, 0x0a, 0x00, - 0x06, 0x40, 0x00, 0x00, 0x12, 0x00, 0x0e, 0x40, 0x00, 0x00, 0x22, 0x00, - 0x1e, 0x40, 0x00, 0x00, 0x3e, 0x00, 0x3e, 0x40, 0x00, 0x00, 0x20, 0x00, - 0x7e, 0x40, 0x00, 0x00, 0x20, 0x00, 0xfe, 0x40, 0x00, 0x00, 0x20, 0x00, - 0xfe, 0x41, 0x00, 0x00, 0x20, 0x00, 0x3e, 0x40, 0x00, 0x00, 0x20, 0x00, - 0x36, 0x40, 0x00, 0x00, 0x20, 0x00, 0x62, 0x40, 0x00, 0x00, 0x20, 0x00, - 0x60, 0x40, 0x00, 0x00, 0x20, 0x00, 0xc0, 0x40, 0x00, 0x00, 0x20, 0x00, - 0xc0, 0x40, 0x00, 0x00, 0x20, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, - 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, - 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, - 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, - 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, - 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, - 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, - 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; -#define file_mask_width 42 -#define file_mask_height 32 -#define file_mask_x_hot 1 -#define file_mask_y_hot 1 -static unsigned char file_mask_bits[] = { - 0x03, 0xc0, 0xff, 0xff, 0x07, 0x00, 0x07, 0xc0, 0xff, 0xff, 0x0f, 0x00, - 0x0f, 0xc0, 0xff, 0xff, 0x1f, 0x00, 0x1f, 0xc0, 0xff, 0xff, 0x3f, 0x00, - 0x3f, 0xc0, 0xff, 0xff, 0x3f, 0x00, 0x7f, 0xc0, 0xff, 0xff, 0x3f, 0x00, - 0xff, 0xc0, 0xff, 0xff, 0x3f, 0x00, 0xff, 0xc1, 0xff, 0xff, 0x3f, 0x00, - 0xff, 0xc3, 0xff, 0xff, 0x3f, 0x00, 0xff, 0xc3, 0xff, 0xff, 0x3f, 0x00, - 0x7f, 0xc0, 0xff, 0xff, 0x3f, 0x00, 0xf7, 0xc0, 0xff, 0xff, 0x3f, 0x00, - 0xf3, 0xc0, 0xff, 0xff, 0x3f, 0x00, 0xe0, 0xc1, 0xff, 0xff, 0x3f, 0x00, - 0xe0, 0xc1, 0xff, 0xff, 0x3f, 0x00, 0xc0, 0xc0, 0xff, 0xff, 0x3f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x3f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x3f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x3f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x3f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x3f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x3f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x3f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; -#define files_width 42 -#define files_height 32 -#define files_x_hot 1 -#define files_y_hot 1 -static unsigned char files_bits[] = { - 0x00, 0xf8, 0xff, 0xff, 0x01, 0x00, 0x02, 0x08, 0x00, 0x80, 0x02, 0x00, - 0x06, 0x08, 0x00, 0x80, 0x04, 0x00, 0x0e, 0x08, 0x00, 0x80, 0x08, 0x00, - 0x1e, 0x08, 0x00, 0x80, 0x1f, 0x00, 0x3e, 0x08, 0x00, 0x00, 0x28, 0x00, - 0x7e, 0x08, 0x00, 0x00, 0x78, 0x00, 0xfe, 0x08, 0x00, 0x00, 0xa8, 0x00, - 0xfe, 0x09, 0x00, 0x00, 0xe8, 0x00, 0x3e, 0x08, 0x00, 0x00, 0xa8, 0x00, - 0x36, 0x08, 0x00, 0x00, 0xa8, 0x00, 0x62, 0x08, 0x00, 0x00, 0xa8, 0x00, - 0x60, 0x08, 0x00, 0x00, 0xa8, 0x00, 0xc0, 0x08, 0x00, 0x00, 0xa8, 0x00, - 0xc0, 0x08, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x08, 0x00, 0x00, 0xa8, 0x00, - 0x00, 0x08, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x08, 0x00, 0x00, 0xa8, 0x00, - 0x00, 0x08, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x08, 0x00, 0x00, 0xa8, 0x00, - 0x00, 0x08, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x08, 0x00, 0x00, 0xa8, 0x00, - 0x00, 0x08, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x08, 0x00, 0x00, 0xa8, 0x00, - 0x00, 0x08, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x08, 0x00, 0x00, 0xa8, 0x00, - 0x00, 0x08, 0x00, 0x00, 0xa8, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xaf, 0x00, - 0x00, 0x10, 0x00, 0x00, 0xa0, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xbf, 0x00, - 0x00, 0x20, 0x00, 0x00, 0x80, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x00}; -#define files_mask_width 42 -#define files_mask_height 32 -#define files_mask_x_hot 1 -#define files_mask_y_hot 1 -static unsigned char files_mask_bits[] = { - 0x03, 0xf8, 0xff, 0xff, 0x01, 0x00, 0x07, 0xf8, 0xff, 0xff, 0x03, 0x00, - 0x0f, 0xf8, 0xff, 0xff, 0x07, 0x00, 0x1f, 0xf8, 0xff, 0xff, 0x0f, 0x00, - 0x3f, 0xf8, 0xff, 0xff, 0x1f, 0x00, 0x7f, 0xf8, 0xff, 0xff, 0x3f, 0x00, - 0xff, 0xf8, 0xff, 0xff, 0x7f, 0x00, 0xff, 0xf9, 0xff, 0xff, 0xff, 0x00, - 0xff, 0xfb, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfb, 0xff, 0xff, 0xff, 0x00, - 0x7f, 0xf8, 0xff, 0xff, 0xff, 0x00, 0xf7, 0xf8, 0xff, 0xff, 0xff, 0x00, - 0xf3, 0xf8, 0xff, 0xff, 0xff, 0x00, 0xe0, 0xf9, 0xff, 0xff, 0xff, 0x00, - 0xe0, 0xf9, 0xff, 0xff, 0xff, 0x00, 0xc0, 0xf8, 0xff, 0xff, 0xff, 0x00, - 0x00, 0xf8, 0xff, 0xff, 0xff, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x00, - 0x00, 0xf8, 0xff, 0xff, 0xff, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x00, - 0x00, 0xf8, 0xff, 0xff, 0xff, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x00, - 0x00, 0xf8, 0xff, 0xff, 0xff, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x00, - 0x00, 0xf8, 0xff, 0xff, 0xff, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x00, - 0x00, 0xf8, 0xff, 0xff, 0xff, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x00, - 0x00, 0xf0, 0xff, 0xff, 0xff, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x00, - 0x00, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x00}; -#define grey_width 42 -#define grey_height 32 -#define grey_x_hot 1 -#define grey_y_hot 1 -static unsigned char grey_bits[] = { - 0x00, 0xc0, 0xff, 0xff, 0x00, 0x00, 0x02, 0x40, 0x55, 0xd5, 0x01, 0x00, - 0x06, 0xc0, 0xaa, 0xaa, 0x03, 0x00, 0x0e, 0x40, 0x55, 0xd5, 0x07, 0x00, - 0x1e, 0xc0, 0xaa, 0xaa, 0x0f, 0x00, 0x3e, 0x40, 0x55, 0xd5, 0x1f, 0x00, - 0x7e, 0xc0, 0xaa, 0xaa, 0x3f, 0x00, 0xfe, 0x40, 0x55, 0xd5, 0x7f, 0x00, - 0xfe, 0xc1, 0xaa, 0xaa, 0x7f, 0x00, 0x3e, 0x40, 0x55, 0x55, 0x75, 0x00, - 0x36, 0xc0, 0xaa, 0xaa, 0x6a, 0x00, 0x72, 0x40, 0x55, 0x55, 0x75, 0x00, - 0x60, 0xc0, 0xaa, 0xaa, 0x6a, 0x00, 0xc0, 0x40, 0x55, 0x55, 0x75, 0x00, - 0xc0, 0xc0, 0xaa, 0xaa, 0x6a, 0x00, 0x00, 0x40, 0x55, 0x55, 0x75, 0x00, - 0x00, 0xc0, 0xaa, 0xaa, 0x6a, 0x00, 0x00, 0x40, 0x55, 0x55, 0x75, 0x00, - 0x00, 0xc0, 0xaa, 0xaa, 0x6a, 0x00, 0x00, 0x40, 0x55, 0x55, 0x75, 0x00, - 0x00, 0xc0, 0xaa, 0xaa, 0x6a, 0x00, 0x00, 0x40, 0x55, 0x55, 0x75, 0x00, - 0x00, 0xc0, 0xaa, 0xaa, 0x6a, 0x00, 0x00, 0x40, 0x55, 0x55, 0x75, 0x00, - 0x00, 0xc0, 0xaa, 0xaa, 0x6a, 0x00, 0x00, 0x40, 0x55, 0x55, 0x75, 0x00, - 0x00, 0xc0, 0xaa, 0xaa, 0x6a, 0x00, 0x00, 0x40, 0x55, 0x55, 0x75, 0x00, - 0x00, 0xc0, 0xaa, 0xaa, 0x6a, 0x00, 0x00, 0x40, 0x55, 0x55, 0x75, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x80, 0xff, 0xff, 0x7f, 0x00}; -#define grey_mask_width 42 -#define grey_mask_height 32 -#define grey_mask_x_hot 1 -#define grey_mask_y_hot 1 -static unsigned char grey_mask_bits[] = { - 0x03, 0xc0, 0xff, 0xff, 0x00, 0x00, 0x07, 0xc0, 0xff, 0xff, 0x01, 0x00, - 0x0f, 0xc0, 0xff, 0xff, 0x03, 0x00, 0x1f, 0xc0, 0xff, 0xff, 0x07, 0x00, - 0x3f, 0xc0, 0xff, 0xff, 0x0f, 0x00, 0x7f, 0xc0, 0xff, 0xff, 0x1f, 0x00, - 0xff, 0xc0, 0xff, 0xff, 0x3f, 0x00, 0xff, 0xc1, 0xff, 0xff, 0x7f, 0x00, - 0xff, 0xc3, 0xff, 0xff, 0x7f, 0x00, 0xff, 0xc3, 0xff, 0xff, 0x7f, 0x00, - 0x7f, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0xff, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0xf3, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0xe0, 0xc1, 0xff, 0xff, 0x7f, 0x00, - 0xe0, 0xc1, 0xff, 0xff, 0x7f, 0x00, 0xc0, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x80, 0xff, 0xff, 0x7f, 0x00}; -#define link_width 42 -#define link_height 32 -#define link_x_hot 1 -#define link_y_hot 1 -static unsigned char link_bits[] = { - 0x00, 0xc0, 0xff, 0xff, 0x01, 0x00, 0x02, 0x40, 0x00, 0x00, 0x03, 0x00, - 0x06, 0x40, 0x00, 0x00, 0x05, 0x00, 0x0e, 0x40, 0x00, 0x00, 0x09, 0x00, - 0x1e, 0x40, 0x00, 0x00, 0x11, 0x00, 0x3e, 0x40, 0x00, 0x00, 0x21, 0x00, - 0x7e, 0x40, 0x00, 0x00, 0x7f, 0x00, 0xfe, 0x40, 0x00, 0x00, 0x60, 0x00, - 0xfe, 0x41, 0x00, 0x00, 0x60, 0x00, 0x3e, 0x40, 0x00, 0x00, 0x60, 0x00, - 0x36, 0xc0, 0xc3, 0x1f, 0x7e, 0x00, 0x62, 0x40, 0xa5, 0x2a, 0x75, 0x00, - 0x60, 0xc0, 0xdb, 0xdf, 0x7e, 0x00, 0xc0, 0x40, 0xff, 0xf8, 0x67, 0x00, - 0xc0, 0xc0, 0x55, 0xad, 0x6a, 0x00, 0x00, 0xc0, 0xaa, 0x55, 0x6d, 0x00, - 0x00, 0x40, 0xff, 0xf8, 0x67, 0x00, 0x00, 0xc0, 0xdb, 0xdf, 0x7e, 0x00, - 0x00, 0x40, 0xa5, 0x2a, 0x75, 0x00, 0x00, 0xc0, 0xc3, 0x1f, 0x7e, 0x00, - 0x00, 0x40, 0x00, 0x00, 0x60, 0x00, 0x00, 0x40, 0x00, 0x00, 0x60, 0x00, - 0x00, 0x40, 0x00, 0x00, 0x60, 0x00, 0x00, 0x40, 0x88, 0x52, 0x62, 0x00, - 0x00, 0x40, 0x88, 0x56, 0x61, 0x00, 0x00, 0x40, 0x88, 0xda, 0x60, 0x00, - 0x00, 0x40, 0x88, 0x52, 0x61, 0x00, 0x00, 0x40, 0xb8, 0x52, 0x62, 0x00, - 0x00, 0x40, 0x00, 0x00, 0x60, 0x00, 0x00, 0x40, 0x00, 0x00, 0x60, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x80, 0xff, 0xff, 0x7f, 0x00}; -#define link_mask_width 42 -#define link_mask_height 32 -#define link_mask_x_hot 1 -#define link_mask_y_hot 1 -static unsigned char link_mask_bits[] = { - 0x03, 0xc0, 0xff, 0xff, 0x01, 0x00, 0x07, 0xc0, 0xff, 0xff, 0x03, 0x00, - 0x0f, 0xc0, 0xff, 0xff, 0x07, 0x00, 0x1f, 0xc0, 0xff, 0xff, 0x0f, 0x00, - 0x3f, 0xc0, 0xff, 0xff, 0x1f, 0x00, 0x7f, 0xc0, 0xff, 0xff, 0x3f, 0x00, - 0xff, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0xff, 0xc1, 0xff, 0xff, 0x7f, 0x00, - 0xff, 0xc3, 0xff, 0xff, 0x7f, 0x00, 0xff, 0xc3, 0xff, 0xff, 0x7f, 0x00, - 0x7f, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0xf7, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0xf3, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0xe0, 0xc1, 0xff, 0xff, 0x7f, 0x00, - 0xe0, 0xc1, 0xff, 0xff, 0x7f, 0x00, 0xc0, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x80, 0xff, 0xff, 0x7f, 0x00}; -#define mime_width 30 -#define mime_height 20 -#define mime_x_hot 1 -#define mime_y_hot 1 -static unsigned char mime_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x80, 0x01, 0x06, 0x00, 0x80, 0x01, - 0x0e, 0x00, 0x00, 0x00, 0x1e, 0xb0, 0x99, 0x01, 0x3e, 0x70, 0xb7, 0x01, - 0x7e, 0x30, 0xb3, 0x01, 0xfe, 0x30, 0xb3, 0x01, 0xfe, 0x31, 0xb3, 0x01, - 0x3e, 0x30, 0xb3, 0x01, 0x36, 0x30, 0xb3, 0x01, 0x62, 0x00, 0x00, 0x00, - 0x60, 0xb0, 0x19, 0x0f, 0xc0, 0x70, 0xb7, 0x19, 0xc0, 0x30, 0xb3, 0x19, - 0x00, 0x30, 0xb3, 0x1f, 0x00, 0x30, 0xb3, 0x01, 0x00, 0x30, 0xb3, 0x11, - 0x00, 0x30, 0x33, 0x0f, 0x00, 0x00, 0x00, 0x00}; -#define mime_mask_width 30 -#define mime_mask_height 20 -static unsigned char mime_mask_bits[] = { - 0x03, 0x00, 0x80, 0x01, 0x07, 0x00, 0xc0, 0x03, 0x0f, 0x00, 0xc0, 0x03, - 0x1f, 0xb8, 0x99, 0x01, 0x3f, 0xf8, 0xff, 0x03, 0x7f, 0xf8, 0xff, 0x03, - 0xff, 0xf8, 0xff, 0x03, 0xff, 0xf9, 0xff, 0x03, 0xff, 0xfb, 0xff, 0x03, - 0xff, 0xf9, 0xff, 0x03, 0x7f, 0xf8, 0xff, 0x03, 0xf7, 0xf8, 0xff, 0x0f, - 0xf3, 0xf8, 0xff, 0x1f, 0xe0, 0xf9, 0xff, 0x3f, 0xe0, 0xf9, 0xff, 0x3f, - 0xc0, 0xf8, 0xff, 0x3f, 0x00, 0xf8, 0xff, 0x3f, 0x00, 0xf8, 0xff, 0x3f, - 0x00, 0xf8, 0xff, 0x1f, 0x00, 0xf8, 0xff, 0x0f}; -#define text_width 42 -#define text_height 32 -#define text_x_hot 1 -#define text_y_hot 1 -static unsigned char text_bits[] = { - 0x00, 0xc0, 0xff, 0xff, 0x00, 0x00, 0x02, 0x40, 0x00, 0x80, 0x01, 0x00, - 0x06, 0x40, 0x00, 0x80, 0x02, 0x00, 0x0e, 0x40, 0xde, 0xbd, 0x04, 0x00, - 0x1e, 0x40, 0x00, 0x80, 0x08, 0x00, 0x3e, 0x40, 0x00, 0x80, 0x10, 0x00, - 0x7e, 0x40, 0xb8, 0xef, 0x20, 0x00, 0xfe, 0x40, 0x00, 0x80, 0x7f, 0x00, - 0xfe, 0x41, 0xfe, 0xf6, 0x64, 0x00, 0x3e, 0x40, 0x00, 0x00, 0x60, 0x00, - 0x36, 0x40, 0xf6, 0xce, 0x67, 0x00, 0x62, 0x40, 0x00, 0x00, 0x60, 0x00, - 0x60, 0x40, 0xba, 0xfb, 0x60, 0x00, 0xc0, 0x40, 0x00, 0x00, 0x60, 0x00, - 0xc0, 0x40, 0x00, 0x00, 0x60, 0x00, 0x00, 0x40, 0x00, 0x00, 0x60, 0x00, - 0x00, 0x40, 0x14, 0x3b, 0x63, 0x00, 0x00, 0x40, 0x00, 0x00, 0x60, 0x00, - 0x00, 0x40, 0xf4, 0xba, 0x60, 0x00, 0x00, 0x40, 0x00, 0x00, 0x60, 0x00, - 0x00, 0x40, 0x74, 0x07, 0x60, 0x00, 0x00, 0x40, 0x00, 0x00, 0x60, 0x00, - 0x00, 0x40, 0xff, 0xf6, 0x67, 0x00, 0x00, 0x40, 0x00, 0x00, 0x60, 0x00, - 0x00, 0x40, 0xf7, 0x7d, 0x66, 0x00, 0x00, 0x40, 0x00, 0x00, 0x60, 0x00, - 0x00, 0x40, 0xdf, 0xef, 0x63, 0x00, 0x00, 0x40, 0x00, 0x00, 0x60, 0x00, - 0x00, 0x40, 0x00, 0x06, 0x60, 0x00, 0x00, 0x40, 0x00, 0x00, 0x60, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x80, 0xff, 0xff, 0x7f, 0x00}; -#define text_mask_width 42 -#define text_mask_height 32 -#define text_mask_x_hot 1 -#define text_mask_y_hot 1 -static unsigned char text_mask_bits[] = { - 0x03, 0xc0, 0xff, 0xff, 0x00, 0x00, 0x07, 0xc0, 0xff, 0xff, 0x01, 0x00, - 0x0f, 0xc0, 0xff, 0xff, 0x03, 0x00, 0x1f, 0xc0, 0xff, 0xff, 0x07, 0x00, - 0x3f, 0xc0, 0xff, 0xff, 0x0f, 0x00, 0x7f, 0xc0, 0xff, 0xff, 0x1f, 0x00, - 0xff, 0xc0, 0xff, 0xff, 0x3f, 0x00, 0xff, 0xc1, 0xff, 0xff, 0x7f, 0x00, - 0xff, 0xc3, 0xff, 0xff, 0x7f, 0x00, 0xff, 0xc3, 0xff, 0xff, 0x7f, 0x00, - 0x7f, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0xf7, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0xf3, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0xe0, 0xc1, 0xff, 0xff, 0x7f, 0x00, - 0xe0, 0xc1, 0xff, 0xff, 0x7f, 0x00, 0xc0, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x80, 0xff, 0xff, 0x7f, 0x00}; -#define url_width 33 -#define url_height 23 -#define url_x_hot 1 -#define url_y_hot 1 -static unsigned char url_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0xf8, 0x03, 0x00, 0x06, 0x00, - 0xee, 0x0e, 0x00, 0x0e, 0x00, 0x77, 0x1c, 0x00, 0x1e, 0x80, 0x1f, 0x38, - 0x00, 0x3e, 0xc0, 0x0f, 0x6c, 0x00, 0x7e, 0xe0, 0x07, 0xf4, 0x00, 0xfe, - 0xe0, 0x05, 0xfe, 0x00, 0xfe, 0xf1, 0x00, 0xfe, 0x01, 0x3e, 0xd0, 0x00, - 0xfc, 0x01, 0x36, 0xb0, 0x01, 0xfc, 0x01, 0x62, 0x10, 0x0f, 0xe8, 0x01, - 0x60, 0x30, 0x1f, 0xf0, 0x01, 0xc0, 0x10, 0x3f, 0xfa, 0x01, 0xc0, 0x10, - 0x3e, 0xfd, 0x01, 0x00, 0x60, 0xbc, 0xfe, 0x00, 0x00, 0xa0, 0x1c, 0xff, - 0x00, 0x00, 0xc0, 0xcd, 0x7f, 0x00, 0x00, 0x80, 0xff, 0x3f, 0x00, 0x00, - 0x00, 0xff, 0x1f, 0x00, 0x00, 0x00, 0xfe, 0x0f, 0x00, 0x00, 0x00, 0xf8, - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; -#define url_mask_width 33 -#define url_mask_height 23 -static unsigned char url_mask_bits[] = { - 0x03, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0xf8, 0x03, 0x00, 0x0f, 0x00, - 0xfe, 0x0f, 0x00, 0x1f, 0x00, 0xff, 0x1f, 0x00, 0x3f, 0x80, 0xff, 0x3f, - 0x00, 0x7f, 0xc0, 0xff, 0x7f, 0x00, 0xff, 0xe0, 0xff, 0xff, 0x00, 0xff, - 0xe1, 0xff, 0xff, 0x00, 0xff, 0xf3, 0xff, 0xff, 0x01, 0xff, 0xf1, 0xff, - 0xff, 0x01, 0x7f, 0xf0, 0xff, 0xff, 0x01, 0xf7, 0xf0, 0xff, 0xff, 0x01, - 0xf3, 0xf0, 0xff, 0xff, 0x01, 0xe0, 0xf1, 0xff, 0xff, 0x01, 0xe0, 0xf1, - 0xff, 0xff, 0x01, 0xc0, 0xe0, 0xff, 0xff, 0x00, 0x00, 0xe0, 0xff, 0xff, - 0x00, 0x00, 0xc0, 0xff, 0x7f, 0x00, 0x00, 0x80, 0xff, 0x3f, 0x00, 0x00, - 0x00, 0xff, 0x1f, 0x00, 0x00, 0x00, 0xfe, 0x0f, 0x00, 0x00, 0x00, 0xf8, - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
--- a/src/offix-types.h Thu Dec 24 19:45:23 2009 -0600 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -/* -Copyright (C) 1996 César Crusius - -This file is part of the DND Library. This library is free -software; you can redistribute it and/or modify it under the terms of -the GNU Library General Public License as published by the Free -Software Foundation; either version 2 of the License, or (at your -option) any later version. This library is distributed in the hope -that it will be useful, but WITHOUT ANY WARRANTY; without even the -implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -PURPOSE. See the GNU Library General Public License for more details. -You should have received a copy of the GNU Library General Public -License along with this library; if not, write to the Free Software -Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -#ifndef INCLUDED_offix_types_h_ -#define INCLUDED_offix_types_h_ - -#define DndNotDnd -1 -#define DndUnknown 0 -#define DndRawData 1 -#define DndFile 2 -#define DndFiles 3 -#define DndText 4 -#define DndDir 5 -#define DndLink 6 -#define DndExe 7 -#define DndURL 8 -#define DndMIME 9 - -#define DndEND 10 - -#endif /* INCLUDED_offix_types_h_ */
--- a/src/offix.c Thu Dec 24 19:45:23 2009 -0600 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,451 +0,0 @@ -/* -This is a modified DND 1.0 library which does not depend on Xt -event handling. -Modifications Copyright (c) 1997 Oliver Graf <ograf@fga.de> - -Original DND lib -Copyright (C) 1996 César Crusius - -This file is part of the DND Library. This library is free -software; you can redistribute it and/or modify it under the terms of -the GNU Library General Public License as published by the Free -Software Foundation; either version 2 of the License, or (at your -option) any later version. This library is distributed in the hope -that it will be useful, but WITHOUT ANY WARRANTY; without even the -implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -PURPOSE. See the GNU Library General Public License for more details. -You should have received a copy of the GNU Library General Public -License along with this library; if not, write to the Free Software -Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -/* #define DEBUG */ - -#include "offix.h" -#include <X11/cursorfont.h> -#include <X11/Xatom.h> -#include <X11/Xmu/WinUtil.h> -#include <stdio.h> -#include <stdlib.h> -#include <limits.h> - -/* Local variables */ -static Display *dpy; /* current display */ -static int DragPrecision; /* minimum dx,dy to start drag */ -static int Dragging; /* Drag state flag */ -static int DataOK; /* Non-zero if data registered */ -static Atom DndProtocol; /* ClientMessage identifier */ -static Atom DndSelection; /* For the data transfers */ -static Atom OldDndProtocol; /* Version 0 atom */ -static Atom OldDndSelection;/* Version 0 atom */ -static Atom WM_STATE; /* Needed for icon stuff */ -static Window Target; /* Drop window */ -static Widget MainWidget; /* Main widget of application */ -static int DataType; /* Current drag data type */ -static int RootFlag; /* Non-zero if dropped on root */ -static XColor Black,White; /* For the cursors */ - -/*========================================================================= - * Data for the standard Dnd cursors - *=========================================================================*/ -#include "offix-cursors.h" - -/*=============================================================== CursorData - * CursorData contains all the data for the cursors bitmaps - *==========================================================================*/ -typedef struct -{ - int Width,Height; - unsigned char *ImageData,*MaskData; - int HotSpotX,HotSpotY; - Pixmap ImagePixmap,MaskPixmap; - Cursor CursorID; -} CursorData; - -static CursorData DndCursor[DndEND]={ - { 0,0,NULL,NULL,0,0,0 }, - { grey_width, grey_height,grey_bits,grey_mask_bits, - grey_x_hot,grey_y_hot}, - { file_width,file_height,file_bits,file_mask_bits, - file_x_hot,file_y_hot}, - { files_width,files_height,files_bits,files_mask_bits, - files_x_hot,files_y_hot}, - { text_width,text_height,text_bits,text_mask_bits, - text_x_hot,text_y_hot }, - { dir_width,dir_height,dir_bits,dir_mask_bits, - dir_x_hot,dir_y_hot }, - { link_width,link_height,link_bits,link_mask_bits, - link_x_hot,link_y_hot}, - { app_width,app_height,app_bits,app_mask_bits, - app_x_hot,app_y_hot }, - { url_width,url_height,url_bits,url_mask_bits, - url_x_hot,url_y_hot }, - { mime_width,mime_height,mime_bits,mime_mask_bits, - mime_x_hot,mime_y_hot } -}; - -/* Local prototypes */ -int DndIsDragging(void); -void DndStartAction(Widget widget, - XtPointer data, - XEvent *event, - Boolean *p); -void DndPropertyHandler(Widget widget, - XtPointer data, - XEvent *event, - Boolean *p); - -/*======================================================== DndHandleDragging - * Takes care of the drag and drop process. Wait until the pointer had moved - * a little. Then takes control over the pointer until the buttons are - * released. After that send a Drag And Drop ClientMessage event. Returns - * non-zero if a drop did take place. - *===========================================================================*/ -int -DndHandleDragging(Widget widget,XEvent *event) -{ - XEvent Event; - Window root = RootWindowOfScreen(XtScreenOfObject(widget)); - XtAppContext app= XtWidgetToApplicationContext(widget); - Window DispatchWindow; - int DropX,DropY; - - if(Dragging) return 0; - - XUngrabPointer(dpy,CurrentTime); - /* Take control over the pointer */ - XGrabPointer(dpy,root,False, - ButtonMotionMask|ButtonPressMask|ButtonReleaseMask, - GrabModeSync,GrabModeAsync,root, - DndCursor[DataType].CursorID, - CurrentTime); - - /* Wait for button release */ - Dragging=1; RootFlag=0; - while(Dragging) - { - XAllowEvents(dpy,SyncPointer,CurrentTime); - XtAppNextEvent(app,&Event); - switch(Event.type) - { - case ButtonRelease: - if(Event.xbutton.subwindow) - RootFlag=0; - else - RootFlag=1; - Dragging=0; - break; - default: - XtDispatchEvent(&Event); - break; - } - } - DataOK=0; - /* Now release the pointer */ - XUngrabPointer(dpy,CurrentTime); - /* Try to guess if the drop occurred in the root window */ - if(!RootFlag) - { - Target=XmuClientWindow(dpy,Event.xbutton.subwindow); - if (Target==Event.xbutton.subwindow) - DispatchWindow=Target; - else - DispatchWindow=PointerWindow; - } - else - Target=DispatchWindow=XtWindow(MainWidget); - - /* Now build the event structure */ - DropX=Event.xbutton.x_root; - DropY=Event.xbutton.y_root; - Event.xclient.type = ClientMessage; - Event.xclient.display = dpy; - Event.xclient.message_type = DndProtocol; - Event.xclient.format = 32; - Event.xclient.window = Target; - Event.xclient.data.l[0] = DataType; - Event.xclient.data.l[1] = (long)event->xbutton.state; - Event.xclient.data.l[2] = (long)XtWindow(widget); - Event.xclient.data.l[3] = DropX + 65536L*(long)DropY; - Event.xclient.data.l[4] = 1; - - /* Send the drop message */ - XSendEvent(dpy,DispatchWindow,True,NoEventMask,&Event); - /* Send an old style version of the message just in case */ - Event.xclient.message_type = OldDndProtocol; - XSendEvent(dpy,DispatchWindow,True,NoEventMask,&Event); - -#ifdef DEBUG - fprintf(stderr,"ClientMessage sent to 0x%x(0x%x).\n", - DispatchWindow,Target); - fprintf(stderr,"The drop coordinates are (%d,%d).\n",DropX,DropY); -#endif - - return 1; -} - -/*=============================================================== DndIsIcon - * Return non-zero if the application is iconic (widget=toplevel) - *========================================================================*/ -int -DndIsIcon(Widget widget) -{ - Atom JunkAtom; - int JunkInt; - unsigned long WinState,JunkLong; - unsigned char *Property; - - XGetWindowProperty(dpy,XtWindow(widget),WM_STATE, - 0L,2L,False,AnyPropertyType, - &JunkAtom,&JunkInt,&WinState,&JunkLong, - &Property); - WinState=(unsigned long)(*((long*)Property)); - return (WinState==3); -} - -/*============================================================ DndInitialize - * Must be called anywhere before the top level widget creation and the - * main loop. Initialize global variables and bind the DndDispatch function - * to the top level widget. Creates the cursors to be used in drag actions. - *=========================================================================*/ -void -DndInitialize(Widget shell) -{ - int screen,i; - Colormap colormap; - Window root; - - dpy = XtDisplayOfObject(shell); - screen = DefaultScreen(dpy); - colormap= DefaultColormap(dpy,screen); - root = DefaultRootWindow(dpy); - - - Black.pixel=BlackPixel(dpy,screen); - White.pixel=WhitePixel(dpy,screen); - XQueryColor(dpy,colormap,&Black); - XQueryColor(dpy,colormap,&White); - - for(i=1;i!=DndEND;i++) - { - DndCursor[i].ImagePixmap= - XCreateBitmapFromData(dpy,root, - (char *) DndCursor[i].ImageData, - DndCursor[i].Width, - DndCursor[i].Height); - DndCursor[i].MaskPixmap= - XCreateBitmapFromData(dpy,root, - (char *) DndCursor[i].MaskData, - DndCursor[i].Width, - DndCursor[i].Height); - DndCursor[i].CursorID= - XCreatePixmapCursor(dpy,DndCursor[i].ImagePixmap, - DndCursor[i].MaskPixmap, - &Black,&White, - DndCursor[i].HotSpotX, - DndCursor[i].HotSpotY); - } - - DndCursor[0].CursorID=XCreateFontCursor(dpy,XC_question_arrow); - - /* These two are for older versions */ - OldDndProtocol=XInternAtom(dpy,"DndProtocol",FALSE); - OldDndSelection=XInternAtom(dpy,"DndSelection",FALSE); - /* Now the correct stuff */ - DndProtocol=XInternAtom(dpy,"_DND_PROTOCOL",FALSE); - DndSelection=XInternAtom(dpy,"_DND_SELECTION",FALSE); - - WM_STATE=XInternAtom(dpy,"WM_STATE",True); - Dragging=0; - DragPrecision=10; - RootFlag=0; - MainWidget=shell; -} - -int -DndIsDragging(void) -{ - return Dragging; -} - -/*================================================================= DndSetData - * Updates the selection data. - *===========================================================================*/ -void -DndSetData(int Type,unsigned char *Data,unsigned long Size) -{ - Window root = DefaultRootWindow(dpy); - int AuxSize; - unsigned char *AuxData; - unsigned long BackSize=Size; - - if (DataOK) return; - - /* Set the data type -- allow any type */ - DataType = Type; - - /* Set the data */ - AuxData = Data; - AuxSize = ( Size <= INT_MAX ? (int)Size : INT_MAX ); - XChangeProperty(dpy,root,DndSelection,XA_STRING,8, - PropModeReplace,Data,AuxSize); - for(Size-=(unsigned long)AuxSize;Size;Size-=(unsigned long)AuxSize) - { - Data+=AuxSize; - AuxSize = ( (Size<=(INT_MAX)) ? (int)Size : (INT_MAX) ); - XChangeProperty(dpy,root,DndSelection,XA_STRING,8, - PropModeAppend,Data,AuxSize); - } - - /* Set the data for old DND version */ - Size = BackSize; - AuxData = Data; - AuxSize = ( Size <= INT_MAX ? (int)Size : INT_MAX ); - XChangeProperty(dpy,root,OldDndSelection,XA_STRING,8, - PropModeReplace,Data,AuxSize); - for(Size-=(unsigned long)AuxSize;Size;Size-=(unsigned long)AuxSize) - { - Data+=AuxSize; - AuxSize = ( (Size<=(INT_MAX)) ? (int)Size : (INT_MAX) ); - XChangeProperty(dpy,root,OldDndSelection,XA_STRING,8, - PropModeAppend,Data,AuxSize); - } - - /* Everything is now ok */ - DataOK=1; -} - -/*================================================================== DndGetData - * Return a pointer to the current data. See HOWTO for more details. - *===========================================================================*/ -void -DndGetData(XEvent *event, unsigned char **Data,unsigned long *Size) -{ - Window root = DefaultRootWindow(dpy); - - Atom ActualType,ActualDndSelection; - int ActualFormat; - unsigned long RemainingBytes; - - ActualDndSelection=(DndProtocolVersion(event) == 0L ? - OldDndSelection : - DndSelection ); - - XGetWindowProperty(dpy,root,ActualDndSelection, - 0L,1000000L, - FALSE,AnyPropertyType, - &ActualType,&ActualFormat, - Size,&RemainingBytes, - Data); -} - -/*================================== DndDataType DndDragButtons DndSourceWidget - * - * Return information about the Dnd event received. If a non-dnd event is - * passed, the function DndDataType returns DndNotDnd, and the others - * return zero. - *===========================================================================*/ -int -DndDataType(XEvent *event) -{ - int Type; - - if(!DndIsDropMessage(event)) return DndNotDnd; - Type=(int)(event->xclient.data.l[0]); - if(Type>=DndEND) Type=DndUnknown; - return Type; -} - -int -DndDragButtons(XEvent *event) -{ - if(!DndIsDropMessage(event)) return 0; - return (int)(event->xclient.data.l[1]); -} - -Window -DndSourceWindow(XEvent *event) -{ - if(!DndIsDropMessage(event)) return 0; - if(DndProtocolVersion(event)<__DragAndDropH__) - /* We will try to do something about it, but nothing is certain */ - return XtWindow((Widget)(event->xclient.data.l[2])); - return (Window)(event->xclient.data.l[2]); -} - -void -DndDropRootCoordinates(XEvent *event,int *x,int *y) -{ - if(!DndIsDropMessage(event)) - { - *x=0; *y=0; - return; - } - - /* If it is an old protocol version we try to get the coordinates - using the current pointer position. Of course, the pointer may have - moved since the drop, but there's nothing we can do about it. - */ - if(DndProtocolVersion(event)<1L) - { - Window root_return,child_return; - int win_x_return,win_y_return; - unsigned int mask_return; - - XQueryPointer(dpy,DefaultRootWindow(dpy), - &root_return,&child_return,x,y, - &win_x_return,&win_y_return,&mask_return); - return; - } - /* Thanks god you are using a decent protocol version */ - *x=(int)((long)(event->xclient.data.l[3]) & 0xffff); - *y=(int)((long)(event->xclient.data.l[3])/65536); -} - -void -DndDropCoordinates(Widget widget,XEvent *event,int *x,int *y) -{ - int root_x,root_y; - Window child_return; - - DndDropRootCoordinates(event,&root_x,&root_y); - XTranslateCoordinates(dpy,DefaultRootWindow(dpy), - XtWindow(widget), - root_x,root_y, - x,y, - &child_return); -} - -long -DndProtocolVersion(XEvent *event) -{ - if(!DndIsDropMessage(event)) return -1L; - return event->xclient.data.l[4]; -} - -int -DndIsDropMessage(XEvent *event) -{ - if(event->xclient.type != ClientMessage) return 0; - if(event->xclient.message_type == OldDndProtocol && - event->xclient.data.l[4]==0) return 1; - if(event->xclient.message_type == DndProtocol) return 1; - return 0; -} - -void -DndChangeCursor(int Type,int width,int height,char *image,char *mask, - int hot_x,int hot_y) -{ - DndCursor[Type].ImagePixmap= - XCreateBitmapFromData(dpy,DefaultRootWindow(dpy), - image,width,height); - DndCursor[Type].MaskPixmap= - XCreateBitmapFromData(dpy,DefaultRootWindow(dpy), - mask,width,height); - DndCursor[Type].CursorID= - XCreatePixmapCursor(dpy,DndCursor[Type].ImagePixmap, - DndCursor[Type].MaskPixmap, - &Black,&White, - hot_x,hot_y); -}
--- a/src/offix.h Thu Dec 24 19:45:23 2009 -0600 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,68 +0,0 @@ -/* -This is a modified DND 1.0 library which does not depend on Xt -event handling. -Modifications Copyright (c) 1997 Oliver Graf <ograf@fga.de> - -Original DND lib -Copyright (C) 1996 César Crusius - -This file is part of the DND Library. This library is free -software; you can redistribute it and/or modify it under the terms of -the GNU Library General Public License as published by the Free -Software Foundation; either version 2 of the License, or (at your -option) any later version. This library is distributed in the hope -that it will be useful, but WITHOUT ANY WARRANTY; without even the -implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -PURPOSE. See the GNU Library General Public License for more details. -You should have received a copy of the GNU Library General Public -License along with this library; if not, write to the Free Software -Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -#ifndef __DragAndDropH__ -#define __DragAndDropH__ 1L - -/* The standard DND types are defined here */ -#include "offix-types.h" - -/* Xt stuff is defined here */ -#include "xintrinsic.h" - -void DndInitialize(Widget shell); - -int -DndHandleDragging(Widget widget, - XEvent* event); - -void DndSetData(int Type, unsigned char *Data, unsigned long Size); -void DndGetData(XEvent *event, unsigned char **Data, unsigned long *Size); - -int DndIsIcon(Widget widget); -int DndDataType(XEvent *event); -int DndDragButtons(XEvent *event); -Window DndSourceWindow(XEvent *event); - -void -DndDropCoordinates(Widget widget, - XEvent *event, - int *x, - int *y); -void -DndDropRootCoordinates(XEvent *event, - int *x, - int *y); - -long -DndProtocolVersion(XEvent *event); - -int -DndIsDropMessage(XEvent *event); - -void -DndChangeCursor(int Type, - int width,int height, - char *image,char *mask, - int hot_x,int hot_y); -#endif - -
--- a/src/text.h Thu Dec 24 19:45:23 2009 -0600 +++ b/src/text.h Thu Dec 24 19:46:51 2009 -0600 @@ -3111,7 +3111,6 @@ /* !!#### Verify these! */ #define Qxt_widget_arg_encoding Qnative #define Qdt_dnd_encoding Qnative -#define Qoffix_dnd_encoding Qnative /* RedHat 6.2 contains a locale called "Francais" with the C-cedilla encoded in ISO2022! */ @@ -3119,9 +3118,6 @@ #define Qstrerror_encoding Qnative -/* Encoding for strings coming from Offix drag-n-drop */ -#define Qoffix_dnd_encoding Qnative - /* !!#### This exists to remind us that our hexify routine is totally un-Muleized. */ #define Qdnd_hexify_encoding Qascii
--- a/tests/ChangeLog Thu Dec 24 19:45:23 2009 -0600 +++ b/tests/ChangeLog Thu Dec 24 19:46:51 2009 -0600 @@ -1,3 +1,9 @@ +2009-12-21 Jerry James <james@xemacs.org> + + * Dnd/README: Remove references to OffiX drag-and-drop. + * Dnd/droptest.el (start-drag): Remove OffiX support. + (start-region-drag): Ditto. + 2009-12-18 Jerry James <james@xemacs.org> * glyph-test.el: Add copyright and GPL v2 or later header with
--- a/tests/Dnd/README Thu Dec 24 19:45:23 2009 -0600 +++ b/tests/Dnd/README Thu Dec 24 19:46:51 2009 -0600 @@ -9,14 +9,8 @@ 3) Try to do some internal DnD by using the sources and targets in the new buffer 4) Do some external DnD: - 4a) OffiX: use files and editor of OffiX - drag something from files or editor into XEmacs - drag something from XEmacs to xv (only with OffiX patch, - editor or files -- files can only move and copy within - itself, cause OffiX is not quite the right thing to do) - 4b) CDE: use dtfile and dtpad instead, but here everything should - work. - 4c) MSWindows: well, explorer should do. But only file data + 4a) CDE: use dtfile and dtpad + 4b) MSWindows: well, explorer should do. But only file data should work, and I don't know if the test already handles this.
--- a/tests/Dnd/droptest.el Thu Dec 24 19:45:23 2009 -0600 +++ b/tests/Dnd/droptest.el Thu Dec 24 19:46:51 2009 -0600 @@ -13,11 +13,7 @@ (defun start-drag (event what &optional typ) ;; short drag interface, until the real one is implemented - (cond ((featurep 'offix) - (if (numberp typ) - (offix-start-drag event what typ) - (offix-start-drag event what))) - ((featurep 'cde) + (cond ((featurep 'cde) (if (not typ) (funcall (intern "cde-start-drag-internal") event nil (list what)) (funcall (intern "cde-start-drag-internal") event t what))) @@ -27,16 +23,11 @@ (interactive "_e") (if (click-inside-extent-p event zmacs-region-extent) ;; okay, this is a drag - (cond ((featurep 'offix) - (offix-start-drag-region event - (extent-start-position zmacs-region-extent) - (extent-end-position zmacs-region-extent))) - ((featurep 'cde) - ;; should also work with CDE + (cond ((featurep 'cde) (cde-start-drag-region event (extent-start-position zmacs-region-extent) (extent-end-position zmacs-region-extent))) - (t (error "No offix or CDE support compiled in"))))) + (t (error "No CDE support compiled in"))))) (defun make-drop-targets () (let ((buf (get-buffer-create "*DND misc-user extent test buffer*"))