wmgen

Генератор WINGs апликација
Дневник | Датотеке | Референце | ПРОЧИТАЈМЕ | ЛИЦЕНЦА

чување 53a4ed46b73a5cf90e0c85b360b639108b4b4883
родитељ fd8d17ceeabe733d7df9b8f718a5b55242c06525
Аутор: Страхиња Радић <contact@strahinja.org>
Датум:   Thu, 14 Dec 2023 09:04:23 +0100

Don't add filename to main window title if there is no open file

Signed-off-by: Страхиња Радић <contact@strahinja.org>

Diffstat:
Mapp.h | 1+
Mmain.c | 2++
Mmainwindow.c | 16+++++++++++-----
измењених датотека: 3, додавања: 14(+), брисања: 5(-)

diff --git a/app.h b/app.h @@ -5,6 +5,7 @@ struct State { int debug; int dirty; char filename[PATH_MAX]; + int file_open; /* Is any file opened/created right now? */ }; struct WMNewApp { diff --git a/main.c b/main.c @@ -23,6 +23,7 @@ debug_print_state(struct WMNewApp* wma) WMLog(wma, "===================================\n"); WMLog(wma, "dirty:\t\t%s\n", wma->state.dirty ? "YES" : "NO"); WMLog(wma, "filename:\t[%s]\n", wma->state.filename); + WMLog(wma, "file_open:\t[%s]\n", wma->state.file_open ? "YES" : "NO"); } int @@ -167,6 +168,7 @@ open_action(WMWidget* self, void* data) strncpy(wma->state.filename, last_slash + 1, PATH_MAX); else strncpy(wma->state.filename, filename, PATH_MAX); + wma->state.file_open = 1; set_mainwin_title(wma); WMLog(wma, "opened file: %s (full path: %s)\n", last_slash ? last_slash + 1 : filename, diff --git a/mainwindow.c b/mainwindow.c @@ -82,10 +82,16 @@ create_main_window(struct WMNewApp* wma) void set_mainwin_title(struct WMNewApp* wma) { - snprintf(wma->mainwin_title, - strlen(mainwin_title_fmt) - 2 - 2 + PATH_MAX - + strlen(program_name), - mainwin_title_fmt, program_name, wma->state.dirty ? "*" : "", - *(wma->state.filename) ? wma->state.filename : default_filename); + if (wma->state.file_open) + snprintf(wma->mainwin_title, + strlen(mainwin_title_fmt) - 2 - 2 + PATH_MAX + + strlen(program_name) + 1, + mainwin_title_fmt, program_name, + wma->state.dirty ? "*" : "", + *(wma->state.filename) ? wma->state.filename + : default_filename); + else + snprintf(wma->mainwin_title, strlen(program_name) + 1, "%s", + program_name); WMSetWindowTitle(wma->mainwin, wma->mainwin_title); }