rnd-20050221-1-src
authorHolger Schemel <info@artsoft.org>
Mon, 21 Feb 2005 02:15:00 +0000 (03:15 +0100)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:48:51 +0000 (10:48 +0200)
* fixed small bug when dragging scrollbars to end positions

ChangeLog
src/conftime.h
src/libgame/gadgets.c
src/screens.c

index df68d09530f268fd0d71adac2b78224430b8103e..177d856c03bbb4f1df0582764639a18a8f8830c3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,6 @@
+2005-02-20
+       * fixed small bug when dragging scrollbars to end positions
+
 2005-02-14
        * added editor element descriptions written by Aaron Davidson
 
index af5496e0d0de4b4bac96ae99f97497670fa4dd1e..7ea708d65826870b5660c08bbfd411be6f7056f5 100644 (file)
@@ -1 +1 @@
-#define COMPILE_DATE_STRING "[2005-02-20 00:31]"
+#define COMPILE_DATE_STRING "[2005-02-21 00:38]"
index a134b04921c77e6367249607564f5e6d071e9918..aaf01eb7e99d70c806f148697b08a82444d27b96 100644 (file)
@@ -1717,7 +1717,7 @@ boolean HandleGadgets(int mx, int my, int button)
 
        if (gs->item_position < 0)
          gs->item_position = 0;
-       if (gs->item_position > gs->items_max - gs->items_visible)
+       else if (gs->item_position > gs->items_max - gs->items_visible)
          gs->item_position = gs->items_max - gs->items_visible;
 
        if (old_item_position != gs->item_position)
@@ -1799,13 +1799,22 @@ boolean HandleGadgets(int mx, int my, int button)
 
       gs->position = scrollbar_mouse_pos - gs->drag_position;
 
-      if (gs->position < 0)
+      /* make sure to always precisely reach end positions when dragging */
+      if (gs->position <= 0)
+      {
        gs->position = 0;
-      if (gs->position > gs->position_max)
+       gs->item_position = 0;
+      }
+      else if (gs->position >= gs->position_max)
+      {
        gs->position = gs->position_max;
-
-      gs->item_position =
-       gs->items_max * (gs->position + gs->correction) / gs->size_max_cmp;
+       gs->item_position = gs->items_max - gs->items_visible;
+      }
+      else
+      {
+       gs->item_position =
+         gs->items_max * (gs->position + gs->correction) / gs->size_max_cmp;
+      }
 
       if (gs->item_position < 0)
        gs->item_position = 0;
index 6e48ea83955fab48cdd92f65c20050a10fbef4b9..5f93823be4ef19aba7c5ca36d33d747a6ffa4bcf 100644 (file)
@@ -466,7 +466,9 @@ void HandleMainMenu(int mx, int my, int dx, int dy, int button)
          SaveLevelSetup_LastSeries();
          SaveLevelSetup_SeriesInfo();
 
+#if 0
          gotoTopLevelDir();
+#endif
 
          DrawChooseLevel();
        }