[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnue] r9179 - trunk/gnue-forms/src/uidrivers/curses/widgets
From: |
johannes |
Subject: |
[gnue] r9179 - trunk/gnue-forms/src/uidrivers/curses/widgets |
Date: |
Tue, 19 Dec 2006 09:54:55 -0600 (CST) |
Author: johannes
Date: 2006-12-19 09:54:55 -0600 (Tue, 19 Dec 2006)
New Revision: 9179
Modified:
trunk/gnue-forms/src/uidrivers/curses/widgets/entry.py
Log:
Better implementation of selections in multiline edits
Modified: trunk/gnue-forms/src/uidrivers/curses/widgets/entry.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/curses/widgets/entry.py 2006-12-19
15:35:43 UTC (rev 9178)
+++ trunk/gnue-forms/src/uidrivers/curses/widgets/entry.py 2006-12-19
15:54:55 UTC (rev 9179)
@@ -518,20 +518,20 @@
if self.selection is not None:
sel1, sel2 = self.selection
sel_set = sets.Set(range(sel1, sel2+1))
- gDebug(2, "SELECTION=%r %s" % (sel_set, sel2))
for (row, line) in enumerate(text.splitlines()):
if self.selection is not None:
left = len(stream)
right = left + len(line)
current = sets.Set(range(left, right))
- gDebug(2, "current: %r %r" % (line, current))
match = sel_set.intersection(current)
if match:
- mins = min(min(match) - left - self.__hoffs, 0)
- maxs = min(max(match) - left - self.__hoffs + 1,
self.width)
+ mins = min(match) - left - self.__hoffs
+ maxs = min(max(match) - left - self.__hoffs+1, self.width)
+ if maxs != len(match):
+ maxs -= 1
+
selected[row] = (mins, maxs)
- gDebug(2, "MATCH: %s/%s aus %s" % (mins, maxs, match))
stream += line + '\n'
@@ -568,8 +568,6 @@
if not self.entry.ready():
return
- gDebug(2, "S=%s/%s, H=%s, V=%s" % (self.width, self.height,
- self.__hoffs, self.__voffs))
(row, col) = self.__position_to_coord(position)
self.__vx = col
self.__vy = row
@@ -577,31 +575,25 @@
delta_x = col - self.__hoffs
delta_y = row - self.__voffs
- gDebug(2, "ch/rv: %s/%s" % (delta_x, delta_y))
-
if (delta_x) > self.width - 1:
self.__hoffs = col - self.width + 1
col = self.width - 1
- gDebug(2, "New HOFFS: %s" % self.__hoffs)
need_repaint = True
elif (delta_x) < 0:
self.__hoffs += delta_x
col = 0
- gDebug(2, "New HOFFS: %s" % self.__hoffs)
need_repaint = True
else:
col -= self.__hoffs
if delta_y > self.height - 1:
self.__voffs = row - self.height + 1
- gDebug(2, "New VOFFS: %s" % self.__voffs)
row = self.height - 1
need_repaint = True
elif delta_y < 0:
self.__voffs += delta_y
- gDebug(2, "New VOFFS: %s" % self.__voffs)
row = 0
need_repaint = True
else:
@@ -611,7 +603,6 @@
self._repaint_()
if self.has_focus:
- gDebug(2, "Point to: %s/%s" % (col, row))
self.entry._parent.move(self.left + col, self.top + row)
# -------------------------------------------------------------------------
@@ -625,7 +616,6 @@
self.selection = None
else:
self.selection = (selection1, selection2)
- gDebug(2, "set selection: %s %s" % self.selection)
self._repaint_()
@@ -676,7 +666,6 @@
if paragraph > 0:
offset = len(part.split('\n')[-1])
- gDebug(2, "pos2virt: %s %s/%s" % (position, paragraph, offset))
return (paragraph, offset)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue] r9179 - trunk/gnue-forms/src/uidrivers/curses/widgets,
johannes <=