From 6f36c52736d28a5aaf8e8066111a2a5421fe2cf5 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 10 Dec 2017 13:45:53 +0000 Subject: (svn r27936) -Fix: When moving wagons in the depot, the drag highlight did not exactly match the length of the dragged wagon chain. --- src/train_gui.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/train_gui.cpp b/src/train_gui.cpp index 4724fb98a..51e772b52 100644 --- a/src/train_gui.cpp +++ b/src/train_gui.cpp @@ -64,14 +64,14 @@ static int HighlightDragPosition(int px, int max_width, VehicleID selection, boo bool rtl = _current_text_dir == TD_RTL; assert(selection != INVALID_VEHICLE); - int dragged_width = WD_FRAMERECT_LEFT + WD_FRAMERECT_RIGHT; + int dragged_width = 0; for (Train *t = Train::Get(selection); t != NULL; t = chain ? t->Next() : (t->HasArticulatedPart() ? t->GetNextArticulatedPart() : NULL)) { dragged_width += t->GetDisplayImageWidth(NULL); } - int drag_hlight_left = rtl ? max(px -dragged_width, 0) : px; - int drag_hlight_right = rtl ? px : min(px + dragged_width, max_width); - int drag_hlight_width = max(drag_hlight_right - drag_hlight_left, 0); + int drag_hlight_left = rtl ? max(px - dragged_width + 1, 0) : px; + int drag_hlight_right = rtl ? px : min(px + dragged_width, max_width) - 1; + int drag_hlight_width = max(drag_hlight_right - drag_hlight_left + 1, 0); if (drag_hlight_width > 0) { GfxFillRect(drag_hlight_left + WD_FRAMERECT_LEFT, WD_FRAMERECT_TOP + 1, -- cgit v1.2.3-54-g00ecf