Make enter and escape trigger the default and cancel buttons in
dialogs.
This commit is contained in:
parent
29c93e431d
commit
4007d748dc
|
@ -80,6 +80,8 @@ struct msi_dialog_tag
|
||||||
msi_font *font_list;
|
msi_font *font_list;
|
||||||
struct list controls;
|
struct list controls;
|
||||||
HWND hWndFocus;
|
HWND hWndFocus;
|
||||||
|
LPWSTR control_default;
|
||||||
|
LPWSTR control_cancel;
|
||||||
WCHAR name[1];
|
WCHAR name[1];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1776,11 +1778,22 @@ static UINT msi_dialog_radiogroup_handler( msi_dialog *dialog,
|
||||||
|
|
||||||
static LRESULT msi_dialog_oncommand( msi_dialog *dialog, WPARAM param, HWND hwnd )
|
static LRESULT msi_dialog_oncommand( msi_dialog *dialog, WPARAM param, HWND hwnd )
|
||||||
{
|
{
|
||||||
msi_control *control;
|
msi_control *control = NULL;
|
||||||
|
|
||||||
TRACE("%p %p %08x\n", dialog, hwnd, param);
|
TRACE("%p %p %08x\n", dialog, hwnd, param);
|
||||||
|
|
||||||
|
switch (param)
|
||||||
|
{
|
||||||
|
case 1: /* enter */
|
||||||
|
control = msi_dialog_find_control( dialog, dialog->control_default );
|
||||||
|
break;
|
||||||
|
case 2: /* escape */
|
||||||
|
control = msi_dialog_find_control( dialog, dialog->control_cancel );
|
||||||
|
break;
|
||||||
|
default:
|
||||||
control = msi_dialog_find_control_by_hwnd( dialog, hwnd );
|
control = msi_dialog_find_control_by_hwnd( dialog, hwnd );
|
||||||
|
}
|
||||||
|
|
||||||
if( control )
|
if( control )
|
||||||
{
|
{
|
||||||
if( control->handler )
|
if( control->handler )
|
||||||
|
@ -1790,7 +1803,7 @@ static LRESULT msi_dialog_oncommand( msi_dialog *dialog, WPARAM param, HWND hwnd
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
ERR("button click from nowhere\n");
|
ERR("button click from nowhere %p %d %p\n", dialog, param, hwnd);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1901,6 +1914,8 @@ msi_dialog *msi_dialog_create( MSIPACKAGE* package, LPCWSTR szDialogName,
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
dialog->attributes = MSI_RecordGetInteger( rec, 6 );
|
dialog->attributes = MSI_RecordGetInteger( rec, 6 );
|
||||||
|
dialog->control_default = strdupW( MSI_RecordGetString( rec, 9 ) );
|
||||||
|
dialog->control_cancel = strdupW( MSI_RecordGetString( rec, 10 ) );
|
||||||
msiobj_release( &rec->hdr );
|
msiobj_release( &rec->hdr );
|
||||||
|
|
||||||
return dialog;
|
return dialog;
|
||||||
|
@ -2044,6 +2059,8 @@ void msi_dialog_destroy( msi_dialog *dialog )
|
||||||
}
|
}
|
||||||
msi_free( dialog->default_font );
|
msi_free( dialog->default_font );
|
||||||
|
|
||||||
|
msi_free( dialog->control_default );
|
||||||
|
msi_free( dialog->control_cancel );
|
||||||
msiobj_release( &dialog->package->hdr );
|
msiobj_release( &dialog->package->hdr );
|
||||||
dialog->package = NULL;
|
dialog->package = NULL;
|
||||||
msi_free( dialog );
|
msi_free( dialog );
|
||||||
|
|
Loading…
Reference in New Issue