(svn r1617) -Fix: Ugly hack to only call ResetObjectToPlaceon childwindows of build-toolbar if the window is closed manually (with 'X'); if not checked ResetObjectToPlace is called twice resulting in undesired actions (eg. clicked button is unclicked immediately).
This commit is contained in:
		| @@ -179,9 +179,6 @@ static void BuildAirportPickerWndProc(Window *w, WindowEvent *e) | |||||||
|  |  | ||||||
| 	case WE_CLICK: { | 	case WE_CLICK: { | ||||||
| 		switch(e->click.widget) { | 		switch(e->click.widget) { | ||||||
| 		case 0: |  | ||||||
| 			ResetObjectToPlace(); |  | ||||||
| 			break; |  | ||||||
| 		case 3: case 4: case 5: case 6: case 7: | 		case 3: case 4: case 5: case 6: case 7: | ||||||
| 			_selected_airport_type = e->click.widget - 3; | 			_selected_airport_type = e->click.widget - 3; | ||||||
| 			SndPlayFx(SND_15_BEEP); | 			SndPlayFx(SND_15_BEEP); | ||||||
| @@ -205,6 +202,7 @@ static void BuildAirportPickerWndProc(Window *w, WindowEvent *e) | |||||||
| 	} break; | 	} break; | ||||||
|  |  | ||||||
| 	case WE_DESTROY: | 	case WE_DESTROY: | ||||||
|  | 		if (!WP(w,def_d).close) | ||||||
| 			ResetObjectToPlace(); | 			ResetObjectToPlace(); | ||||||
| 		break; | 		break; | ||||||
| 	} | 	} | ||||||
|   | |||||||
| @@ -234,9 +234,6 @@ static void BuildDockStationWndProc(Window *w, WindowEvent *e) | |||||||
|  |  | ||||||
| 	case WE_CLICK: { | 	case WE_CLICK: { | ||||||
| 		switch(e->click.widget) { | 		switch(e->click.widget) { | ||||||
| 		case 0: |  | ||||||
| 			ResetObjectToPlace(); |  | ||||||
| 			break; |  | ||||||
| 		case 3: case 4: | 		case 3: case 4: | ||||||
| 			_station_show_coverage = e->click.widget - 3; | 			_station_show_coverage = e->click.widget - 3; | ||||||
| 			SndPlayFx(SND_15_BEEP); | 			SndPlayFx(SND_15_BEEP); | ||||||
| @@ -256,6 +253,7 @@ static void BuildDockStationWndProc(Window *w, WindowEvent *e) | |||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	case WE_DESTROY: | 	case WE_DESTROY: | ||||||
|  | 		if (!WP(w,def_d).close) | ||||||
| 			ResetObjectToPlace(); | 			ResetObjectToPlace(); | ||||||
| 		break; | 		break; | ||||||
| 	} | 	} | ||||||
| @@ -307,9 +305,6 @@ static void BuildDocksDepotWndProc(Window *w, WindowEvent *e) | |||||||
|  |  | ||||||
| 	case WE_CLICK: { | 	case WE_CLICK: { | ||||||
| 		switch(e->click.widget) { | 		switch(e->click.widget) { | ||||||
| 		case 0: |  | ||||||
| 			ResetObjectToPlace(); |  | ||||||
| 			break; |  | ||||||
| 		case 3: | 		case 3: | ||||||
| 		case 4: | 		case 4: | ||||||
| 			_ship_depot_direction = e->click.widget - 3; | 			_ship_depot_direction = e->click.widget - 3; | ||||||
| @@ -326,6 +321,7 @@ static void BuildDocksDepotWndProc(Window *w, WindowEvent *e) | |||||||
| 		break; | 		break; | ||||||
|  |  | ||||||
| 	case WE_DESTROY: | 	case WE_DESTROY: | ||||||
|  | 		if (!WP(w,def_d).close) | ||||||
| 			ResetObjectToPlace(); | 			ResetObjectToPlace(); | ||||||
| 		break; | 		break; | ||||||
| 	} | 	} | ||||||
|   | |||||||
							
								
								
									
										13
									
								
								rail_gui.c
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								rail_gui.c
									
									
									
									
									
								
							| @@ -761,9 +761,6 @@ static void StationBuildWndProc(Window *w, WindowEvent *e) { | |||||||
|  |  | ||||||
| 	case WE_CLICK: { | 	case WE_CLICK: { | ||||||
| 		switch(e->click.widget) { | 		switch(e->click.widget) { | ||||||
| 		case 0: |  | ||||||
| 			ResetObjectToPlace(); |  | ||||||
| 			break; |  | ||||||
| 		case 3: | 		case 3: | ||||||
| 		case 4: | 		case 4: | ||||||
| 			_railstation.orientation = e->click.widget - 3; | 			_railstation.orientation = e->click.widget - 3; | ||||||
| @@ -821,6 +818,7 @@ static void StationBuildWndProc(Window *w, WindowEvent *e) { | |||||||
| 		} break; | 		} break; | ||||||
|  |  | ||||||
| 	case WE_DESTROY: | 	case WE_DESTROY: | ||||||
|  | 		if (!WP(w,def_d).close) | ||||||
| 			ResetObjectToPlace(); | 			ResetObjectToPlace(); | ||||||
| 		break; | 		break; | ||||||
| 	} | 	} | ||||||
| @@ -888,13 +886,7 @@ static void BuildTrainDepotWndProc(Window *w, WindowEvent *e) | |||||||
| 		} | 		} | ||||||
| 	case WE_CLICK: { | 	case WE_CLICK: { | ||||||
| 		switch(e->click.widget) { | 		switch(e->click.widget) { | ||||||
| 		case 0: | 		case 3: case 4: case 5: case 6: | ||||||
| 			ResetObjectToPlace(); |  | ||||||
| 			break; |  | ||||||
| 		case 3: |  | ||||||
| 		case 4: |  | ||||||
| 		case 5: |  | ||||||
| 		case 6: |  | ||||||
| 			_build_depot_direction = e->click.widget - 3; | 			_build_depot_direction = e->click.widget - 3; | ||||||
| 			SndPlayFx(SND_15_BEEP); | 			SndPlayFx(SND_15_BEEP); | ||||||
| 			SetWindowDirty(w); | 			SetWindowDirty(w); | ||||||
| @@ -908,6 +900,7 @@ static void BuildTrainDepotWndProc(Window *w, WindowEvent *e) | |||||||
| 		return; | 		return; | ||||||
|  |  | ||||||
| 	case WE_DESTROY: | 	case WE_DESTROY: | ||||||
|  | 		if (!WP(w,def_d).close) | ||||||
| 			ResetObjectToPlace(); | 			ResetObjectToPlace(); | ||||||
| 		break; | 		break; | ||||||
| 	} | 	} | ||||||
|   | |||||||
							
								
								
									
										25
									
								
								road_gui.c
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								road_gui.c
									
									
									
									
									
								
							| @@ -353,14 +353,8 @@ static void BuildRoadDepotWndProc(Window *w, WindowEvent *e) { | |||||||
| 		break; | 		break; | ||||||
|  |  | ||||||
| 	case WE_CLICK: { | 	case WE_CLICK: { | ||||||
| 		switch(e->click.widget) { | 		switch (e->click.widget) { | ||||||
| 		case 0: | 		case 3: case 4: case 5: case 6: | ||||||
| 			ResetObjectToPlace(); |  | ||||||
| 			break; |  | ||||||
| 		case 3: |  | ||||||
| 		case 4: |  | ||||||
| 		case 5: |  | ||||||
| 		case 6: |  | ||||||
| 			_road_depot_orientation = e->click.widget - 3; | 			_road_depot_orientation = e->click.widget - 3; | ||||||
| 			SndPlayFx(SND_15_BEEP); | 			SndPlayFx(SND_15_BEEP); | ||||||
| 			SetWindowDirty(w); | 			SetWindowDirty(w); | ||||||
| @@ -374,6 +368,7 @@ static void BuildRoadDepotWndProc(Window *w, WindowEvent *e) { | |||||||
| 		break; | 		break; | ||||||
|  |  | ||||||
| 	case WE_DESTROY: | 	case WE_DESTROY: | ||||||
|  | 		if (!WP(w,def_d).close) | ||||||
| 			ResetObjectToPlace(); | 			ResetObjectToPlace(); | ||||||
| 		break; | 		break; | ||||||
| 	} | 	} | ||||||
| @@ -436,20 +431,13 @@ static void RoadStationPickerWndProc(Window *w, WindowEvent *e) | |||||||
| 	} break; | 	} break; | ||||||
|  |  | ||||||
| 	case WE_CLICK: { | 	case WE_CLICK: { | ||||||
| 		switch(e->click.widget) { | 		switch (e->click.widget) { | ||||||
| 		case 0: | 		case 3: case 4: case 5: case 6: | ||||||
| 			ResetObjectToPlace(); |  | ||||||
| 			break; |  | ||||||
| 		case 3: |  | ||||||
| 		case 4: |  | ||||||
| 		case 5: |  | ||||||
| 		case 6: |  | ||||||
| 			_road_station_picker_orientation = e->click.widget - 3; | 			_road_station_picker_orientation = e->click.widget - 3; | ||||||
| 			SndPlayFx(SND_15_BEEP); | 			SndPlayFx(SND_15_BEEP); | ||||||
| 			SetWindowDirty(w); | 			SetWindowDirty(w); | ||||||
| 			break; | 			break; | ||||||
| 		case 7: | 		case 7: case 8: | ||||||
| 		case 8: |  | ||||||
| 			_station_show_coverage = e->click.widget - 7; | 			_station_show_coverage = e->click.widget - 7; | ||||||
| 			SndPlayFx(SND_15_BEEP); | 			SndPlayFx(SND_15_BEEP); | ||||||
| 			SetWindowDirty(w); | 			SetWindowDirty(w); | ||||||
| @@ -467,6 +455,7 @@ static void RoadStationPickerWndProc(Window *w, WindowEvent *e) | |||||||
| 	} break; | 	} break; | ||||||
|  |  | ||||||
| 	case WE_DESTROY: | 	case WE_DESTROY: | ||||||
|  | 		if (!WP(w,def_d).close) | ||||||
| 			ResetObjectToPlace(); | 			ResetObjectToPlace(); | ||||||
| 		break; | 		break; | ||||||
| 	} | 	} | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 darkvater
					darkvater