* depends on dnd support.
*/
#ifdef HAVE_DRAGNDROP
+extern int mswindows_dde_enable;
+
HDDEDATA CALLBACK
mswindows_dde_callback (UINT uType, UINT uFmt, HCONV hconv,
HSZ hszTopic, HSZ hszItem, HDDEDATA hdata,
return (HDDEDATA)NULL;
case XTYP_EXECUTE:
+ if (!mswindows_dde_enable)
+ return (HDDEDATA) DDE_FBUSY;
+
if (!DdeCmpStringHandles (hszTopic, mswindows_dde_topic_system))
{
DWORD len = DdeGetData (hdata, NULL, 0, 0);
char *end;
char *filename;
struct gcpro gcpro1, gcpro2;
- Lisp_Object l_dndlist = Qnil;
+ Lisp_Object l_dndlist = Qnil;
Lisp_Object emacs_event = Fmake_event (Qnil, Qnil);
Lisp_Object frmcons, devcons, concons;
Lisp_Event *event = XEVENT (emacs_event);
struct frame *frame;
struct mswindows_frame* msframe;
- /* Not perfect but avoids crashes. There is potential for wierd
- behavior here. */
- if (gc_in_progress)
- {
- mswindows_output_console_string ("Window procedure called during GC???????\n", 41);
- /* Yes, this assert always triggers in a --debug XEmacs. But
- --debug=no is default in the stable branches.
- #### How about patch in <200106081225.IAA31075@gwyn.tux.org>? */
- assert (!gc_in_progress);
- goto defproc;
- }
+ /* If you hit this, rewrite the offending API call to occur after GC,
+ using register_post_gc_action(). */
+ assert (!gc_in_progress);
#ifdef DEBUG_XEMACS
if (debug_mswindows_events)
FROB (WM_NCPAINT)
FROB (WM_NCACTIVATE)
FROB (WM_GETDLGCODE)
+#ifdef WM_SYNCPAINT /* not in VC 5 */
FROB (WM_SYNCPAINT)
+#endif /* WM_SYNCPAINT */
FROB (WM_NCMOUSEMOVE)
FROB (WM_NCLBUTTONDOWN)
FROB (WM_NCLBUTTONUP)
FROB (WM_SYSDEADCHAR)
FROB (WM_KEYLAST)
-#if(WINVER >= 0x0400) && !defined(CYGWIN)
+#if(WINVER >= 0x0400) && defined (WM_IME_STARTCOMPOSITION)
FROB (WM_IME_STARTCOMPOSITION)
FROB (WM_IME_ENDCOMPOSITION)
FROB (WM_IME_COMPOSITION)
FROB (WM_IME_KEYLAST)
-#endif /* WINVER >= 0x0400 */
+#endif /* WINVER >= 0x0400 && defined (WM_IME_STARTCOMPOSITION) */
FROB (WM_INITDIALOG)
FROB (WM_COMMAND)
FROB (WM_DROPFILES)
FROB (WM_MDIREFRESHMENU)
+#ifdef WM_IME_SETCONTEXT /* not in Cygwin? */
#if(WINVER >= 0x0400) && !defined(CYGWIN)
FROB (WM_IME_SETCONTEXT)
FROB (WM_IME_KEYUP)
#endif /* WINVER >= 0x0400 */
+#endif /* WM_IME_SETCONTEXT */
#if(_WIN32_WINNT >= 0x0400)
FROB (WM_MOUSEHOVER)