This adds sloppy focus support, but it either needs reworking or the classes need refactoring
This commit is contained in:
parent
e0c90756e7
commit
7568d37a32
26
termiator.py
26
termiator.py
|
@ -27,7 +27,7 @@ class TerminatorTerm:
|
||||||
'visible_bell' : False
|
'visible_bell' : False
|
||||||
}
|
}
|
||||||
|
|
||||||
def __init__ (self):
|
def __init__ (self, term):
|
||||||
self.gconf_client = gconf.client_get_default ()
|
self.gconf_client = gconf.client_get_default ()
|
||||||
self.gconf_client.add_dir (self.GCONF_PROFILE_DIR, gconf.CLIENT_PRELOAD_RECURSIVE)
|
self.gconf_client.add_dir (self.GCONF_PROFILE_DIR, gconf.CLIENT_PRELOAD_RECURSIVE)
|
||||||
|
|
||||||
|
@ -43,11 +43,17 @@ class TerminatorTerm:
|
||||||
self._box.pack_start (self._scrollbar, False)
|
self._box.pack_start (self._scrollbar, False)
|
||||||
|
|
||||||
self.gconf_client.notify_add (self.GCONF_PROFILE_DIR, self.on_gconf_notification)
|
self.gconf_client.notify_add (self.GCONF_PROFILE_DIR, self.on_gconf_notification)
|
||||||
|
# FIXME: Register a handler for click/sloppy focus changes
|
||||||
|
|
||||||
self._vte.connect ("button-press-event", self.on_vte_button_press)
|
self._vte.connect ("button-press-event", self.on_vte_button_press)
|
||||||
#self._vte.connect ("popup-menu", self.on_vte_popup_menu)
|
#self._vte.connect ("popup-menu", self.on_vte_popup_menu)
|
||||||
self._vte.connect ("child-exited", lambda term: term.fork_command ())
|
self._vte.connect ("child-exited", lambda term: term.fork_command ())
|
||||||
|
|
||||||
|
if (term.focus == "sloppy" or term.focus == "mouse"):
|
||||||
|
print "Registering notify event"
|
||||||
|
self._vte.add_events (gtk.gdk.ENTER_NOTIFY_MASK)
|
||||||
|
self._vte.connect ("enter_notify_event", self.on_vte_notify_enter)
|
||||||
|
|
||||||
self._vte.fork_command ()
|
self._vte.fork_command ()
|
||||||
|
|
||||||
def reconfigure_vte (self):
|
def reconfigure_vte (self):
|
||||||
|
@ -104,17 +110,27 @@ class TerminatorTerm:
|
||||||
if event.button == 3:
|
if event.button == 3:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
def on_vte_notify_enter (self, term, event):
|
||||||
|
print "Grabbing focus"
|
||||||
|
term.grab_focus ()
|
||||||
|
# FIXME: Should we eat this event or let it propagate further?
|
||||||
|
return False
|
||||||
|
|
||||||
def get_box (self):
|
def get_box (self):
|
||||||
return self._box
|
return self._box
|
||||||
|
|
||||||
class Terminator:
|
class Terminator:
|
||||||
def __init__ (self):
|
def __init__ (self):
|
||||||
|
self.gconf_client = gconf.client_get_default ()
|
||||||
|
|
||||||
self.window = gtk.Window ()
|
self.window = gtk.Window ()
|
||||||
self.icon = self.window.render_icon (gtk.STOCK_DIALOG_INFO, gtk.ICON_SIZE_BUTTON)
|
self.icon = self.window.render_icon (gtk.STOCK_DIALOG_INFO, gtk.ICON_SIZE_BUTTON)
|
||||||
self.window.set_icon (self.icon)
|
self.window.set_icon (self.icon)
|
||||||
self.window.connect ("delete_event", self.on_delete_event)
|
self.window.connect ("delete_event", self.on_delete_event)
|
||||||
self.window.connect ("destroy", self.on_destroy_event)
|
self.window.connect ("destroy", self.on_destroy_event)
|
||||||
|
|
||||||
|
self.focus = self.gconf_client.get_string ("/apps/metacity/general/focus_mode")
|
||||||
|
|
||||||
def on_delete_event (self, widget, event, data=None):
|
def on_delete_event (self, widget, event, data=None):
|
||||||
# FIXME: return True if we want to keep the window open (ie a "Do you want to quit" requester)
|
# FIXME: return True if we want to keep the window open (ie a "Do you want to quit" requester)
|
||||||
return False
|
return False
|
||||||
|
@ -125,10 +141,10 @@ class Terminator:
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
term = Terminator ()
|
term = Terminator ()
|
||||||
|
|
||||||
t1 = TerminatorTerm ()
|
t1 = TerminatorTerm (term)
|
||||||
t2 = TerminatorTerm ()
|
t2 = TerminatorTerm (term)
|
||||||
t3 = TerminatorTerm ()
|
t3 = TerminatorTerm (term)
|
||||||
t4 = TerminatorTerm ()
|
t4 = TerminatorTerm (term)
|
||||||
|
|
||||||
pane1 = gtk.HPaned ()
|
pane1 = gtk.HPaned ()
|
||||||
pane1.add1 (t1.get_box ())
|
pane1.add1 (t1.get_box ())
|
||||||
|
|
Loading…
Reference in New Issue