302 """ Handle key press event """
304 keyname = gtk.gdk.keyval_name (event.keyval)
307 if keyname
in [
'Return',
'KP_Enter']:
319 elif keyname
in [
'Left',
'BackSpace']:
320 mark = self.buffer.get_mark(
'linestart')
321 linestart = self.buffer.get_iter_at_mark(mark)
322 iter = self.buffer.get_iter_at_mark(self.buffer.get_insert())
323 if iter.compare(linestart) <= 0:
326 elif keyname ==
'Right':
330 elif keyname ==
'Down':
335 elif keyname ==
'Up':
340 elif keyname ==
'Home':
341 mark = self.buffer.get_mark(
'linestart')
342 linestart = self.buffer.get_iter_at_mark(mark)
343 self.buffer.place_cursor (linestart)
347 elif keyname ==
'Tab':
351 completed, possibilities = self.shell.complete(line)
352 if len(possibilities) > 1:
355 for symbol
in possibilities:
356 self.
write(symbol+
'\n')
362 elif event.state & gtk.gdk.CONTROL_MASK:
363 if keyname
in [
'a',
'A']:
364 mark = self.buffer.get_mark(
'linestart')
365 linestart = self.buffer.get_iter_at_mark(mark)
366 self.buffer.place_cursor (linestart)
368 elif keyname
in [
'e',
'E']:
369 end = self.buffer.get_end_iter()
370 self.buffer.place_cursor (end)
372 elif keyname
in [
'k',
'K']:
373 start = self.buffer.get_iter_at_mark (self.buffer.get_insert())
374 end = self.buffer.get_end_iter()
375 self.
killbuffer = self.buffer.get_text(start,end)
376 self.buffer.delete(start,end)
378 elif keyname
in [
'y',
'Y']:
380 iter = self.buffer.get_iter_at_mark (self.buffer.get_insert())
383 elif keyname
in [
'l',
'L']:
384 start = self.buffer.get_start_iter()
385 end = self.buffer.get_end_iter()
386 end.backward_sentence_start()
387 self.buffer.delete (start,end)
388 elif keyname
in [
'd',
'D']:
394 mark = self.buffer.get_mark(
'linestart')
395 linestart = self.buffer.get_iter_at_mark(mark)
396 iter = self.buffer.get_iter_at_mark(self.buffer.get_insert())
397 if iter.compare(linestart) < 0:
398 iter = self.buffer.get_end_iter()
399 self.buffer.place_cursor (iter)