Release 960302
Sat Mar 2 18:19:06 1996 Alexandre Julliard <julliard@lrc.epfl.ch>
* [controls/scroll.c]
Fixed SCROLL_THUMB painting fixes from Alex Korobka to store the
current tracking window.
* [files/file.c]
Fixed two file descriptor leaks in FILE_OpenFile().
* [if1632/relay32.c] [loader/module.c] [loader/pe_image.c]
[tools/build.c]
Replaced LOADEDFILEINFO structure by OFSTRUCT.
* [memory/atom.c]
Reload the pointer to the atom table in ATOM_GetTable() and
ATOM_AddAtom() in case the LOCAL_Alloc() calls caused the table to
move in linear memory.
Fri Mar 1 11:57:13 1996 Frans van Dorsselaer <dorssel@rulhm1.leidenuniv.nl>
* [include/callback.h]
Added support for CallWordBreakProc().
* [controls/edit.c]
New caret handling (really efficient / fast).
Implemented EM_SETWORDBREAKPROC and EM_GETWORDBREAKPROC.
Fixed EM_SETFONT so it now also creates a proper new caret.
Wed Feb 28 22:03:34 1996 Daniel Schepler <daniel@frobnitz.wustl.edu>
* [controls/desktop.c] [misc/main.c] [windows/event.c] [windows/win.c]
Added WM_DELETE protocol to top-level windows.
* [controls/scroll.c]
Fixed a problem which caused slow scrolling to continue uncontrollably.
* [misc/exec.c]
Implemented ExitWindows().
* [windows/win.c]
Set top-level owned windows to be transient.
Wed Feb 28 19:13:22 1996 Ulrich Schmid <uschmid@mail.hh.provi.de>
* [programs/progman/*]
Added a program manager.
Wed Feb 28 18:38:01 1996 Duncan C Thomson <duncan@spd.eee.strath.ac.uk>
* [resources/sysres_Eo.c]
Added support for Esperanto [Eo] language.
Wed Feb 28 00:23:00 1996 Thomas Sandford <t.d.g.sandford@prds-grn.demon.co.uk>
* [if1632/user32.spec]
Added EndDialog, GetDlgItem, GetDlgItemInt, SetDlgItemInt,
* [win32/init.c]
Added task.h to includes. GetModuleHandleA() - return hInstance
if called with NULL parameter. Freecell needs this. NOTE this
may indicate a problem with differentiation between hModule and
hInstance within Wine.
* [win32/resource.c]
FindResource32() and LoadResource32() - Removed #if 0's around
conversion from hInstance to hModule. See remarks above.
* [win32/string32.c]
WIN32_UniLen() - removed stray semicolon.
Tue Feb 27 21:05:18 1996 Jim Peterson <jspeter@birch.ee.vt.edu>
* [windows/caret.c]
Set blink rate with call to GetProfileInt().
* [rc/winerc.c]
In new_style(), made initial flag settings WS_CHILD | WS_VISIBLE
instead of 0. This seems to correspond to Borland's defaults, and
the flags can be unset by using the (rather obtuse) "| NOT WS_CHILD"
or "| NOT WS_VISIBLE" technique in the *.rc file.
* [win32/time.c]
In GetLocalTime() and GetSystemTime(), used tv_sec field of result
returned by gettimeofday() instead of making second call to
time(). This eliminates clock jitter if the seconds change
between the two calls (rare, but possible).
* [include/wintypes.h]
Added "#define _far" and "#define _pascal".
* [windows/win.c]
Added function GetDesktopHwnd().
* [include/xmalloc.h]
Removed the '#ifdef HAVE_STDLIB_H' structure, since it seemed to
have been removed from 'configure', and was causing redefinition
warnings.
Tue Feb 27 19:31:11 1996 Albrecht Kleine <kleine@ak.sax.de>
* [windows/winpos.c]
Added RDW_ALLCHILDREN flag in SetWindowPos (handling SWP_FRAMECHANGED)
to force a repaint when setting menu bars with different rows.
Sun Feb 25 21:15:00 1996 Alex Korobka <alex@phm30.pharm.sunysb.edu>
* [windows/syscolors.c] [controls/scroll.c]
Fixed DrawFocusRect pen and SCROLL_THUMB painting.
diff --git a/controls/scroll.c b/controls/scroll.c
index aac0ecf..e746ec5 100644
--- a/controls/scroll.c
+++ b/controls/scroll.c
@@ -70,6 +70,10 @@
SCROLL_BOTTOM_ARROW /* Bottom or right arrow */
};
+ /* Thumb-tracking info */
+static HWND hwndTracking = 0;
+static int nBarTracking = 0;
+static UINT uTrackingPos = 0;
/***********************************************************************
* SCROLL_LoadBitmaps
@@ -430,6 +434,8 @@
Rectangle( hdc, r.left, r.top, r.right, r.bottom );
InflateRect( &r, -1, -1 );
GRAPH_DrawReliefRect( hdc, &r, 1, 2, FALSE );
+ if ((hwndTracking == hwnd) && (nBarTracking == nBar))
+ SCROLL_DrawMovingThumb( hdc, &rect, vertical, arrowSize, uTrackingPos);
}
@@ -607,9 +613,6 @@
{
if ((msg == WM_LBUTTONDOWN) || (msg == WM_SYSTIMER))
{
- SetSystemTimer( hwnd, SCROLL_TIMER, (msg == WM_LBUTTONDOWN) ?
- SCROLL_FIRST_DELAY : SCROLL_REPEAT_DELAY,
- (FARPROC)0 );
#ifdef WINELIB32
SendMessage( hwndOwner, vertical ? WM_VSCROLL : WM_HSCROLL,
(WPARAM)SB_LINEUP, (LPARAM)hwndCtl );
@@ -617,6 +620,9 @@
SendMessage( hwndOwner, vertical ? WM_VSCROLL : WM_HSCROLL,
SB_LINEUP, MAKELONG( 0, hwndCtl ));
#endif
+ SetSystemTimer( hwnd, SCROLL_TIMER, (msg == WM_LBUTTONDOWN) ?
+ SCROLL_FIRST_DELAY : SCROLL_REPEAT_DELAY,
+ (FARPROC)0 );
}
}
else KillSystemTimer( hwnd, SCROLL_TIMER );
@@ -630,9 +636,6 @@
{
if ((msg == WM_LBUTTONDOWN) || (msg == WM_SYSTIMER))
{
- SetSystemTimer( hwnd, SCROLL_TIMER, (msg == WM_LBUTTONDOWN) ?
- SCROLL_FIRST_DELAY : SCROLL_REPEAT_DELAY,
- (FARPROC)0 );
#ifdef WINELIB32
SendMessage( hwndOwner, vertical ? WM_VSCROLL : WM_HSCROLL,
(WPARAM)SB_PAGEUP, (LPARAM)hwndCtl );
@@ -640,6 +643,9 @@
SendMessage( hwndOwner, vertical ? WM_VSCROLL : WM_HSCROLL,
SB_PAGEUP, MAKELONG( 0, hwndCtl ));
#endif
+ SetSystemTimer( hwnd, SCROLL_TIMER, (msg == WM_LBUTTONDOWN) ?
+ SCROLL_FIRST_DELAY : SCROLL_REPEAT_DELAY,
+ (FARPROC)0 );
}
}
else KillSystemTimer( hwnd, SCROLL_TIMER );
@@ -647,11 +653,18 @@
case SCROLL_THUMB:
if (msg == WM_LBUTTONDOWN)
+ {
SCROLL_DrawMovingThumb( hdc, &rect, vertical, arrowSize,
trackThumbPos + lastMousePos - lastClickPos );
+ hwndTracking = hwnd;
+ nBarTracking = nBar;
+ }
else if (msg == WM_LBUTTONUP)
+ {
+ hwndTracking = 0;
SCROLL_DrawInterior( hwnd, hdc, nBar, &rect, arrowSize, thumbPos,
infoPtr->flags, vertical, FALSE, FALSE );
+ }
else /* WM_MOUSEMOVE */
{
UINT pos, val;
@@ -662,11 +675,11 @@
{
SCROLL_DrawMovingThumb( hdc, &rect, vertical, arrowSize,
trackThumbPos + lastMousePos - lastClickPos );
- SCROLL_DrawMovingThumb( hdc, &rect, vertical, arrowSize,
- trackThumbPos + pos - lastClickPos );
lastMousePos = pos;
val = SCROLL_GetThumbVal( infoPtr, &rect, vertical,
trackThumbPos + lastMousePos - lastClickPos );
+ /* Save tracking info */
+ uTrackingPos = trackThumbPos + pos - lastClickPos;
#ifdef WINELIB32
SendMessage( hwndOwner, vertical ? WM_VSCROLL : WM_HSCROLL,
MAKEWPARAM(SB_THUMBTRACK,val), (LPARAM)hwndCtl );
@@ -674,6 +687,8 @@
SendMessage( hwndOwner, vertical ? WM_VSCROLL : WM_HSCROLL,
SB_THUMBTRACK, MAKELONG( val, hwndCtl ));
#endif
+ SCROLL_DrawMovingThumb( hdc, &rect, vertical,
+ arrowSize, uTrackingPos );
}
}
break;
@@ -686,9 +701,6 @@
{
if ((msg == WM_LBUTTONDOWN) || (msg == WM_SYSTIMER))
{
- SetSystemTimer( hwnd, SCROLL_TIMER, (msg == WM_LBUTTONDOWN) ?
- SCROLL_FIRST_DELAY : SCROLL_REPEAT_DELAY,
- (FARPROC)0 );
#ifdef WINELIB32
SendMessage( hwndOwner, vertical ? WM_VSCROLL : WM_HSCROLL,
(WPARAM)SB_PAGEDOWN, (LPARAM)hwndCtl );
@@ -696,6 +708,9 @@
SendMessage( hwndOwner, vertical ? WM_VSCROLL : WM_HSCROLL,
SB_PAGEDOWN, MAKELONG( 0, hwndCtl ));
#endif
+ SetSystemTimer( hwnd, SCROLL_TIMER, (msg == WM_LBUTTONDOWN) ?
+ SCROLL_FIRST_DELAY : SCROLL_REPEAT_DELAY,
+ (FARPROC)0 );
}
}
else KillSystemTimer( hwnd, SCROLL_TIMER );
@@ -708,9 +723,6 @@
{
if ((msg == WM_LBUTTONDOWN) || (msg == WM_SYSTIMER))
{
- SetSystemTimer( hwnd, SCROLL_TIMER, (msg == WM_LBUTTONDOWN) ?
- SCROLL_FIRST_DELAY : SCROLL_REPEAT_DELAY,
- (FARPROC)0 );
#ifdef WINELIB32
SendMessage( hwndOwner, vertical ? WM_VSCROLL : WM_HSCROLL,
(WPARAM)SB_LINEDOWN, (LPARAM)hwndCtl );
@@ -718,6 +730,9 @@
SendMessage( hwndOwner, vertical ? WM_VSCROLL : WM_HSCROLL,
SB_LINEDOWN, MAKELONG( 0, hwndCtl ));
#endif
+ SetSystemTimer( hwnd, SCROLL_TIMER, (msg == WM_LBUTTONDOWN) ?
+ SCROLL_FIRST_DELAY : SCROLL_REPEAT_DELAY,
+ (FARPROC)0 );
}
}
else KillSystemTimer( hwnd, SCROLL_TIMER );