Index: src/glyphs-x.c =================================================================== RCS file: /usr/CVSroot/XEmacs/xemacs/src/glyphs-x.c,v retrieving revision 1.49.2.68 diff -u -r1.49.2.68 glyphs-x.c --- src/glyphs-x.c 2000/05/03 14:47:07 1.49.2.68 +++ src/glyphs-x.c 2000/05/04 16:01:56 @@ -410,6 +410,10 @@ #endif lw_destroy_widget (IMAGE_INSTANCE_X_WIDGET_ID (p)); lw_destroy_widget (IMAGE_INSTANCE_X_CLIPWIDGET (p)); + + /* We can release the callbacks again. */ + ungcpro_popup_callbacks (IMAGE_INSTANCE_X_WIDGET_LWID (p)); + IMAGE_INSTANCE_X_WIDGET_ID (p) = 0; IMAGE_INSTANCE_X_CLIPWIDGET (p) = 0; } @@ -2515,6 +2519,9 @@ XtSetMappedWhenManaged (wid, TRUE); free_widget_value_tree (wv); + /* A kludgy but simple way to make sure the callback for a widget + doesn't get deleted. */ + gcpro_popup_callbacks (id); } /* get properties of a control */ @@ -2789,7 +2796,9 @@ { IIFORMAT_VALID_CONSOLE (x, nothing); IIFORMAT_VALID_CONSOLE (x, string); +#ifdef HAVE_WIDGETS IIFORMAT_VALID_CONSOLE (x, layout); +#endif IIFORMAT_VALID_CONSOLE (x, formatted_string); IIFORMAT_VALID_CONSOLE (x, inherit); #ifdef HAVE_XPM Index: src/glyphs.c =================================================================== RCS file: /usr/CVSroot/XEmacs/xemacs/src/glyphs.c,v retrieving revision 1.23.2.64 diff -u -r1.23.2.64 glyphs.c --- src/glyphs.c 2000/05/03 14:47:09 1.23.2.64 +++ src/glyphs.c 2000/05/04 16:02:11 @@ -82,6 +82,7 @@ DEFINE_IMAGE_INSTANTIATOR_FORMAT (formatted_string); DEFINE_IMAGE_INSTANTIATOR_FORMAT (subwindow); DEFINE_IMAGE_INSTANTIATOR_FORMAT (text); +DEFINE_IMAGE_INSTANTIATOR_FORMAT (pointer); #ifdef HAVE_WINDOW_SYSTEM DEFINE_IMAGE_INSTANTIATOR_FORMAT (xbm); @@ -688,6 +689,12 @@ IMAGE_INSTANCE_LAYOUT_CHANGED (p) = 0; IMAGE_INSTANCE_DIRTYP (p) = 0; + assert (NOTHING_IMAGE_INSTANCEP (ii) + || (XIMAGE_INSTANCE_HEIGHT (ii) + != IMAGE_UNSPECIFIED_GEOMETRY + && XIMAGE_INSTANCE_WIDTH (ii) + != IMAGE_UNSPECIFIED_GEOMETRY)); + ERROR_CHECK_IMAGE_INSTANCE (ii); RETURN_UNGCPRO (ii); @@ -5053,6 +5060,10 @@ IIFORMAT_HAS_METHOD (formatted_string, possible_dest_types); IIFORMAT_HAS_METHOD (formatted_string, instantiate); IIFORMAT_VALID_KEYWORD (formatted_string, Q_data, check_valid_string); + + /* Do this so pointers have geometry. */ + INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (pointer, "pointer"); + IIFORMAT_HAS_SHARED_METHOD (pointer, query_geometry, subwindow); /* subwindows */ INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (subwindow, "subwindow");