Author: hbelusca
Date: Sun Apr 6 17:46:49 2014
New Revision: 62670
URL:
http://svn.reactos.org/svn/reactos?rev=62670&view=rev
Log:
[CONSRV]
- text.c: Few code formatting, and remove a warning.
- guiterm.c: Implement basic word selection.
Modified:
trunk/reactos/win32ss/user/winsrv/consrv/frontends/gui/guiterm.c
trunk/reactos/win32ss/user/winsrv/consrv/frontends/gui/text.c
Modified: trunk/reactos/win32ss/user/winsrv/consrv/frontends/gui/guiterm.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/winsrv/consrv…
==============================================================================
--- trunk/reactos/win32ss/user/winsrv/consrv/frontends/gui/guiterm.c [iso-8859-1]
(original)
+++ trunk/reactos/win32ss/user/winsrv/consrv/frontends/gui/guiterm.c [iso-8859-1] Sun Apr
6 17:46:49 2014
@@ -1162,7 +1162,42 @@
case WM_LBUTTONDBLCLK:
{
- DPRINT1("Handle left-double-click for selecting a word\n");
+ PCONSOLE_SCREEN_BUFFER Buffer = GuiData->ActiveBuffer;
+
+ if (GetType(Buffer) == TEXTMODE_BUFFER)
+ {
+#define IS_WHITESPACE(c) \
+ ((c) == L'\0' || (c) == L' ' || (c) == L'\t' || (c) ==
L'\r' || (c) == L'\n')
+
+ PTEXTMODE_SCREEN_BUFFER TextBuffer =
(PTEXTMODE_SCREEN_BUFFER)Buffer;
+ COORD cL, cR;
+ PCHAR_INFO ptrL, ptrR;
+
+ /* Starting point */
+ cL = cR = PointToCoord(GuiData, lParam);
+ ptrL = ptrR = ConioCoordToPointer(TextBuffer, cL.X, cL.Y);
+
+ /* Enlarge the selection by checking for whitespace */
+ while ((0 < cL.X) &&
!IS_WHITESPACE(ptrL->Char.UnicodeChar)
+ &&
!IS_WHITESPACE((ptrL-1)->Char.UnicodeChar))
+ {
+ --cL.X;
+ --ptrL;
+ }
+ while ((cR.X < TextBuffer->ScreenBufferSize.X - 1) &&
+ !IS_WHITESPACE(ptrR->Char.UnicodeChar) &&
+ !IS_WHITESPACE((ptrR+1)->Char.UnicodeChar))
+ {
+ ++cR.X;
+ ++ptrR;
+ }
+
+ Console->Selection.dwSelectionAnchor = cL;
+ Console->dwSelectionCursor = cR;
+
+ GuiConsoleUpdateSelection(Console,
&Console->dwSelectionCursor);
+ }
+
break;
}
Modified: trunk/reactos/win32ss/user/winsrv/consrv/frontends/gui/text.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/winsrv/consrv…
==============================================================================
--- trunk/reactos/win32ss/user/winsrv/consrv/frontends/gui/text.c [iso-8859-1] (original)
+++ trunk/reactos/win32ss/user/winsrv/consrv/frontends/gui/text.c [iso-8859-1] Sun Apr 6
17:46:49 2014
@@ -89,9 +89,9 @@
for (yPos = 0; yPos < selHeight; yPos++)
{
- ptr = ConioCoordToPointer(Buffer,
+ ptr = ConioCoordToPointer(Buffer,
Console->Selection.srSelection.Left,
- yPos + Console->Selection.srSelection.Top);
+ Console->Selection.srSelection.Top + yPos);
/* Copy only the characters, leave attributes alone */
for (xPos = 0; xPos < selWidth; xPos++)
{
@@ -139,7 +139,7 @@
LPWSTR str;
WCHAR CurChar = 0;
- SHORT VkKey; // MAKEWORD(low = vkey_code, high = shift_state);
+ USHORT VkKey; // MAKEWORD(low = vkey_code, high = shift_state);
INPUT_RECORD er;
hData = GetClipboardData(CF_UNICODETEXT);