I tried everything. In the end I did it the normal way. Focus works on message_textview. Yann have a look if you want to make the same thing in GC

This commit is contained in:
Nikos Kouremenos 2005-03-05 17:34:33 +00:00
parent 747be28ef9
commit 772e6c3310
3 changed files with 29 additions and 92 deletions

View file

@ -623,8 +623,6 @@ class New_message_window:
self.account = account self.account = account
self.xml = gtk.glade.XML(GTKGUI_GLADE, 'new_message_window', APP) self.xml = gtk.glade.XML(GTKGUI_GLADE, 'new_message_window', APP)
self.window = self.xml.get_widget('new_message_window') self.window = self.xml.get_widget('new_message_window')
self.jid_entry = self.xml.get_widget('jid_entry')
self.jid_entry.set_activates_default(True)
self.xml.signal_autoconnect(self) self.xml.signal_autoconnect(self)
self.plugin.windows['new_message'] = self # now add us to open windows self.plugin.windows['new_message'] = self # now add us to open windows

View file

@ -7307,7 +7307,7 @@ Custom</property>
<property name="text" translatable="yes"></property> <property name="text" translatable="yes"></property>
<property name="has_frame">True</property> <property name="has_frame">True</property>
<property name="invisible_char">*</property> <property name="invisible_char">*</property>
<property name="activates_default">False</property> <property name="activates_default">True</property>
</widget> </widget>
<packing> <packing>
<property name="left_attach">1</property> <property name="left_attach">1</property>
@ -7322,13 +7322,14 @@ Custom</property>
<widget class="GtkEntry" id="room_entry"> <widget class="GtkEntry" id="room_entry">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="has_focus">True</property>
<property name="editable">True</property> <property name="editable">True</property>
<property name="visibility">True</property> <property name="visibility">True</property>
<property name="max_length">0</property> <property name="max_length">0</property>
<property name="text" translatable="yes"></property> <property name="text" translatable="yes"></property>
<property name="has_frame">True</property> <property name="has_frame">True</property>
<property name="invisible_char">*</property> <property name="invisible_char">*</property>
<property name="activates_default">False</property> <property name="activates_default">True</property>
</widget> </widget>
<packing> <packing>
<property name="left_attach">1</property> <property name="left_attach">1</property>
@ -7349,7 +7350,7 @@ Custom</property>
<property name="text" translatable="yes"></property> <property name="text" translatable="yes"></property>
<property name="has_frame">True</property> <property name="has_frame">True</property>
<property name="invisible_char">*</property> <property name="invisible_char">*</property>
<property name="activates_default">False</property> <property name="activates_default">True</property>
</widget> </widget>
<packing> <packing>
<property name="left_attach">1</property> <property name="left_attach">1</property>
@ -7365,12 +7366,12 @@ Custom</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="editable">True</property> <property name="editable">True</property>
<property name="visibility">True</property> <property name="visibility">False</property>
<property name="max_length">3</property> <property name="max_length">0</property>
<property name="text" translatable="yes"></property> <property name="text" translatable="yes"></property>
<property name="has_frame">True</property> <property name="has_frame">True</property>
<property name="invisible_char">*</property> <property name="invisible_char">*</property>
<property name="activates_default">False</property> <property name="activates_default">True</property>
</widget> </widget>
<packing> <packing>
<property name="left_attach">1</property> <property name="left_attach">1</property>
@ -7933,6 +7934,7 @@ Custom</property>
<widget class="GtkWindow" id="tabbed_chat_window"> <widget class="GtkWindow" id="tabbed_chat_window">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property>
<property name="title" translatable="yes">Chat</property> <property name="title" translatable="yes">Chat</property>
<property name="type">GTK_WINDOW_TOPLEVEL</property> <property name="type">GTK_WINDOW_TOPLEVEL</property>
<property name="window_position">GTK_WIN_POS_NONE</property> <property name="window_position">GTK_WIN_POS_NONE</property>
@ -7977,7 +7979,6 @@ Custom</property>
<child> <child>
<widget class="GtkButton" id="history_button"> <widget class="GtkButton" id="history_button">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property> <property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property> <property name="focus_on_click">True</property>
<signal name="clicked" handler="on_history_button_clicked" last_modification_time="Wed, 02 Mar 2005 17:03:17 GMT"/> <signal name="clicked" handler="on_history_button_clicked" last_modification_time="Wed, 02 Mar 2005 17:03:17 GMT"/>
@ -8052,70 +8053,11 @@ Custom</property>
<child> <child>
<widget class="GtkButton" id="clear_button"> <widget class="GtkButton" id="clear_button">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="label">gtk-clear</property>
<property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property> <property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property> <property name="focus_on_click">True</property>
<signal name="clicked" handler="on_clear_button_clicked" last_modification_time="Wed, 02 Mar 2005 17:03:09 GMT"/> <signal name="clicked" handler="on_clear_button_clicked" last_modification_time="Wed, 02 Mar 2005 17:03:09 GMT"/>
<child>
<widget class="GtkAlignment" id="alignment46">
<property name="visible">True</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xscale">0</property>
<property name="yscale">0</property>
<property name="top_padding">0</property>
<property name="bottom_padding">0</property>
<property name="left_padding">0</property>
<property name="right_padding">0</property>
<child>
<widget class="GtkHBox" id="hbox2923">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">2</property>
<child>
<widget class="GtkImage" id="image411">
<property name="visible">True</property>
<property name="stock">gtk-clear</property>
<property name="icon_size">4</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label204">
<property name="visible">True</property>
<property name="label" translatable="yes">Clear</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
</widget>
</child>
</widget>
</child>
</widget> </widget>
<packing> <packing>
<property name="padding">0</property> <property name="padding">0</property>
@ -8144,14 +8086,13 @@ Custom</property>
<child> <child>
<widget class="GtkToggleButton" id="gpg_togglebutton"> <widget class="GtkToggleButton" id="gpg_togglebutton">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property>
<property name="relief">GTK_RELIEF_NONE</property> <property name="relief">GTK_RELIEF_NONE</property>
<property name="focus_on_click">False</property> <property name="focus_on_click">False</property>
<property name="active">False</property> <property name="active">False</property>
<property name="inconsistent">False</property> <property name="inconsistent">False</property>
<child> <child>
<widget class="GtkImage" id="image413"> <widget class="GtkImage" id="image433">
<property name="visible">True</property> <property name="visible">True</property>
<property name="stock">gtk-dialog-authentication</property> <property name="stock">gtk-dialog-authentication</property>
<property name="icon_size">4</property> <property name="icon_size">4</property>
@ -8180,7 +8121,6 @@ Custom</property>
<property name="height_request">0</property> <property name="height_request">0</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="tooltip" translatable="yes">Click for contact's extented information</property> <property name="tooltip" translatable="yes">Click for contact's extented information</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Anonymous &lt;id@server/res&gt;</property> <property name="label" translatable="yes">Anonymous &lt;id@server/res&gt;</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NONE</property> <property name="relief">GTK_RELIEF_NONE</property>
@ -8203,13 +8143,12 @@ Custom</property>
<child> <child>
<widget class="GtkButton" id="close_button"> <widget class="GtkButton" id="close_button">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property> <property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property> <property name="focus_on_click">True</property>
<signal name="clicked" handler="on_close_button_clicked" last_modification_time="Wed, 02 Mar 2005 21:05:12 GMT"/> <signal name="clicked" handler="on_close_button_clicked" last_modification_time="Wed, 02 Mar 2005 21:05:12 GMT"/>
<child> <child>
<widget class="GtkImage" id="image414"> <widget class="GtkImage" id="image434">
<property name="visible">True</property> <property name="visible">True</property>
<property name="stock">gtk-close</property> <property name="stock">gtk-close</property>
<property name="icon_size">4</property> <property name="icon_size">4</property>
@ -8237,13 +8176,11 @@ Custom</property>
<child> <child>
<widget class="GtkVPaned" id="vpaned3"> <widget class="GtkVPaned" id="vpaned3">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property>
<property name="position">170</property> <property name="position">170</property>
<child> <child>
<widget class="GtkScrolledWindow" id="conversation_scrolledwindow"> <widget class="GtkScrolledWindow" id="conversation_scrolledwindow">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property> <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="shadow_type">GTK_SHADOW_IN</property> <property name="shadow_type">GTK_SHADOW_IN</property>
@ -8253,7 +8190,6 @@ Custom</property>
<child> <child>
<widget class="GtkTextView" id="conversation_textview"> <widget class="GtkTextView" id="conversation_textview">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">False</property> <property name="editable">False</property>
<property name="overwrite">False</property> <property name="overwrite">False</property>
<property name="accepts_tab">True</property> <property name="accepts_tab">True</property>
@ -8281,7 +8217,6 @@ Custom</property>
<child> <child>
<widget class="GtkScrolledWindow" id="scrolledwindow31"> <widget class="GtkScrolledWindow" id="scrolledwindow31">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property> <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="shadow_type">GTK_SHADOW_IN</property> <property name="shadow_type">GTK_SHADOW_IN</property>
@ -8291,7 +8226,6 @@ Custom</property>
<widget class="GtkTextView" id="message_textview"> <widget class="GtkTextView" id="message_textview">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="has_focus">True</property>
<property name="editable">True</property> <property name="editable">True</property>
<property name="overwrite">False</property> <property name="overwrite">False</property>
<property name="accepts_tab">True</property> <property name="accepts_tab">True</property>
@ -8437,7 +8371,7 @@ send a chat message to</property>
<property name="text" translatable="yes"></property> <property name="text" translatable="yes"></property>
<property name="has_frame">True</property> <property name="has_frame">True</property>
<property name="invisible_char">*</property> <property name="invisible_char">*</property>
<property name="activates_default">False</property> <property name="activates_default">True</property>
</widget> </widget>
<packing> <packing>
<property name="padding">0</property> <property name="padding">0</property>

View file

@ -222,6 +222,7 @@ class tabbed_chat_window:
self.on_tabbed_chat_window_key_press_event) self.on_tabbed_chat_window_key_press_event)
self.xml.signal_connect('on_chat_notebook_switch_page', \ self.xml.signal_connect('on_chat_notebook_switch_page', \
self.on_chat_notebook_switch_page) self.on_chat_notebook_switch_page)
#self.xml.signal_autoconnect(self) #FIXME: (nk) THIS SEGFAULTS GAJIM. WHY?
def update_tags(self): def update_tags(self):
for jid in self.tagIn: for jid in self.tagIn:
@ -363,7 +364,6 @@ class tabbed_chat_window:
child = self.xmls[jid].get_widget('chat_vbox') child = self.xmls[jid].get_widget('chat_vbox')
self.chat_notebook.set_current_page(\ self.chat_notebook.set_current_page(\
self.chat_notebook.page_num(child)) self.chat_notebook.page_num(child))
self.xmls[jid].get_widget('message_textview').grab_focus()
def remove_tab(self, jid): def remove_tab(self, jid):
if len(self.xmls) == 1: if len(self.xmls) == 1:
@ -444,14 +444,14 @@ class tabbed_chat_window:
return 0 return 0
def on_tabbed_chat_window_key_press_event(self, widget, event): def on_tabbed_chat_window_key_press_event(self, widget, event):
st = "1234567890" st = '1234567890' # zero is here cause humans count from 1, pc from 0 :P
jid = self.get_active_jid() jid = self.get_active_jid()
if event.keyval == gtk.keysyms.Escape: if event.keyval == gtk.keysyms.Escape: # ESCAPE
self.remove_tab(jid) self.remove_tab(jid)
elif event.string and event.string in st \ elif event.string and event.string in st \
and (event.state & gtk.gdk.MOD1_MASK): and (event.state & gtk.gdk.MOD1_MASK): # alt + 1,2,3..
self.chat_notebook.set_current_page(st.index(event.string)) self.chat_notebook.set_current_page(st.index(event.string))
elif event.keyval == gtk.keysyms.Page_Down: elif event.keyval == gtk.keysyms.Page_Down: # PAGE DOWN
if event.state & gtk.gdk.CONTROL_MASK: if event.state & gtk.gdk.CONTROL_MASK:
current = self.chat_notebook.get_current_page() current = self.chat_notebook.get_current_page()
if current > 0: if current > 0:
@ -466,7 +466,7 @@ class tabbed_chat_window:
iter = conversation_textview.get_iter_at_location(rect.x,\ iter = conversation_textview.get_iter_at_location(rect.x,\
rect.y + rect.height) rect.y + rect.height)
conversation_textview.scroll_to_iter(iter, 0.1, True, 0, 0) conversation_textview.scroll_to_iter(iter, 0.1, True, 0, 0)
elif event.keyval == gtk.keysyms.Page_Up: elif event.keyval == gtk.keysyms.Page_Up: # PAGE UP
if event.state & gtk.gdk.CONTROL_MASK: if event.state & gtk.gdk.CONTROL_MASK:
current = self.chat_notebook.get_current_page() current = self.chat_notebook.get_current_page()
if current < (self.chat_notebook.get_n_pages()-1): if current < (self.chat_notebook.get_n_pages()-1):
@ -480,12 +480,17 @@ class tabbed_chat_window:
iter = conversation_textview.get_iter_at_location(rect.x, rect.y) iter = conversation_textview.get_iter_at_location(rect.x, rect.y)
conversation_textview.scroll_to_iter(iter, 0.1, True, 0, 1) conversation_textview.scroll_to_iter(iter, 0.1, True, 0, 1)
elif event.keyval == gtk.keysyms.Tab and \ elif event.keyval == gtk.keysyms.Tab and \
(event.state & gtk.gdk.CONTROL_MASK): (event.state & gtk.gdk.CONTROL_MASK): # CTRL + TAB
current = self.chat_notebook.get_current_page() current = self.chat_notebook.get_current_page()
if current < (self.chat_notebook.get_n_pages()-1): if current < (self.chat_notebook.get_n_pages()-1):
self.chat_notebook.set_current_page(current+1) self.chat_notebook.set_current_page(current+1)
else: else:
self.chat_notebook.set_current_page(0) self.chat_notebook.set_current_page(0)
else: # it's a normal key press make sure message_textview has focus
message_textview = self.xmls[jid].\
get_widget('message_textview')
if not message_textview.is_focus():
message_textview.grab_focus()
def on_contact_button_clicked(self, widget): def on_contact_button_clicked(self, widget):
"""When button contact is clicked""" """When button contact is clicked"""
@ -2343,9 +2348,9 @@ class roster_window:
return 1 return 1
def mkemoticons(self): def mkemoticons(self):
"""initialize emoticons array""" """initialize emoticons dictionary"""
self.emoticons = {} self.emoticons = dict()
self.begin_emot = "" self.begin_emot = ''
split_line = string.split(self.plugin.config['emoticons'], '\t') split_line = string.split(self.plugin.config['emoticons'], '\t')
for i in range(0, len(split_line)/2): for i in range(0, len(split_line)/2):
file = split_line[2*i+1] file = split_line[2*i+1]