Don't show notification reminders for messages the user does not want notifications for
This commit is contained in:
@@ -258,9 +258,7 @@ chatwin_incoming_msg(ProfChatWin *chatwin, const char *const resource, const cha
|
||||
}
|
||||
|
||||
chatwin->unread++;
|
||||
if (notify) {
|
||||
chatwin->notify = TRUE;
|
||||
}
|
||||
|
||||
if (prefs_get_boolean(PREF_CHLOG) && prefs_get_boolean(PREF_HISTORY)) {
|
||||
_chatwin_history(chatwin, chatwin->barejid);
|
||||
}
|
||||
|
||||
@@ -72,9 +72,6 @@ privwin_incoming_msg(ProfPrivateWin *privatewin, const char *const message, GDat
|
||||
win_print_incoming_message(window, timestamp, jidp->resourcepart, message, PROF_MSG_PLAIN);
|
||||
|
||||
privatewin->unread++;
|
||||
if (notify) {
|
||||
privatewin->notify = TRUE;
|
||||
}
|
||||
|
||||
if (prefs_get_boolean(PREF_FLASH)) {
|
||||
flash();
|
||||
|
||||
@@ -102,7 +102,6 @@ typedef struct prof_chat_win_t {
|
||||
ProfWin window;
|
||||
char *barejid;
|
||||
int unread;
|
||||
gboolean notify;
|
||||
ChatState *state;
|
||||
gboolean is_otr;
|
||||
gboolean otr_is_trusted;
|
||||
@@ -119,7 +118,6 @@ typedef struct prof_muc_win_t {
|
||||
int unread;
|
||||
gboolean unread_mentions;
|
||||
gboolean unread_triggers;
|
||||
gboolean notify;
|
||||
gboolean showjid;
|
||||
unsigned long memcheck;
|
||||
} ProfMucWin;
|
||||
@@ -135,7 +133,6 @@ typedef struct prof_private_win_t {
|
||||
ProfWin window;
|
||||
char *fulljid;
|
||||
int unread;
|
||||
gboolean notify;
|
||||
unsigned long memcheck;
|
||||
gboolean occupant_offline;
|
||||
gboolean room_left;
|
||||
|
||||
@@ -141,7 +141,6 @@ win_create_chat(const char *const barejid)
|
||||
new_win->pgp_send = FALSE;
|
||||
new_win->history_shown = FALSE;
|
||||
new_win->unread = 0;
|
||||
new_win->notify = FALSE;
|
||||
new_win->state = chat_state_new();
|
||||
|
||||
new_win->memcheck = PROFCHATWIN_MEMCHECK;
|
||||
@@ -183,7 +182,6 @@ win_create_muc(const char *const roomjid)
|
||||
new_win->unread = 0;
|
||||
new_win->unread_mentions = FALSE;
|
||||
new_win->unread_triggers = FALSE;
|
||||
new_win->notify = FALSE;
|
||||
if (prefs_get_boolean(PREF_OCCUPANTS_JID)) {
|
||||
new_win->showjid = TRUE;
|
||||
} else {
|
||||
@@ -219,7 +217,6 @@ win_create_private(const char *const fulljid)
|
||||
|
||||
new_win->fulljid = strdup(fulljid);
|
||||
new_win->unread = 0;
|
||||
new_win->notify = FALSE;
|
||||
new_win->occupant_offline = FALSE;
|
||||
new_win->room_left = FALSE;
|
||||
|
||||
@@ -1313,19 +1310,45 @@ win_has_active_subwin(ProfWin *window)
|
||||
gboolean
|
||||
win_notify(ProfWin *window)
|
||||
{
|
||||
if (window->type == WIN_CHAT) {
|
||||
switch (window->type) {
|
||||
case WIN_CHAT:
|
||||
{
|
||||
ProfChatWin *chatwin = (ProfChatWin*) window;
|
||||
assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK);
|
||||
return chatwin->notify;
|
||||
} else if (window->type == WIN_MUC) {
|
||||
|
||||
if (prefs_get_boolean(PREF_NOTIFY_CHAT) && chatwin->unread > 0) {
|
||||
return TRUE;
|
||||
} else {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
case WIN_MUC:
|
||||
{
|
||||
ProfMucWin *mucwin = (ProfMucWin*) window;
|
||||
assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK);
|
||||
return mucwin->notify;
|
||||
} else if (window->type == WIN_PRIVATE) {
|
||||
|
||||
if (prefs_get_room_notify(mucwin->roomjid) && mucwin->unread > 0) {
|
||||
return TRUE;
|
||||
} else if (prefs_get_room_notify_mention(mucwin->roomjid) && mucwin->unread_mentions) {
|
||||
return TRUE;
|
||||
} else if (prefs_get_room_notify_trigger(mucwin->roomjid) && mucwin->unread_triggers) {
|
||||
return TRUE;
|
||||
} else {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
case WIN_PRIVATE:
|
||||
{
|
||||
ProfPrivateWin *privatewin = (ProfPrivateWin*) window;
|
||||
assert(privatewin->memcheck == PROFPRIVATEWIN_MEMCHECK);
|
||||
return privatewin->notify;
|
||||
} else {
|
||||
|
||||
if (prefs_get_boolean(PREF_NOTIFY_CHAT) && privatewin->unread > 0) {
|
||||
return TRUE;
|
||||
} else {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user