mirror of https://github.com/OpenTTD/OpenTTD
(svn r1383) Fix: You can now also delete automatically found servers by pressing "del"
Fix: The scrollbar is correctly updated when deleting serversrelease/0.4.5
parent
9294d33611
commit
87e5984ae2
|
@ -76,6 +76,21 @@ static void NetworkTruncateString(char *name, const int max_width)
|
||||||
|
|
||||||
extern const char _openttd_revision[];
|
extern const char _openttd_revision[];
|
||||||
|
|
||||||
|
static FiosItem *selected_map = NULL; // to highlight slected map
|
||||||
|
|
||||||
|
// called when a new server is found on the network
|
||||||
|
void UpdateNetworkGameWindow(bool unselect)
|
||||||
|
{
|
||||||
|
Window *w;
|
||||||
|
w = FindWindowById(WC_NETWORK_WINDOW, 0);
|
||||||
|
if (w != NULL) {
|
||||||
|
if (unselect)
|
||||||
|
_selected_item = NULL;
|
||||||
|
w->vscroll.count = _network_game_count;
|
||||||
|
SetWindowDirty(w);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void NetworkGameWindowWndProc(Window *w, WindowEvent *e)
|
static void NetworkGameWindowWndProc(Window *w, WindowEvent *e)
|
||||||
{
|
{
|
||||||
switch(e->event) {
|
switch(e->event) {
|
||||||
|
@ -334,10 +349,14 @@ static void NetworkGameWindowWndProc(Window *w, WindowEvent *e)
|
||||||
case WE_KEYPRESS:
|
case WE_KEYPRESS:
|
||||||
if (_selected_field != 3) {
|
if (_selected_field != 3) {
|
||||||
if ( e->keypress.keycode == WKC_DELETE ) { // press 'delete' to remove servers
|
if ( e->keypress.keycode == WKC_DELETE ) { // press 'delete' to remove servers
|
||||||
if (_selected_item != NULL && _selected_item->manually) {
|
if (_selected_item != NULL) {
|
||||||
NetworkGameListRemoveItem(_selected_item);
|
NetworkGameListRemoveItem(_selected_item);
|
||||||
NetworkRebuildHostList();
|
NetworkRebuildHostList();
|
||||||
SetWindowDirty(w);
|
SetWindowDirty(w);
|
||||||
|
_network_game_count--;
|
||||||
|
// reposition scrollbar
|
||||||
|
if (_network_game_count >= w->vscroll.cap && w->vscroll.pos > _network_game_count-w->vscroll.cap) w->vscroll.pos--;
|
||||||
|
UpdateNetworkGameWindow(false);
|
||||||
_selected_item = NULL;
|
_selected_item = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -411,21 +430,6 @@ static const WindowDesc _network_game_window_desc = {
|
||||||
NetworkGameWindowWndProc,
|
NetworkGameWindowWndProc,
|
||||||
};
|
};
|
||||||
|
|
||||||
static FiosItem *selected_map = NULL; // to highlight slected map
|
|
||||||
|
|
||||||
// called when a new server is found on the network
|
|
||||||
void UpdateNetworkGameWindow(bool unselect)
|
|
||||||
{
|
|
||||||
Window *w;
|
|
||||||
w = FindWindowById(WC_NETWORK_WINDOW, 0);
|
|
||||||
if (w != NULL) {
|
|
||||||
if (unselect)
|
|
||||||
_selected_item = NULL;
|
|
||||||
w->vscroll.count = _network_game_count;
|
|
||||||
SetWindowDirty(w);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void ShowNetworkGameWindow()
|
void ShowNetworkGameWindow()
|
||||||
{
|
{
|
||||||
uint i;
|
uint i;
|
||||||
|
|
Loading…
Reference in New Issue