gedit r6836 - in trunk: . plugins/pythonconsole/pythonconsole



Author: pborelli
Date: Sun Jan 11 15:53:40 2009
New Revision: 6836
URL: http://svn.gnome.org/viewvc/gedit?rev=6836&view=rev

Log:
2009-01-11  Paolo Borelli  <pborelli katamail com>

	* plugins/pythonconsole/pythonconsole/console.py: properly handle
	modifiers on key_press_event, patch by B. Clausius, bug #567364.



Modified:
   trunk/ChangeLog
   trunk/plugins/pythonconsole/pythonconsole/console.py

Modified: trunk/plugins/pythonconsole/pythonconsole/console.py
==============================================================================
--- trunk/plugins/pythonconsole/pythonconsole/console.py	(original)
+++ trunk/plugins/pythonconsole/pythonconsole/console.py	Sun Jan 11 15:53:40 2009
@@ -90,10 +90,13 @@
 		self.namespace = None
 
 	def __key_press_event_cb(self, view, event):
-		if event.keyval == gtk.keysyms.d and event.state == gtk.gdk.CONTROL_MASK:
+		modifier_mask = gtk.accelerator_get_default_mod_mask()
+		event_state = event.state & modifier_mask
+
+		if event.keyval == gtk.keysyms.d and event_state == gtk.gdk.CONTROL_MASK:
 			self.destroy()
-		
-		elif event.keyval == gtk.keysyms.Return and event.state == gtk.gdk.CONTROL_MASK:
+
+		elif event.keyval == gtk.keysyms.Return and event_state == gtk.gdk.CONTROL_MASK:
 			# Get the command
 			buffer = view.get_buffer()
 			inp_mark = buffer.get_mark("input")
@@ -182,13 +185,18 @@
 			buffer = view.get_buffer()
 			inp = buffer.get_iter_at_mark(buffer.get_mark("input"))
 			cur = buffer.get_iter_at_mark(buffer.get_insert())
-			return inp.compare(cur) == 0
+			if inp.compare(cur) == 0:
+				if not event_state:
+					buffer.place_cursor(inp)
+				return True
+			return False
 
-		elif event.keyval == gtk.keysyms.Home:
+		elif (event.keyval == gtk.keysyms.KP_Home or event.keyval == gtk.keysyms.Home) and \
+		     event_state == event_state & (gtk.gdk.SHIFT_MASK|gtk.gdk.CONTROL_MASK):
 			# Go to the begin of the command instead of the begin of the line
 			buffer = view.get_buffer()
 			inp = buffer.get_iter_at_mark(buffer.get_mark("input"))
-			if event.state == gtk.gdk.SHIFT_MASK:
+			if event_state & gtk.gdk.SHIFT_MASK:
 				buffer.move_mark_by_name("insert", inp)
 			else:
 				buffer.place_cursor(inp)
@@ -212,7 +220,6 @@
 		cur = buffer.get_end_iter()
 		buffer.delete(inp, cur)
 		buffer.insert(inp, command)
-		buffer.select_range(buffer.get_iter_at_mark(mark), buffer.get_end_iter())
 		self.view.grab_focus()
 	
 	def history_add(self, line):



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]