#include <X11/Intrinsic.h>
+#ifdef DEBUG
+# include <X11/IntrinsicP.h> /* just to get debug info for gdb... */
+# include <X11/ShellP.h>
+#endif
+
#ifdef HAVE_MOTIF
# include <Xm/Xm.h>
# include <Xm/Text.h>
int *pos_list;
int pos_count;
if (! XmListGetSelectedPos (demo_list, &pos_list, &pos_count))
- XmListSelectPos (demo_list, 1, True);
+ {
+ XmListDeselectAllItems(demo_list); /* LessTif lossage */
+ XmListSelectPos (demo_list, 1, True);
+ }
else
{
- int pos = pos_list [0];
- XmListSelectPos (demo_list, pos + 1, True);
- XtFree ((char *) pos_list);
- if (! XmListGetSelectedPos (demo_list, &pos_list, &pos_count))
- abort ();
- if (pos_list [0] == pos)
- XmListSelectPos (demo_list, 1, True);
- XtFree ((char *) pos_list);
+ int pos = pos_list[0] + 1;
+ if (pos > si->prefs.screenhacks_count)
+ pos = 1;
+ XmListDeselectAllItems(demo_list); /* LessTif lossage */
+ XmListSelectPos (demo_list, pos, True);
}
+ XtFree ((char *) pos_list);
ensure_selected_item_visible (demo_list);
demo_mode_hack (si, get_text_string (text_line));
int *pos_list;
int pos_count;
if (! XmListGetSelectedPos (demo_list, &pos_list, &pos_count))
- XmListSelectPos (demo_list, 0, True);
+ {
+ XmListDeselectAllItems(demo_list); /* LessTif lossage */
+ XmListSelectPos (demo_list, 0, True);
+ }
else
{
+ XmListDeselectAllItems(demo_list); /* LessTif lossage */
XmListSelectPos (demo_list, pos_list [0] - 1, True);
XtFree ((char *) pos_list);
}
demo_mode_restart_process (si);
}
+
void
pop_up_dialog_box (Widget dialog, Widget form, int where)
{
XmStringFree (xmstr);
}
+ /* Cause the most-recently-run hack to be selected in the list.
+ Do some voodoo to make it be roughly centered in the list (really,
+ just make it not be within +/- 5 of the top/bottom if possible.)
+ */
+ if (ssi->current_hack > 0)
+ {
+ int i = ssi->current_hack+1;
+ int top = i + 5;
+ int bot = i - 5;
+ if (bot < 1) bot = 1;
+ if (top > si->prefs.screenhacks_count)
+ top = si->prefs.screenhacks_count;
+
+ XmListDeselectAllItems(demo_list); /* LessTif lossage */
+ XmListSelectPos (demo_list, bot, False);
+ ensure_selected_item_visible (demo_list);
+
+ XmListDeselectAllItems(demo_list); /* LessTif lossage */
+ XmListSelectPos (demo_list, top, False);
+ ensure_selected_item_visible (demo_list);
+
+ XmListDeselectAllItems(demo_list); /* LessTif lossage */
+ XmListSelectPos (demo_list, i, False);
+ ensure_selected_item_visible (demo_list);
+ }
+
#else /* HAVE_ATHENA */
XtVaSetValues (demo_list,
0);
XtAddCallback (demo_list, XtNcallback, select_cb, si);
+ /* #### still need to do the "select most-recently-run hack"
+ #### thing for Athena.
+ */
+
#endif /* HAVE_ATHENA */
pop_up_dialog_box(demo_dialog, demo_form,