/* Synched up with: Not in FSF. */
-#ifndef _EmacsFrameP_h
-#define _EmacsFrameP_h
+#ifndef INCLUDED_EmacsFrameP_h_
+#define INCLUDED_EmacsFrameP_h_
#include "xintrinsicp.h"
#include <X11/CoreP.h>
#include "EmacsFrame.h"
typedef struct {
+
+#ifdef LWLIB_USES_MOTIF
+#if XmVERSION < 2
+ /* It's easy to erroneously compile with Motif 1 headers, but link
+ with Motif 2 libraries.
+
+ For example, AIX stupidly provides Motif headers in
+ /usr/dt/include, but fails to provide the corresponding libraries
+ in /usr/dt/lib.
+
+ We actually try to survive such a version mismatch, since Motif 2
+ is _almost_ binary compatible with Motif 1. Motif 2's
+ XmPrimitivePart has some trailing data members which overlay the
+ start of this struct. We create dummy members to make space for
+ XmPrimitivePart's added members. These must, of course, be at
+ the beginning of this struct.
+
+ Delete this kludge when no one has Motif1 on their system anymore,
+ perhaps in 2010. */
+ XtCallbackList Motif2_dummy_convert_callback;
+ XtCallbackList Motif2_dummy_popup_handler_callback;
+ long Motif2_dummy_layout_direction;
+#endif
+#endif
+
struct frame* frame; /* the *emacs* frame object */
/* Resources that can't be done from lisp.
extern EmacsFrameClassRec emacsFrameClassRec; /* class pointer */
-
-
-#endif /* _EmacsFrameP_h */
+#endif /* INCLUDED_EmacsFrameP_h_ */