Changeset - r8019:cc25a5b61a28
[Not reviewed]
master
0 8 0
belugas - 16 years ago 2007-12-06 15:58:39
belugas@openttd.org
(svn r11579) -Revert(r11578): some cases of key propagation are not handled correctly.
A better solution will be deviced, but not now. Let's not cause a ton of bug reports
8 files changed with 34 insertions and 14 deletions:
0 comments (0 inline, 0 general)
src/console.cpp
Show inline comments
 
@@ -202,7 +202,7 @@ static const Widget _iconsole_window_wid
 
static const WindowDesc _iconsole_window_desc = {
 
	0, 0, 2, 2, 2, 2,
 
	WC_CONSOLE, WC_NONE,
 
	WDF_STD_TOOLTIPS | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_TEXTENTRY,
 
	WDF_STD_TOOLTIPS | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS,
 
	_iconsole_window_widgets,
 
	IConsoleWndProc,
 
};
src/genworld_gui.cpp
Show inline comments
 
@@ -512,7 +512,7 @@ static void GenerateLandscapeWndProc(Win
 
static const WindowDesc _generate_landscape_desc = {
 
	WDP_CENTER, WDP_CENTER, 338, 268, 338, 268,
 
	WC_GENERATE_LANDSCAPE, WC_NONE,
 
	WDF_STD_TOOLTIPS | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_TEXTENTRY,
 
	WDF_STD_TOOLTIPS | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS,
 
	_generate_landscape_widgets,
 
	GenerateLandscapeWndProc,
 
};
 
@@ -520,7 +520,7 @@ static const WindowDesc _generate_landsc
 
static const WindowDesc _heightmap_load_desc = {
 
	WDP_CENTER, WDP_CENTER, 338, 236, 338, 236,
 
	WC_GENERATE_LANDSCAPE, WC_NONE,
 
	WDF_STD_TOOLTIPS | WDF_DEF_WIDGET | WDF_STD_BTN | WDF_UNCLICK_BUTTONS | WDF_TEXTENTRY,
 
	WDF_STD_TOOLTIPS | WDF_DEF_WIDGET | WDF_STD_BTN | WDF_UNCLICK_BUTTONS,
 
	_heightmap_load_widgets,
 
	GenerateLandscapeWndProc,
 
};
 
@@ -745,7 +745,7 @@ static const Widget _create_scenario_wid
 
static const WindowDesc _create_scenario_desc = {
 
	WDP_CENTER, WDP_CENTER, 338, 170, 338, 170,
 
	WC_GENERATE_LANDSCAPE, WC_NONE,
 
	WDF_STD_TOOLTIPS | WDF_DEF_WIDGET | WDF_STD_BTN | WDF_UNCLICK_BUTTONS | WDF_TEXTENTRY,
 
	WDF_STD_TOOLTIPS | WDF_DEF_WIDGET | WDF_STD_BTN | WDF_UNCLICK_BUTTONS,
 
	_create_scenario_widgets,
 
	CreateScenarioWndProc,
 
};
src/misc_gui.cpp
Show inline comments
 
@@ -1180,7 +1180,7 @@ static const Widget _query_string_widget
 
static const WindowDesc _query_string_desc = {
 
	190, 219, 260, 42, 260, 42,
 
	WC_QUERY_STRING, WC_NONE,
 
	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_TEXTENTRY,
 
	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET,
 
	_query_string_widgets,
 
	QueryStringWndProc
 
};
 
@@ -1648,7 +1648,7 @@ static void SaveLoadDlgWndProc(Window *w
 
static const WindowDesc _load_dialog_desc = {
 
	WDP_CENTER, WDP_CENTER, 257, 154, 257, 294,
 
	WC_SAVELOAD, WC_NONE,
 
	WDF_STD_TOOLTIPS | WDF_DEF_WIDGET | WDF_STD_BTN | WDF_UNCLICK_BUTTONS | WDF_RESIZABLE | WDF_TEXTENTRY,
 
	WDF_STD_TOOLTIPS | WDF_DEF_WIDGET | WDF_STD_BTN | WDF_UNCLICK_BUTTONS | WDF_RESIZABLE,
 
	_load_dialog_widgets,
 
	SaveLoadDlgWndProc,
 
};
 
@@ -1656,7 +1656,7 @@ static const WindowDesc _load_dialog_des
 
static const WindowDesc _save_dialog_desc = {
 
	WDP_CENTER, WDP_CENTER, 257, 180, 257, 320,
 
	WC_SAVELOAD, WC_NONE,
 
	WDF_STD_TOOLTIPS | WDF_DEF_WIDGET | WDF_STD_BTN | WDF_UNCLICK_BUTTONS | WDF_RESIZABLE | WDF_TEXTENTRY,
 
	WDF_STD_TOOLTIPS | WDF_DEF_WIDGET | WDF_STD_BTN | WDF_UNCLICK_BUTTONS | WDF_RESIZABLE,
 
	_save_dialog_widgets,
 
	SaveLoadDlgWndProc,
 
};
src/network/network_gui.cpp
Show inline comments
 
@@ -1852,7 +1852,7 @@ static const Widget _chat_window_widgets
 
static const WindowDesc _chat_window_desc = {
 
	WDP_CENTER, -26, 320, 14, 640, 14, // x, y, width, height
 
	WC_SEND_NETWORK_MSG, WC_NONE,
 
	WDF_STD_TOOLTIPS | WDF_DEF_WIDGET | WDF_TEXTENTRY,
 
	WDF_STD_TOOLTIPS | WDF_DEF_WIDGET,
 
	_chat_window_widgets,
 
	ChatWindowWndProc
 
};
 
@@ -1951,7 +1951,7 @@ static const Widget _ncp_window_widgets[
 
static const WindowDesc _ncp_window_desc = {
 
	WDP_AUTO, WDP_AUTO, 300, 63, 300, 63,
 
	WC_COMPANY_PASSWORD_WINDOW, WC_NONE,
 
	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_TEXTENTRY,
 
	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON,
 
	_ncp_window_widgets,
 
	NetworkCompanyPasswordWindowWndProc
 
};
src/newgrf_gui.cpp
Show inline comments
 
@@ -235,7 +235,7 @@ static const Widget _newgrf_add_dlg_widg
 
static const WindowDesc _newgrf_add_dlg_desc = {
 
	WDP_CENTER, WDP_CENTER, 307, 237, 307, 337,
 
	WC_SAVELOAD, WC_NONE,
 
	WDF_STD_TOOLTIPS | WDF_DEF_WIDGET | WDF_STD_BTN | WDF_UNCLICK_BUTTONS | WDF_RESIZABLE | WDF_TEXTENTRY,
 
	WDF_STD_TOOLTIPS | WDF_DEF_WIDGET | WDF_STD_BTN | WDF_UNCLICK_BUTTONS | WDF_RESIZABLE,
 
	_newgrf_add_dlg_widgets,
 
	NewGRFAddDlgWndProc,
 
};
src/signs_gui.cpp
Show inline comments
 
@@ -298,7 +298,7 @@ static const Widget _query_sign_edit_wid
 
static const WindowDesc _query_sign_edit_desc = {
 
	190, 170, 260, 42, 260, 42,
 
	WC_QUERY_STRING, WC_NONE,
 
	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_TEXTENTRY,
 
	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET,
 
	_query_sign_edit_widgets,
 
	QuerySignEditWndProc
 
};
src/window.cpp
Show inline comments
 
@@ -1676,6 +1676,10 @@ void HandleKeypress(uint32 key)
 
{
 
	Window* const *wz;
 
	WindowEvent e;
 
	/* Stores if a window with a textfield for typing is open
 
	 * If this is the case, keypress events are only passed to windows with text fields and
 
	 * to thein this main toolbar. */
 
	bool query_open = false;
 

	
 
	/*
 
	* During the generation of the world, there might be
 
@@ -1694,12 +1698,28 @@ void HandleKeypress(uint32 key)
 
	e.we.keypress.keycode = GB(key, 16, 16);
 
	e.we.keypress.cont = true;
 

	
 
	/* check if we have a query string window open before allowing hotkeys */
 
	if (FindWindowById(WC_QUERY_STRING,            0) != NULL ||
 
			FindWindowById(WC_SEND_NETWORK_MSG,        0) != NULL ||
 
			FindWindowById(WC_GENERATE_LANDSCAPE,      0) != NULL ||
 
			FindWindowById(WC_CONSOLE,                 0) != NULL ||
 
			FindWindowById(WC_SAVELOAD,                0) != NULL ||
 
			FindWindowById(WC_COMPANY_PASSWORD_WINDOW, 0) != NULL) {
 
		query_open = true;
 
	}
 

	
 
	/* Call the event, start with the uppermost window. */
 
	for (wz = _last_z_window; wz != _z_windows;) {
 
		Window *w = *--wz;
 

	
 
		/* Only call the event for the windows declared as been text entry enabled */
 
		if (!(w->desc_flags & WDF_TEXTENTRY)) {
 
		/* if a query window is open, only call the event for certain window types */
 
		if (query_open &&
 
				w->window_class != WC_QUERY_STRING &&
 
				w->window_class != WC_SEND_NETWORK_MSG &&
 
				w->window_class != WC_GENERATE_LANDSCAPE &&
 
				w->window_class != WC_CONSOLE &&
 
				w->window_class != WC_SAVELOAD &&
 
				w->window_class != WC_COMPANY_PASSWORD_WINDOW) {
 
			continue;
 
		}
 
		w->wndproc(w, &e);
src/window.h
Show inline comments
 
@@ -208,7 +208,7 @@ enum WindowDefaultFlag {
 
	WDF_STD_TOOLTIPS    =   1 << 0, ///< use standard routine when displaying tooltips
 
	WDF_DEF_WIDGET      =   1 << 1, ///< default widget control for some widgets in the on click event
 
	WDF_STD_BTN         =   1 << 2, ///< default handling for close and drag widgets (widget no 0 and 1)
 
	WDF_TEXTENTRY       =   1 << 3, ///< This window is authorized to receive keyboard events
 

	
 
	WDF_UNCLICK_BUTTONS =   1 << 4, ///< Unclick buttons when the window event times out */
 
	WDF_STICKY_BUTTON   =   1 << 5, ///< Set window to sticky mode; they are not closed unless closed with 'X' (widget 2)
 
	WDF_RESIZABLE       =   1 << 6, ///< A window can be resized
0 comments (0 inline, 0 general)