From 95c081666adc44734f1fa5e1c50d52534325f522 Mon Sep 17 00:00:00 2001 From: James Booth Date: Thu, 3 Apr 2014 21:13:59 +0100 Subject: [PATCH 1/2] Clear window title bar on exit --- src/profanity.c | 1 + src/ui/core.c | 7 +++++++ src/ui/ui.h | 1 + 3 files changed, 9 insertions(+) diff --git a/src/profanity.c b/src/profanity.c index cc95875a..102d5160 100644 --- a/src/profanity.c +++ b/src/profanity.c @@ -313,6 +313,7 @@ _init(const int disable_tls, char *log_level) static void _shutdown(void) { + ui_clear_win_title(); ui_close_all_wins(); jabber_disconnect(); jabber_shutdown(); diff --git a/src/ui/core.c b/src/ui/core.c index c926d633..8ee83b90 100644 --- a/src/ui/core.c +++ b/src/ui/core.c @@ -1497,6 +1497,12 @@ _ui_chat_win_contact_offline(PContact contact, char *resource, char *status) free(display_str); } +static void +_ui_clear_win_title(void) +{ + printf("\033]0;\007"); +} + static void _ui_draw_win_title(void) { @@ -1777,4 +1783,5 @@ ui_init_module(void) ui_handle_recipient_error = _ui_handle_recipient_error; ui_handle_error = _ui_handle_error; ui_current_update_virtual = _ui_current_update_virtual; + ui_clear_win_title = _ui_clear_win_title; } diff --git a/src/ui/ui.h b/src/ui/ui.h index 874ccee2..1dd6b160 100644 --- a/src/ui/ui.h +++ b/src/ui/ui.h @@ -132,6 +132,7 @@ void (*ui_chat_win_contact_offline)(PContact contact, char *resource, char *stat void (*ui_handle_recipient_not_found)(const char * const recipient, const char * const err_msg); void (*ui_handle_recipient_error)(const char * const recipient, const char * const err_msg); void (*ui_handle_error)(const char * const err_msg); +void (*ui_clear_win_title)(void); // contact status functions void (*ui_status_room)(const char * const contact); From 561d96c7119e2b68dd59cd9df3e520be89ec58ee Mon Sep 17 00:00:00 2001 From: James Booth Date: Thu, 3 Apr 2014 21:46:43 +0100 Subject: [PATCH 2/2] Removed titlebar version property and allow disabling of titlebar display --- src/command/command.c | 33 +++++++-------------------------- src/command/commands.c | 9 +++------ src/config/preferences.c | 11 ++++++----- src/config/preferences.h | 2 +- src/ui/console.c | 6 +++--- src/ui/core.c | 34 ++++++++-------------------------- 6 files changed, 28 insertions(+), 67 deletions(-) diff --git a/src/command/command.c b/src/command/command.c index 49f84ad0..9be99743 100644 --- a/src/command/command.c +++ b/src/command/command.c @@ -56,7 +56,6 @@ static void _cmd_complete_parameters(char *input, int *size); static char * _sub_autocomplete(char *input, int *size); static char * _notify_autocomplete(char *input, int *size); -static char * _titlebar_autocomplete(char *input, int *size); static char * _theme_autocomplete(char *input, int *size); static char * _autoaway_autocomplete(char *input, int *size); static char * _autoconnect_autocomplete(char *input, int *size); @@ -528,12 +527,11 @@ static struct cmd_t command_defs[] = NULL } } }, { "/titlebar", - cmd_titlebar, parse_args, 2, 2, &cons_titlebar_setting, - { "/titlebar property on|off", "Show various properties in the window title bar.", - { "/titlebar property on|off", - "-------------------------", - "Show various properties in the window title bar.", - "Currently The only supported property is 'version'.", + cmd_titlebar, parse_args, 1, 1, &cons_titlebar_setting, + { "/titlebar on|off", "Show information in the window title bar.", + { "/titlebar on|off", + "----------------", + "Show information in the window title bar.", NULL } } }, { "/mouse", @@ -1406,7 +1404,7 @@ _cmd_complete_parameters(char *input, int *size) // autocomplete boolean settings gchar *boolean_choices[] = { "/beep", "/intype", "/states", "/outtype", - "/flash", "/splash", "/chlog", "/grlog", "/mouse", "/history", + "/flash", "/splash", "/chlog", "/grlog", "/mouse", "/history", "/titlebar", "/vercheck" }; for (i = 0; i < ARRAY_SIZE(boolean_choices); i++) { @@ -1493,7 +1491,7 @@ _cmd_complete_parameters(char *input, int *size) } autocompleter acs[] = { _who_autocomplete, _sub_autocomplete, _notify_autocomplete, - _autoaway_autocomplete, _titlebar_autocomplete, _theme_autocomplete, + _autoaway_autocomplete, _theme_autocomplete, _account_autocomplete, _roster_autocomplete, _group_autocomplete, _bookmark_autocomplete, _autoconnect_autocomplete, _otr_autocomplete, _connect_autocomplete, _statuses_autocomplete, _alias_autocomplete, @@ -1664,23 +1662,6 @@ _notify_autocomplete(char *input, int *size) return NULL; } -static char * -_titlebar_autocomplete(char *input, int *size) -{ - char *result = NULL; - result = autocomplete_param_with_func(input, size, "/titlebar version", - prefs_autocomplete_boolean_choice); - if (result != NULL) { - return result; - } - result = autocomplete_param_with_ac(input, size, "/titlebar", titlebar_ac); - if (result != NULL) { - return result; - } - - return NULL; -} - static char * _autoaway_autocomplete(char *input, int *size) { diff --git a/src/command/commands.c b/src/command/commands.c index 0ed51795..929bf671 100644 --- a/src/command/commands.c +++ b/src/command/commands.c @@ -2162,13 +2162,10 @@ cmd_states(gchar **args, struct cmd_help_t help) gboolean cmd_titlebar(gchar **args, struct cmd_help_t help) { - if (strcmp(args[0], "version") != 0) { - cons_show("Usage: %s", help.usage); - return TRUE; - } else { - return _cmd_set_boolean_preference(args[1], help, - "Show version in window title", PREF_TITLEBARVERSION); + if (g_strcmp0(args[0], "off") == 0) { + ui_clear_win_title(); } + return _cmd_set_boolean_preference(args[0], help, "Titlebar", PREF_TITLEBAR); } gboolean diff --git a/src/config/preferences.c b/src/config/preferences.c index 02bb0833..6f085ba3 100644 --- a/src/config/preferences.c +++ b/src/config/preferences.c @@ -371,7 +371,7 @@ _get_group(preference_t pref) case PREF_BEEP: case PREF_THEME: case PREF_VERCHECK: - case PREF_TITLEBARVERSION: + case PREF_TITLEBAR: case PREF_FLASH: case PREF_INTYPE: case PREF_HISTORY: @@ -418,8 +418,8 @@ _get_key(preference_t pref) return "theme"; case PREF_VERCHECK: return "vercheck"; - case PREF_TITLEBARVERSION: - return "titlebar.version"; + case PREF_TITLEBAR: + return "titlebar"; case PREF_FLASH: return "flash"; case PREF_INTYPE: @@ -474,9 +474,10 @@ _get_default_boolean(preference_t pref) { switch (pref) { - case PREF_STATUSES: - case PREF_AUTOAWAY_CHECK: + case PREF_TITLEBAR: case PREF_OTR_WARN: + case PREF_AUTOAWAY_CHECK: + return TRUE; default: return FALSE; } diff --git a/src/config/preferences.h b/src/config/preferences.h index 3b4d01d4..2c783f4d 100644 --- a/src/config/preferences.h +++ b/src/config/preferences.h @@ -40,7 +40,7 @@ typedef enum { PREF_BEEP, PREF_VERCHECK, PREF_THEME, - PREF_TITLEBARVERSION, + PREF_TITLEBAR, PREF_FLASH, PREF_INTYPE, PREF_HISTORY, diff --git a/src/ui/console.c b/src/ui/console.c index a7e2a193..073f7791 100644 --- a/src/ui/console.c +++ b/src/ui/console.c @@ -1002,10 +1002,10 @@ _cons_statuses_setting(void) static void _cons_titlebar_setting(void) { - if (prefs_get_boolean(PREF_TITLEBARVERSION)) { - cons_show("Titlebar display (/titlebar) : version"); + if (prefs_get_boolean(PREF_TITLEBAR)) { + cons_show("Titlebar display (/titlebar) : ON"); } else { - cons_show("Titlebar display (/titlebar) : NONE"); + cons_show("Titlebar display (/titlebar) : OFF"); } } diff --git a/src/ui/core.c b/src/ui/core.c index 8ee83b90..2c78c6fa 100644 --- a/src/ui/core.c +++ b/src/ui/core.c @@ -100,7 +100,9 @@ _ui_init(void) static void _ui_update_screen(void) { - _ui_draw_win_title(); + if (prefs_get_boolean(PREF_TITLEBAR)) { + _ui_draw_win_title(); + } title_bar_update_virtual(); status_bar_update_virtual(); inp_put_back(); @@ -1500,31 +1502,13 @@ _ui_chat_win_contact_offline(PContact contact, char *resource, char *status) static void _ui_clear_win_title(void) { - printf("\033]0;\007"); + printf("%c]0;%c", '\033', '\007'); } static void _ui_draw_win_title(void) { char new_win_title[100]; - - GString *version_str = g_string_new(""); - - if (prefs_get_boolean(PREF_TITLEBARVERSION)) { - g_string_append(version_str, " "); - g_string_append(version_str, PACKAGE_VERSION); - if (strcmp(PACKAGE_STATUS, "development") == 0) { -#ifdef HAVE_GIT_VERSION - g_string_append(version_str, "dev."); - g_string_append(version_str, PROF_GIT_BRANCH); - g_string_append(version_str, "."); - g_string_append(version_str, PROF_GIT_REVISION); -#else - g_string_append(version_str, "dev"); -#endif - } - } - jabber_conn_status_t status = jabber_get_connection_status(); if (status == JABBER_CONNECTED) { @@ -1533,20 +1517,18 @@ _ui_draw_win_title(void) if (unread != 0) { snprintf(new_win_title, sizeof(new_win_title), - "%c]0;%s%s (%d) - %s%c", '\033', "Profanity", version_str->str, + "%c]0;%s (%d) - %s%c", '\033', "Profanity", unread, jid, '\007'); } else { snprintf(new_win_title, sizeof(new_win_title), - "%c]0;%s%s - %s%c", '\033', "Profanity", version_str->str, jid, + "%c]0;%s - %s%c", '\033', "Profanity", jid, '\007'); } } else { - snprintf(new_win_title, sizeof(new_win_title), "%c]0;%s%s%c", '\033', - "Profanity", version_str->str, '\007'); + snprintf(new_win_title, sizeof(new_win_title), "%c]0;%s%c", '\033', + "Profanity", '\007'); } - g_string_free(version_str, TRUE); - if (g_strcmp0(win_title, new_win_title) != 0) { // print to x-window title bar printf("%s", new_win_title);