#include <X11/VendorP.h>
#include "EmacsShellP.h"
+#define ABORT abort
+
#if defined (DEFINE_TOP_LEVEL_EMACS_SHELL)
#define EMACS_SHELL_WIDGET TopLevelEmacsShellWidget
#define SUPERCLASS_WIDGET_CLASS topLevelShellWidgetClass
the default values for X and Y, for no obvious reason. This
causes Shell to indicate that the defaults of (0,0) were
program-specified, instead of letting the WM do what it wants. */
- {XtNx, XtCPosition, XtRPosition, sizeof(Position),
- coreoffset (x), XtRImmediate, (XtPointer)BIGSIZE},
- {XtNy, XtCPosition, XtRPosition, sizeof(Position),
- coreoffset (y), XtRImmediate, (XtPointer)BIGSIZE},
+ { XtNx, XtCPosition,
+ XtRPosition, sizeof (Position),
+ coreoffset (x), XtRImmediate, (XtPointer)BIGSIZE },
+ { XtNy, XtCPosition,
+ XtRPosition, sizeof (Position),
+ coreoffset (y), XtRImmediate, (XtPointer)BIGSIZE },
#endif
- { XtNwidthCells, XtCWidthCells, XtRInt, sizeof(int),
- offset (width_cells), XtRImmediate, (XtPointer)0},
- { XtNheightCells, XtCHeightCells, XtRInt, sizeof(int),
- offset (height_cells), XtRImmediate, (XtPointer)0},
- { XtNminWidthCells, XtCMinWidthCells, XtRInt, sizeof(int),
- offset (min_width_cells), XtRImmediate, (XtPointer)0},
- { XtNminHeightCells, XtCMinHeightCells, XtRInt, sizeof(int),
- offset (min_height_cells), XtRImmediate, (XtPointer)0},
+ { XtNwidthCells, XtCWidthCells,
+ XtRInt, sizeof (int),
+ offset (width_cells), XtRImmediate, (XtPointer)0 },
+ { XtNheightCells, XtCHeightCells,
+ XtRInt, sizeof (int),
+ offset (height_cells), XtRImmediate, (XtPointer)0 },
+ { XtNminWidthCells, XtCMinWidthCells,
+ XtRInt, sizeof (int),
+ offset (min_width_cells), XtRImmediate, (XtPointer)0 },
+ { XtNminHeightCells, XtCMinHeightCells,
+ XtRInt, sizeof (int),
+ offset (min_height_cells), XtRImmediate, (XtPointer)0 },
};
static CompositeClassExtensionRec compositeClassExtRec = {
NULL,
NULLQUARK,
XtCompositeExtensionVersion,
- sizeof(CompositeClassExtensionRec),
+ sizeof (CompositeClassExtensionRec),
TRUE,
};
NULL,
NULLQUARK,
XtShellExtensionVersion,
- sizeof(ShellClassExtensionRec),
+ sizeof (ShellClassExtensionRec),
RootGeometryManager
};
*/
/* superclass */ (WidgetClass) &SUPERCLASS_CLASS_REC,
/* class_name */ (String) EMACS_SHELL_CLASS_NAME,
- /* size */ sizeof(EMACS_SHELL_REC),
+ /* size */ sizeof (EMACS_SHELL_REC),
/* Class Initializer */ NULL,
/* class_part_initialize*/ NULL, /* XtInheritClassPartInitialize, */
/* Class init'ed ? */ FALSE,
/* resources */ resources,
/* resource_count */ XtNumber (resources),
/* xrm_class */ NULLQUARK,
- /* compress_motion */ FALSE,
- /* compress_exposure */ TRUE,
- /* compress_enterleave*/ FALSE,
+ /* compress_motion */ TRUE,
+ /* compress_exposure */ XtExposeCompressMaximal | XtExposeNoRegion,
+ /* compress_enterleave*/ TRUE,
/* visible_interest */ TRUE,
/* destroy */ NULL,
/* resize */ XtInheritResize,
}
if (!gcer)
- abort ();
+ ABORT ();
/* call it to actually make the geometry request */
scer = (ShellClassExtensionRec *) gcer;
XtGeometryResult result;
if (reentrant)
- abort ();
+ ABORT ();
reentrant++;
#ifdef DEBUG_GEOMETRY_MANAGEMENT
result == XtGeometryAlmost ? "XtGeometryAlmost" :
"XtGeometryDone");
if (reply->request_mode & CWWidth)
- printf ("width returned;");
+ printf ("width returned was %d%s",
+ reply->width,
+ reply->request_mode & CWHeight ? "; " : ".\n");
if (reply->request_mode & CWHeight)
- printf ("height returned;");
- printf ("\n");
- printf (" resulting shell size: %d %d\n", reply->width, reply->height);
+ printf ("height returned was %d.\n", reply->height);
+ /* #### does this also need to depend on the result?
+ With XtGeometryYes there doesn't seem to be a useful reply object. */
+ printf (" resulting shell size: %d %d\n",
+ reply->request_mode & CWWidth ? reply->width : w->core.width,
+ reply->request_mode & CWHeight ? reply->height : w->core.height);
printf ("----------\n");
fflush (stdout);
#endif
for (i = 0; i < w->composite.num_children; i++) {
if (XtIsManaged(w->composite.children[i])) {
child = w->composite.children[i];
+ update_size_hints_internal (w, child->core.width,
+ child->core.height);
break;
}
}
-
- update_size_hints_internal (w, child->core.width, child->core.height);
}
/* call the real ChangeManaged */