-/* NetHack 3.6 winX.h $NHDT-Date: 1453447524 2016/01/22 07:25:24 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.19 $ */
+/* NetHack 3.6 winX.h $NHDT-Date: 1454455159 2016/02/02 23:19:19 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.21 $ */
/* Copyright (c) Dean Luick, 1992 */
/* NetHack may be freely redistributed. See license for details. */
E void FDECL(ec_delete, (Widget, XEvent *, String *, Cardinal *));
E void FDECL(ec_key, (Widget, XEvent *, String *,
Cardinal *)); /* extended command action */
+E void NDECL(release_extended_cmds);
/* ### winstatus.c ### */
E void FDECL(create_status_window, (struct xwindow *, BOOLEAN_P, Widget));
-/* NetHack 3.6 winmap.c $NHDT-Date: 1447844616 2015/11/18 11:03:36 $ $NHDT-Branch: master $:$NHDT-Revision: 1.25 $ */
+/* NetHack 3.6 winmap.c $NHDT-Date: 1454455161 2016/02/02 23:19:21 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.26 $ */
/* Copyright (c) Dean Luick, 1992 */
/* NetHack may be freely redistributed. See license for details. */
tile_image, 0, 0, 0, 0, /* src, dest top left */
width, height);
+#ifdef MONITOR_HEAP
+ /* if we let XDestroyImage() handle it, our tracking will be off */
+ if (tile_image->data)
+ free((genericptr_t) tile_image->data), tile_image->data = 0;
+#endif
XDestroyImage(tile_image); /* data bytes free'd also */
tile_image = 0;
(XtPointer) 0);
else
wp->type = NHW_NONE; /* allow re-use */
+
+ /* when map goes away, presumably we're exiting, so get rid of the
+ cached extended commands menu (if we aren't actually exiting, it
+ will get recreated if needed again) */
+ release_extended_cmds();
}
boolean exit_x_event; /* exit condition for the event loop */
-/* NetHack 3.6 winmisc.c $NHDT-Date: 1452593730 2016/01/12 10:15:30 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.15 $ */
+/* NetHack 3.6 winmisc.c $NHDT-Date: 1454455162 2016/02/02 23:19:22 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.20 $ */
/* Copyright (c) Dean Luick, 1992 */
/* NetHack may be freely redistributed. See license for details. */
int
X11_get_ext_cmd()
{
- static Boolean initialized = False;
-
- if (!initialized) {
+ if (!extended_commands)
init_extended_commands_popup();
- initialized = True;
- }
extended_cmd_selected = -1; /* reset selected value */
return extended_cmd_selected;
}
+void
+release_extended_cmds()
+{
+ if (extended_commands) {
+ XtDestroyWidget(extended_command_popup);
+ free((genericptr_t) extended_commands), extended_commands = 0;
+ }
+}
+
/* End global functions =====================================================
*/
return popup;
}
+
+/*winmisc.c*/