diff --git a/src/appicon.c b/src/appicon.c index e3164b73..4437e58f 100644 --- a/src/appicon.c +++ b/src/appicon.c @@ -383,6 +383,8 @@ static void killCallback(WMenu * menu, WMenuEntry * entry) WApplication *wapp = (WApplication *) entry->clientdata; WFakeGroupLeader *fPtr; char *buffer; + char *shortname; + char *basename(const char *shortname); if (!WCHECK_STATE(WSTATE_NORMAL)) return; @@ -391,7 +393,9 @@ static void killCallback(WMenu * menu, WMenuEntry * entry) assert(entry->clientdata != NULL); - buffer = wstrconcat(wapp->app_icon ? wapp->app_icon->wm_class : NULL, + shortname = basename(wapp->app_icon->wm_instance); + + buffer = wstrconcat(wapp->app_icon ? shortname : NULL, _(" will be forcibly closed.\n" "Any unsaved changes will be lost.\n" "Please confirm.")); diff --git a/src/dock.c b/src/dock.c index 9f528ffd..1d82a371 100644 --- a/src/dock.c +++ b/src/dock.c @@ -206,7 +206,9 @@ static void killCallback(WMenu * menu, WMenuEntry * entry) WScreen *scr = menu->menu->screen_ptr; WAppIcon *icon; WFakeGroupLeader *fPtr; - char *buffer; + char *buffer, *shortname, **argv; + char *basename(const char *shortname); + int argc; if (!WCHECK_STATE(WSTATE_NORMAL)) return; @@ -219,7 +221,12 @@ static void killCallback(WMenu * menu, WMenuEntry * entry) WCHANGE_STATE(WSTATE_MODAL); - buffer = wstrconcat(icon->wm_class, + /* strip away dir names */ + shortname = basename(icon->command); + /* separate out command options */ + wtokensplit(shortname, &argv, &argc); + + buffer = wstrconcat(argv[0], _(" will be forcibly closed.\n" "Any unsaved changes will be lost.\n" "Please confirm.")); @@ -257,6 +264,7 @@ static void killCallback(WMenu * menu, WMenuEntry * entry) } wfree(buffer); + wtokenfree(argv, argc); icon->editing = 0;