Fix core create_form_select_menu API to pass gw, rather than bw out to front ends.

This commit is contained in:
Michael Drake 2014-10-16 12:39:31 +01:00
parent f4bac1e7df
commit 63645c4c32
9 changed files with 24 additions and 18 deletions

View File

@ -1281,7 +1281,7 @@ static uint32 ami_popup_hook(struct Hook *hook,Object *item,APTR reserved)
return itemid;
}
void gui_create_form_select_menu(struct browser_window *bw,
void gui_create_form_select_menu(struct gui_window *g,
struct form_control *control)
{
/* TODO: PMIA_Title memory leaks as we don't free the strings.
@ -1289,7 +1289,7 @@ void gui_create_form_select_menu(struct browser_window *bw,
* improves we will probably start using this again.
*/
struct gui_window *gwin = bw->window;
struct gui_window *gwin = g;
struct form_option *opt = control->data.select.items;
ULONG i = 0;
@ -1343,7 +1343,7 @@ void ami_context_menu_show(struct gui_window_2 *gwin, int x, int y)
{
}
void gui_create_form_select_menu(struct browser_window *bw,
void gui_create_form_select_menu(struct gui_window *g,
struct form_control *control)
{
}

View File

@ -28,6 +28,6 @@ BOOL ami_context_menu_mouse_trap(struct gui_window_2 *gwin, BOOL trap);
void ami_context_menu_show(struct gui_window_2 *gwin, int x, int y);
void ami_context_menu_show_tree(struct tree *tree, struct Window *win, int type);
void gui_create_form_select_menu(struct browser_window *bw, struct form_control *control);
void gui_create_form_select_menu(struct gui_window *g, struct form_control *control);
#endif

View File

@ -244,10 +244,10 @@ static void gui_window_new_content(struct gui_window *g)
}
static void gui_create_form_select_menu(struct browser_window *bw,
static void gui_create_form_select_menu(struct gui_window *g,
struct form_control *control)
{
FormSelectMenu *menu = [[FormSelectMenu alloc] initWithControl: control forWindow: bw];
FormSelectMenu *menu = [[FormSelectMenu alloc] initWithControl: control forWindow: g->bw];
[menu runInView: [(BrowserViewController *)bw->window browserView]];
[menu release];
}

View File

@ -497,8 +497,12 @@ struct gui_browser_table {
/**
* create a form select menu
*
* \param g gui window containing form control
* \param control form control of type GADGET_SELECT
*/
void (*create_form_select_menu)(struct browser_window *bw, struct form_control *control);
void (*create_form_select_menu)(struct gui_window *g,
struct form_control *control);
/**
* verify certificate

View File

@ -532,7 +532,7 @@ static nserror gui_default_launch_url(struct nsurl *url)
return NSERROR_NO_FETCH_HANDLER;
}
static void gui_default_create_form_select_menu(struct browser_window *bw,
static void gui_default_create_form_select_menu(struct gui_window *g,
struct form_control *control)
{
}

View File

@ -564,7 +564,7 @@ static void nsgtk_select_menu_clicked(GtkCheckMenuItem *checkmenuitem,
(intptr_t)user_data);
}
static void gui_create_form_select_menu(struct browser_window *bw,
static void gui_create_form_select_menu(struct gui_window *g,
struct form_control *control)
{

View File

@ -656,8 +656,12 @@ void html_mouse_action(struct content *c, struct browser_window *bw,
form_select_menu_callback,
c);
pointer = BROWSER_POINTER_DEFAULT;
} else if (mouse & BROWSER_MOUSE_CLICK_1)
guit->browser->create_form_select_menu(bw, gadget);
} else if (mouse & BROWSER_MOUSE_CLICK_1) {
struct browser_window *rbw =
browser_window_get_root(bw);
guit->browser->create_form_select_menu(
rbw->window, gadget);
}
break;
case GADGET_CHECKBOX:
status = messages_get("FormCheckbox");

View File

@ -158,7 +158,7 @@ bool ro_gui_shift_pressed(void);
bool ro_gui_ctrl_pressed(void);
bool ro_gui_alt_pressed(void);
void gui_window_set_pointer(struct gui_window *g, enum gui_pointer_shape shape);
void gui_create_form_select_menu(struct browser_window *bw, struct form_control *control);
void gui_create_form_select_menu(struct gui_window *g, struct form_control *control);
/* in history.c */
void ro_gui_history_init(void);

View File

@ -1354,25 +1354,23 @@ void gui_window_set_extent(struct gui_window *g, int width, int height)
/**
* Display a menu of options for a form select control.
*
* \param bw browser window containing form control
* \param g gui window containing form control
* \param control form control of type GADGET_SELECT
*/
void gui_create_form_select_menu(struct browser_window *bw,
void gui_create_form_select_menu(struct gui_window *g,
struct form_control *control)
{
os_error *error;
wimp_pointer pointer;
bw = browser_window_get_root(bw);
/* The first time the menu is opened, control bypasses the normal
* Menu Prepare event and so we prepare here. On any re-opens,
* ro_gui_window_prepare_form_select_menu() is called from the
* normal wimp event.
*/
if (!ro_gui_window_prepare_form_select_menu(bw->window, control))
if (!ro_gui_window_prepare_form_select_menu(g, control))
return;
error = xwimp_get_pointer_info(&pointer);
@ -1386,7 +1384,7 @@ void gui_create_form_select_menu(struct browser_window *bw,
gui_form_select_control = control;
ro_gui_menu_create(gui_form_select_menu,
pointer.pos.x, pointer.pos.y, bw->window->window);
pointer.pos.x, pointer.pos.y, g->window);
}