commit-gnue
[Top][All Lists]
Advanced

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

r6095 - trunk/gnue-forms/src/uidrivers/gtk2/widgets


From: johannes
Subject: r6095 - trunk/gnue-forms/src/uidrivers/gtk2/widgets
Date: Wed, 28 Jul 2004 06:43:08 -0500 (CDT)

Author: johannes
Date: 2004-07-28 06:43:05 -0500 (Wed, 28 Jul 2004)
New Revision: 6095

Modified:
   trunk/gnue-forms/src/uidrivers/gtk2/widgets/entry.py
Log:
Selections and positioning via mouse will work now


Modified: trunk/gnue-forms/src/uidrivers/gtk2/widgets/entry.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/gtk2/widgets/entry.py        2004-07-28 
06:59:09 UTC (rev 6094)
+++ trunk/gnue-forms/src/uidrivers/gtk2/widgets/entry.py        2004-07-28 
11:43:05 UTC (rev 6095)
@@ -93,6 +93,7 @@
       entry._delete_handler = entry.connect ('delete-text',
                                              self.deleteTextHandler,
                                              gfObject)
+      entry.connect ('button-release-event', self._buttonRelease)
 
     return newWidget
 
@@ -159,6 +160,7 @@
 
     newWidget._keypressHandler = newWidget.connect ('key-press-event',
                                                self.textViewKeyPress)
+    newWidget.connect ('button-release-event', self._buttonRelease)
 
     if event.initialize:
       self._addFocusHandler (newWidget)
@@ -189,6 +191,8 @@
     newWidget._delete_handler = newWidget.connect ('delete-text',
                                                    self.deleteTextHandler,
                                                    gfObject)
+    newWidget.connect ('button-release-event', self._buttonRelease)
+
     if event.initialize:
       self._addFocusHandler (newWidget)
       self._addDefaultEventHandler (newWidget)
@@ -498,6 +502,39 @@
     treeView.grab_focus ()
     self._blockHandler (treeView, '_focusHandler', True)
 
+
+  # ---------------------------------------------------------------------------
+  # Handle the release of a mouse button
+  # ---------------------------------------------------------------------------
+
+  def _buttonRelease (self, widget, event):
+    """
+    This function handles release of the left mouse button. If the current
+    widget has a selection requestSELECTWITHMOUSE otherwise requestCURSORMOVE
+    will be fired.
+    """
+    if isinstance (widget, gtk.TextView):
+      tBuffer = widget.get_buffer ()
+      cPos = tBuffer.get_iter_at_mark (tBuffer.get_insert ()).get_offset ()
+      bMarks = tBuffer.get_selection_bounds ()
+      if len (bMarks):
+        bounds = [it.get_offset () for it in bMarks]
+      else:
+        bounds = []
+
+    elif isinstance (widget, gtk.Entry):
+      cPos   = widget.get_position ()
+      bounds = widget.get_selection_bounds ()
+
+    gDebug (1, "Button-Release: %s (%s) %s %s" % (widget, self._gfObject.name,
+                                                  cPos, bounds))
+    if len (bounds):
+      self._request ('SELECTWITHMOUSE', position1 = bounds [0],
+                     position2 = bounds [1], cursor = cPos)
+    else:
+      self._request ('CURSORMOVE', position = cPos)
+
+
 # -----------------------------------------------------------------------------
 # Base configuration data
 # -----------------------------------------------------------------------------





reply via email to

[Prev in Thread] Current Thread [Next in Thread]