X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Feditor.c;h=479fec7af807ebc7dbd3bbb34c3f5a078c6a0197;hp=d104ae422880c9a47ba2bb9c0e9da67636ddd716;hb=bb43be9a97c4c6b8fd4ac94c7438f1b0ca1d33eb;hpb=b3965d5e36b4388795d646d6bca1764429defc88 diff --git a/src/editor.c b/src/editor.c index d104ae42..479fec7a 100644 --- a/src/editor.c +++ b/src/editor.c @@ -11885,6 +11885,7 @@ void HandleLevelEditorKeyInput(Key key) { int id = GADGET_ID_NONE; int new_element_shift = element_shift; + int step = ED_ELEMENTLIST_BUTTONS_VERT - 1; int i; switch (key) @@ -11901,13 +11902,23 @@ void HandleLevelEditorKeyInput(Key key) case KSYM_Down: id = GADGET_ID_SCROLL_DOWN; break; + case KSYM_Page_Up: - id = GADGET_ID_SCROLL_LIST_UP; - button = ED_ELEMENTLIST_BUTTONS_VERT - 1; - break; case KSYM_Page_Down: - id = GADGET_ID_SCROLL_LIST_DOWN; - button = ED_ELEMENTLIST_BUTTONS_VERT - 1; + step *= (key == KSYM_Page_Up ? -1 : +1); + element_shift += step * ED_ELEMENTLIST_BUTTONS_HORIZ; + + if (element_shift < 0) + element_shift = 0; + if (element_shift > num_editor_elements - ED_NUM_ELEMENTLIST_BUTTONS) + element_shift = num_editor_elements - ED_NUM_ELEMENTLIST_BUTTONS; + + ModifyGadget(level_editor_gadget[GADGET_ID_SCROLL_LIST_VERTICAL], + GDI_SCROLLBAR_ITEM_POSITION, + element_shift / ED_ELEMENTLIST_BUTTONS_HORIZ, GDI_END); + + ModifyEditorElementList(); + break; case KSYM_Home: @@ -12051,7 +12062,7 @@ void PrintEditorGadgetInfoText(struct GadgetInfo *gi) char shortcut[MAX_OUTPUT_LINESIZE + 1]; int max_infotext_len = getMaxInfoTextLength(); - if (gi == NULL || gi->info_text == NULL) + if (gi == NULL || strlen(gi->info_text) == 0) return; strncpy(infotext, gi->info_text, max_infotext_len);