Ticket #67: im.diff
| File im.diff, 3.1 kB (added by kanru, 17 months ago) |
|---|
-
Widgets.py
187 187 gobject.type_register( avatarHolder ) 188 188 189 189 190 class inputBox( gtk.TextView ): 191 __gsignals__ = { 192 'message-send':(gobject.SIGNAL_RUN_LAST|gobject.SIGNAL_ACTION, 193 gobject.TYPE_NONE, ()), 194 'escape-pressed':(gobject.SIGNAL_RUN_LAST|gobject.SIGNAL_ACTION, 195 gobject.TYPE_NONE, ()) 196 } 197 def __init__(self): 198 gobject.GObject.__init__(self) 199 gtk.binding_entry_add_signal(self, gtk.keysyms.KP_Enter, 0, 'message-send') 200 gtk.binding_entry_add_signal(self, gtk.keysyms.Return, 0, 'message-send') 201 gtk.binding_entry_add_signal(self, gtk.keysyms.Escape, 0, 'escape-pressed') 202 203 gobject.type_register( inputBox ) -
ConversationUI.py
553 553 554 554 self.pack_end(self.hboxFrame, False, False, 2) 555 555 556 self.input = gtk.TextView()556 self.input = Widgets.inputBox() 557 557 self.input.set_left_margin( 6 ) 558 558 self.input.set_right_margin( 6 ) 559 559 self.input.set_wrap_mode(gtk.WRAP_WORD) … … 568 568 frameInput.add(self.scrollInput) 569 569 570 570 self.pack_start(frameInput, True, True, 0) 571 571 572 572 self.inputBuffer.connect( 'changed', self.on_changed_event ) 573 573 self.input.connect( 'key-press-event' , self.on_key_press_event ) 574 self.input.connect_after( 'message-send', self.message_send) 575 self.input.connect_after( 'escape-pressed', self.on_escape_pressed_event) 574 576 575 577 self.input.connect_after( 'map-event', self.on_input_map_event ) 576 578 self.input.grab_focus() … … 749 751 self.inputBuffer.get_start_iter(), 750 752 self.inputBuffer.get_end_iter() ) 751 753 752 def on_key_press_event( self , widget, event ): 753 if not( event.state & gtk.gdk.SHIFT_MASK ) and \ 754 not( event.state & gtk.gdk.CONTROL_MASK ) and \ 755 not( event.state & gtk.gdk.MOD1_MASK ) and \ 756 ( event.keyval == gtk.keysyms.Return or 757 event.keyval == gtk.keysyms.KP_Enter ): 758 754 def message_send(self, widget): 759 755 if self.id_timeout != None: 760 756 gobject.source_remove( self.id_timeout ) 761 757 self.id_timeout = None 762 758 763 759 return self.sendMessage() 764 765 elif event.keyval == gtk.keysyms.Escape: 766 self.parentUI.getParentConversation().close() 767 768 elif event.keyval == gtk.keysyms.space: 760 761 def on_escape_pressed_event( self, widget ): 762 self.parentUI.getParentConversation().close() 763 764 def on_key_press_event( self , widget, event ): 765 if event.keyval == gtk.keysyms.space: 769 766 if self.id_timeout != None: 770 767 gobject.source_remove( self.id_timeout ) 771 768 self.id_timeout = None
