Mercurial > hg > openttd
changeset 8585:2880bcf43f14 draft
(svn r12166) -Fix [FS#337]: when drag&drop mode was cancelled by keyboard input, depot/group window wasn't updated (original patch by GrimRC)
author | smatz <smatz@openttd.org> |
---|---|
date | Sun, 17 Feb 2008 12:21:05 +0000 |
parents | c9982ce96837 |
children | 5f272b02ff37 |
files | src/depot_gui.cpp src/group_gui.cpp src/viewport.cpp src/window.cpp |
diffstat | 4 files changed, 17 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/depot_gui.cpp +++ b/src/depot_gui.cpp @@ -860,8 +860,13 @@ } break; case WE_ABORT_PLACE_OBJ: { + /* abort clone */ w->RaiseWidget(DEPOT_WIDGET_CLONE); w->InvalidateWidget(DEPOT_WIDGET_CLONE); + + /* abort drag & drop */ + WP(w, depot_d).sel = INVALID_VEHICLE; + w->InvalidateWidget(DEPOT_WIDGET_MATRIX); } break; /* check if a vehicle in a depot was clicked.. */
--- a/src/group_gui.cpp +++ b/src/group_gui.cpp @@ -761,6 +761,13 @@ SetWindowDirty(w); } break; + + case WE_ABORT_PLACE_OBJ: // called when new object to place is selected from keyboard + /* abort drag & drop */ + gv->vehicle_sel = INVALID_VEHICLE; + w->InvalidateWidget(GRP_WIDGET_LIST_VEHICLE); + break; + } }
--- a/src/viewport.cpp +++ b/src/viewport.cpp @@ -2847,9 +2847,8 @@ { Window *w; - /* undo clicking on button */ - if (_thd.place_mode != VHM_NONE) { - _thd.place_mode = VHM_NONE; + /* undo clicking on button and drag & drop */ + if (_thd.place_mode != VHM_NONE || _special_mouse_mode == WSM_DRAGDROP) { w = FindWindowById(_thd.window_class, _thd.window_number); if (w != NULL) CallWindowEventNP(w, WE_ABORT_PLACE_OBJ); }
--- a/src/window.cpp +++ b/src/window.cpp @@ -1085,8 +1085,6 @@ w = GetCallbackWnd(); - ResetObjectToPlace(); - if (w != NULL) { /* send an event in client coordinates. */ e.event = WE_DRAGDROP; @@ -1095,6 +1093,9 @@ e.we.dragdrop.widget = GetWidgetFromPos(w, e.we.dragdrop.pt.x, e.we.dragdrop.pt.y); w->wndproc(w, &e); } + + ResetObjectToPlace(); + return false; }