tab_eventbox widget. do not grab focus
This commit is contained in:
parent
6b6e598c4d
commit
e9eb73d21c
1 changed files with 21 additions and 16 deletions
|
@ -219,9 +219,9 @@ class MessageWindow(object):
|
||||||
# destroy window
|
# destroy window
|
||||||
return False
|
return False
|
||||||
dialogs.YesNoDialog(
|
dialogs.YesNoDialog(
|
||||||
_('You are going to close several tabs'),
|
_('You are going to close several tabs'),
|
||||||
_('Do you really want to close them all?'),
|
_('Do you really want to close them all?'),
|
||||||
checktext=_('_Do not ask me again'), on_response_yes=on_yes1)
|
checktext=_('_Do not ask me again'), on_response_yes=on_yes1)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def on_yes(ctrl):
|
def on_yes(ctrl):
|
||||||
|
@ -292,8 +292,8 @@ _('Do you really want to close them all?'),
|
||||||
id_ = widget.connect('clicked', self._on_close_button_clicked, control)
|
id_ = widget.connect('clicked', self._on_close_button_clicked, control)
|
||||||
control.handlers[id_] = widget
|
control.handlers[id_] = widget
|
||||||
|
|
||||||
id_ = tab_label_box.connect('button-press-event', self.on_tab_eventbox_button_press_event,
|
id_ = tab_label_box.connect('button-press-event',
|
||||||
control.widget)
|
self.on_tab_eventbox_button_press_event, control.widget)
|
||||||
control.handlers[id_] = tab_label_box
|
control.handlers[id_] = tab_label_box
|
||||||
self.notebook.append_page(control.widget, tab_label_box)
|
self.notebook.append_page(control.widget, tab_label_box)
|
||||||
|
|
||||||
|
@ -317,6 +317,9 @@ _('Do you really want to close them all?'),
|
||||||
elif event.button == 2: # middle click
|
elif event.button == 2: # middle click
|
||||||
ctrl = self._widget_to_control(child)
|
ctrl = self._widget_to_control(child)
|
||||||
self.remove_tab(ctrl, self.CLOSE_TAB_MIDDLE_CLICK)
|
self.remove_tab(ctrl, self.CLOSE_TAB_MIDDLE_CLICK)
|
||||||
|
else:
|
||||||
|
ctrl = self._widget_to_control(child)
|
||||||
|
gobject.idle_add(ctrl.msg_textview.grab_focus)
|
||||||
|
|
||||||
def _on_message_textview_mykeypress_event(self, widget, event_keyval,
|
def _on_message_textview_mykeypress_event(self, widget, event_keyval,
|
||||||
event_keymod):
|
event_keymod):
|
||||||
|
@ -591,7 +594,7 @@ _('Do you really want to close them all?'),
|
||||||
elif self.get_num_controls() == 1: # we are going from two tabs to one
|
elif self.get_num_controls() == 1: # we are going from two tabs to one
|
||||||
window_mode = gajim.interface.msg_win_mgr.mode
|
window_mode = gajim.interface.msg_win_mgr.mode
|
||||||
show_tabs_if_one_tab = gajim.config.get('tabs_always_visible') or \
|
show_tabs_if_one_tab = gajim.config.get('tabs_always_visible') or \
|
||||||
window_mode == MessageWindowMgr.ONE_MSG_WINDOW_ALWAYS_WITH_ROSTER
|
window_mode == MessageWindowMgr.ONE_MSG_WINDOW_ALWAYS_WITH_ROSTER
|
||||||
self.notebook.set_show_tabs(show_tabs_if_one_tab)
|
self.notebook.set_show_tabs(show_tabs_if_one_tab)
|
||||||
|
|
||||||
def redraw_tab(self, ctrl, chatstate = None):
|
def redraw_tab(self, ctrl, chatstate = None):
|
||||||
|
@ -719,8 +722,8 @@ _('Do you really want to close them all?'),
|
||||||
ind = self.notebook.get_current_page()
|
ind = self.notebook.get_current_page()
|
||||||
current = ind
|
current = ind
|
||||||
found = False
|
found = False
|
||||||
first_composing_ind = -1 # id of first composing ctrl to switch to
|
first_composing_ind = -1 # id of first composing ctrl to switch to
|
||||||
# if no others controls have awaiting events
|
# if no others controls have awaiting events
|
||||||
# loop until finding an unread tab or having done a complete cycle
|
# loop until finding an unread tab or having done a complete cycle
|
||||||
while True:
|
while True:
|
||||||
if forward == True: # look for the first unread tab on the right
|
if forward == True: # look for the first unread tab on the right
|
||||||
|
@ -735,7 +738,8 @@ _('Do you really want to close them all?'),
|
||||||
if ctrl.get_nb_unread() > 0:
|
if ctrl.get_nb_unread() > 0:
|
||||||
found = True
|
found = True
|
||||||
break # found
|
break # found
|
||||||
elif gajim.config.get('ctrl_tab_go_to_next_composing') : # Search for a composing contact
|
elif gajim.config.get('ctrl_tab_go_to_next_composing') :
|
||||||
|
# Search for a composing contact
|
||||||
contact = ctrl.contact
|
contact = ctrl.contact
|
||||||
if first_composing_ind == -1 and contact.chatstate == 'composing':
|
if first_composing_ind == -1 and contact.chatstate == 'composing':
|
||||||
# If no composing contact found yet, check if this one is composing
|
# If no composing contact found yet, check if this one is composing
|
||||||
|
@ -780,7 +784,8 @@ _('Do you really want to close them all?'),
|
||||||
control.msg_textview.grab_focus()
|
control.msg_textview.grab_focus()
|
||||||
|
|
||||||
def _on_notebook_key_press(self, widget, event):
|
def _on_notebook_key_press(self, widget, event):
|
||||||
# when tab itself is selected, make sure <- and -> are allowed for navigating between tabs
|
# when tab itself is selected,
|
||||||
|
# make sure <- and -> are allowed for navigating between tabs
|
||||||
if event.keyval in (gtk.keysyms.Left, gtk.keysyms.Right):
|
if event.keyval in (gtk.keysyms.Left, gtk.keysyms.Right):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
@ -888,11 +893,11 @@ class MessageWindowMgr(gobject.GObject):
|
||||||
def __init__(self, parent_window, parent_paned):
|
def __init__(self, parent_window, parent_paned):
|
||||||
"""
|
"""
|
||||||
A dictionary of windows; the key depends on the config:
|
A dictionary of windows; the key depends on the config:
|
||||||
ONE_MSG_WINDOW_NEVER: The key is the contact JID
|
ONE_MSG_WINDOW_NEVER: The key is the contact JID
|
||||||
ONE_MSG_WINDOW_ALWAYS: The key is MessageWindowMgr.MAIN_WIN
|
ONE_MSG_WINDOW_ALWAYS: The key is MessageWindowMgr.MAIN_WIN
|
||||||
ONE_MSG_WINDOW_ALWAYS_WITH_ROSTER: The key is MessageWindowMgr.MAIN_WIN
|
ONE_MSG_WINDOW_ALWAYS_WITH_ROSTER: The key is MessageWindowMgr.MAIN_WIN
|
||||||
ONE_MSG_WINDOW_PERACCT: The key is the account name
|
ONE_MSG_WINDOW_PERACCT: The key is the account name
|
||||||
ONE_MSG_WINDOW_PERTYPE: The key is a message type constant
|
ONE_MSG_WINDOW_PERTYPE: The key is a message type constant
|
||||||
"""
|
"""
|
||||||
gobject.GObject.__init__(self)
|
gobject.GObject.__init__(self)
|
||||||
self._windows = {}
|
self._windows = {}
|
||||||
|
@ -939,7 +944,7 @@ class MessageWindowMgr(gobject.GObject):
|
||||||
def one_window_opened(self, contact=None, acct=None, type_=None):
|
def one_window_opened(self, contact=None, acct=None, type_=None):
|
||||||
try:
|
try:
|
||||||
return \
|
return \
|
||||||
self._windows[self._mode_to_key(contact, acct, type_)] is not None
|
self._windows[self._mode_to_key(contact, acct, type_)] is not None
|
||||||
except KeyError:
|
except KeyError:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue