avoid a TB, and detect better if we were composing

This commit is contained in:
Nikos Kouremenos 2005-08-07 21:21:23 +00:00
parent 73138c985e
commit 8c86a126cc
1 changed files with 8 additions and 3 deletions

View File

@ -391,7 +391,7 @@ class TabbedChatWindow(chat.Chat):
self.send_chatstate('composing') self.send_chatstate('composing')
else: else:
if self.chatstates[contact.jid] == 'composing': if self.chatstates[contact.jid] == 'composing':
self.send_chatstate('paused') # pause composing self.send_chatstate('paused', contact.jid) # pause composing
# assume no activity and let the motion-notify or key_press make them True # assume no activity and let the motion-notify or key_press make them True
self.mouse_over_in_last_5_secs = False self.mouse_over_in_last_5_secs = False
@ -414,7 +414,7 @@ class TabbedChatWindow(chat.Chat):
if not (self.mouse_over_in_last_30_secs or\ if not (self.mouse_over_in_last_30_secs or\
self.kbd_activity_in_last_30_secs): self.kbd_activity_in_last_30_secs):
self.send_chatstate('inactive') self.send_chatstate('inactive', contact.jid)
# assume no activity and let the motion-notify or key_press make them True # assume no activity and let the motion-notify or key_press make them True
self.mouse_over_in_last_5_secs = False self.mouse_over_in_last_5_secs = False
@ -488,13 +488,18 @@ class TabbedChatWindow(chat.Chat):
# Shift + Escape is not composing, so we let the gtk+ decide # Shift + Escape is not composing, so we let the gtk+ decide
# in an workaround way (we could also get somehow the listed shortcuts # in an workaround way (we could also get somehow the listed shortcuts
# but I don't know if it's possible) # but I don't know if it's possible)
# get images too (eg. emoticons)
message = message_buffer.get_slice(start_iter, end_iter, True)
message = message.strip() # enter and space does not mean writing
chars_no = len(message) chars_no = len(message)
gobject.timeout_add(1000, self.check_for_possible_composing, gobject.timeout_add(1000, self.check_for_possible_composing,
message_buffer, jid, chars_no) message_buffer, jid, chars_no)
def check_for_possible_composing(self, message_buffer, jid, chars_no): def check_for_possible_composing(self, message_buffer, jid, chars_no):
start_iter, end_iter = message_buffer.get_bounds() start_iter, end_iter = message_buffer.get_bounds()
message = message_buffer.get_text(start_iter, end_iter, False) message = message_buffer.get_slice(start_iter, end_iter, True)
message = message.strip() # enter and space does not mean writing
chars_no_after_one_sec = len(message) chars_no_after_one_sec = len(message)
if chars_no != chars_no_after_one_sec: if chars_no != chars_no_after_one_sec:
# so GTK+ decided key_press was for writing.. # so GTK+ decided key_press was for writing..