diff options
-rw-r--r-- | src/group_gui.cpp | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/group_gui.cpp b/src/group_gui.cpp index bc6a9aaf2..374ed5700 100644 --- a/src/group_gui.cpp +++ b/src/group_gui.cpp @@ -746,17 +746,23 @@ public: NOT_REACHED(); } if (v) { - if (_ctrl_pressed) { - if (this->grouping == GB_NONE) { - this->SelectGroup(v->group_id); - } else { - ShowOrdersWindow(v); - } + if (_ctrl_pressed && this->grouping == GB_SHARED_ORDERS) { + ShowOrdersWindow(v); } else { this->vehicle_sel = v->index; + + if (_ctrl_pressed && this->grouping == GB_NONE) { + /* + * It only makes sense to select a group if not using shared orders + * since two vehicles sharing orders can be from different groups. + */ + this->SelectGroup(v->group_id); + } + SetObjectToPlaceWnd(SPR_CURSOR_MOUSE, PAL_NONE, HT_DRAG, this); SetMouseCursorVehicle(v, EIT_IN_LIST); _cursor.vehchain = true; + this->SetDirty(); } } |