0
0
mirror of https://github.com/vim/vim.git synced 2025-09-28 04:24:06 -04:00

updated for version 7.4.459

Problem:    Can't change the icon after building Vim.
Solution:   Load the icon from a file on startup. (Yasuhiro Matsumoto)
This commit is contained in:
Bram Moolenaar
2014-09-23 21:53:41 +02:00
parent cfc216e7b0
commit cddc91ccb4
5 changed files with 40 additions and 1 deletions

View File

@@ -1662,6 +1662,14 @@ gui_mch_init(void)
if (s_textArea == NULL) if (s_textArea == NULL)
return FAIL; return FAIL;
/* Try loading an icon from $RUNTIMEPATH/bitmaps/vim.ico. */
{
HANDLE hIcon = NULL;
if (mch_icon_load(&hIcon) == OK && hIcon != NULL)
SendMessage(s_hwnd, WM_SETICON, ICON_SMALL, hIcon);
}
#ifdef FEAT_MENU #ifdef FEAT_MENU
s_menuBar = CreateMenu(); s_menuBar = CreateMenu();
#endif #endif

View File

@@ -928,6 +928,33 @@ check_str_len(char_u *str)
} }
# endif # endif
/*
* Passed to do_in_runtimepath() to load a vim.ico file.
*/
static void
mch_icon_load_cb(char_u *fname, void *cookie)
{
HANDLE *h = (HANDLE *)cookie;
*h = LoadImage(NULL,
fname,
IMAGE_ICON,
64,
64,
LR_LOADFROMFILE | LR_LOADMAP3DCOLORS);
}
/*
* Try loading an icon file from 'runtimepath'.
*/
int
mch_icon_load(iconp)
HANDLE *iconp;
{
return do_in_runtimepath((char_u *)"bitmaps/vim.ico",
FALSE, mch_icon_load_cb, iconp);
}
int int
mch_libcall( mch_libcall(
char_u *libname, char_u *libname,

View File

@@ -2446,7 +2446,8 @@ SaveConsoleTitleAndIcon(void)
return; return;
/* Extract the first icon contained in the Vim executable. */ /* Extract the first icon contained in the Vim executable. */
g_hVimIcon = ExtractIcon(NULL, exe_name, 0); if (mch_icon_load((HANDLE *)&g_hVimIcon) == FAIL || g_hVimIcon == NULL)
g_hVimIcon = ExtractIcon(NULL, exe_name, 0);
if (g_hVimIcon != NULL) if (g_hVimIcon != NULL)
g_fCanChangeIcon = TRUE; g_fCanChangeIcon = TRUE;
} }

View File

@@ -21,6 +21,7 @@ int mch_has_wildcard __ARGS((char_u *p));
int mch_chdir __ARGS((char *path)); int mch_chdir __ARGS((char *path));
int can_end_termcap_mode __ARGS((int give_msg)); int can_end_termcap_mode __ARGS((int give_msg));
int mch_screenmode __ARGS((char_u *arg)); int mch_screenmode __ARGS((char_u *arg));
int mch_icon_load __ARGS((HANDLE *iconp));
int mch_libcall __ARGS((char_u *libname, char_u *funcname, char_u *argstring, int argint, char_u **string_result, int *number_result)); int mch_libcall __ARGS((char_u *libname, char_u *funcname, char_u *argstring, int argint, char_u **string_result, int *number_result));
void DumpPutS __ARGS((const char *psz)); void DumpPutS __ARGS((const char *psz));
int mch_get_winpos __ARGS((int *x, int *y)); int mch_get_winpos __ARGS((int *x, int *y));

View File

@@ -741,6 +741,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
459,
/**/ /**/
458, 458,
/**/ /**/