2009-04-14 09:04 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)

* harbour/source/rtl/gtwvt/gtwvt.c
  * harbour/contrib/gtwvg/gtwvg.c
    ! Fixed a long standing bug - window mismanaged when clicking on titlebar.
      Processed WM_NCLBUTTONDCLK:
This commit is contained in:
Pritpal Bedi
2009-04-14 16:07:43 +00:00
parent 837190c19c
commit a9b645267e
3 changed files with 66 additions and 38 deletions

View File

@@ -8,6 +8,12 @@
2009-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org)
*/
2009-04-14 09:04 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
* harbour/source/rtl/gtwvt/gtwvt.c
* harbour/contrib/gtwvg/gtwvg.c
! Fixed a long standing bug - window mismanaged when clicking on titlebar.
Processed WM_NCLBUTTONDCLK:
2009-04-14 15:57 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* utils/hbmk2/hbmk2.prg
! Fixed Borland stub for both GUI and CUI mode.

View File

@@ -919,6 +919,25 @@ static BOOL hb_gt_wvt_FitSizeRows( PHB_GTWVT pWVT )
return( bSizeChanged );
}
static void hb_gt_wvt_Maximize( PHB_GTWVT pWVT )
{
pWVT->bMaximized = TRUE;
hb_gt_wvt_FitSizeRows( pWVT );
/* Disable "maximize" button */
{
#if (defined(_MSC_VER) && (_MSC_VER <= 1200 || defined(HB_OS_WIN_CE)) || defined(__DMC__)) && !defined(HB_ARCH_64BIT)
DWORD style = GetWindowLong( pWVT->hWnd, GWL_STYLE );
SetWindowLong( pWVT->hWnd, GWL_STYLE, style &~ WS_MAXIMIZEBOX );
#else
LONG_PTR style = GetWindowLongPtr( pWVT->hWnd, GWL_STYLE );
SetWindowLongPtr( pWVT->hWnd, GWL_STYLE, ( HB_PTRDIFF ) style &~ WS_MAXIMIZEBOX );
#endif
}
SetWindowPos( pWVT->hWnd, NULL, 0, 0, 0, 0,
SWP_NOACTIVATE | SWP_DRAWFRAME | SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_DEFERERASE );
}
static void hb_gt_wvt_ResetWindowSize( PHB_GTWVT pWVT )
{
HDC hdc;
@@ -2073,27 +2092,19 @@ static LRESULT CALLBACK hb_gt_wvt_WndProc( HWND hWnd, UINT message, WPARAM wPara
hb_gt_wvt_FitSizeRows( pWVT );
return 0;
case WM_NCLBUTTONDBLCLK:
if( !pWVT->bMaximized )
{
hb_gt_wvt_Maximize( pWVT );
}
return 0;
case WM_SYSCOMMAND:
switch( wParam )
{
case SC_MAXIMIZE:
{
pWVT->bMaximized = TRUE;
hb_gt_wvt_FitSizeRows( pWVT );
/* Disable "maximize" button */
{
#if (defined(_MSC_VER) && (_MSC_VER <= 1200 || defined(HB_OS_WIN_CE)) || defined(__DMC__)) && !defined(HB_ARCH_64BIT)
DWORD style = GetWindowLong( pWVT->hWnd, GWL_STYLE );
SetWindowLong( pWVT->hWnd, GWL_STYLE, style &~ WS_MAXIMIZEBOX );
#else
LONG_PTR style = GetWindowLongPtr( pWVT->hWnd, GWL_STYLE );
SetWindowLongPtr( pWVT->hWnd, GWL_STYLE, ( HB_PTRDIFF ) style &~ WS_MAXIMIZEBOX );
#endif
}
SetWindowPos( pWVT->hWnd, NULL, 0, 0, 0, 0,
SWP_NOACTIVATE | SWP_DRAWFRAME | SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_DEFERERASE );
hb_gt_wvt_Maximize( pWVT );
return 0;
}
case SYS_EV_MARK:

View File

@@ -729,6 +729,31 @@ static void hb_gt_wvt_FitSize( PHB_GTWVT pWVT )
}
}
static void hb_gt_wvt_Maximize( PHB_GTWVT pWVT )
{
pWVT->bMaximized = TRUE;
if( pWVT->ResizeMode == HB_GTI_RESIZEMODE_FONT )
hb_gt_wvt_FitSize( pWVT );
else
hb_gt_wvt_FitRows( pWVT );
/* Disable "maximize" button */
#if (defined(_MSC_VER) && (_MSC_VER <= 1200 || defined(HB_OS_WIN_CE)) || defined(__DMC__)) && !defined(HB_ARCH_64BIT)
SetWindowLong( pWVT->hWnd, GWL_STYLE, WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX|WS_THICKFRAME );
#else
SetWindowLongPtr( pWVT->hWnd, GWL_STYLE, WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX|WS_THICKFRAME );
#endif
SetWindowPos( pWVT->hWnd, NULL, 0, 0, 0, 0,
SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_DEFERERASE );
ShowWindow( pWVT->hWnd, SW_HIDE );
ShowWindow( pWVT->hWnd, SW_NORMAL );
hb_gt_wvt_FireEvent( pWVT, HB_GTE_RESIZED );
if( pWVT->ResizeMode == HB_GTI_RESIZEMODE_ROWS )
hb_gt_wvt_AddCharToInputQueue( pWVT, HB_K_RESIZE );
}
static void hb_gt_wvt_ResetWindowSize( PHB_GTWVT pWVT )
{
HDC hdc;
@@ -1701,33 +1726,19 @@ static LRESULT CALLBACK hb_gt_wvt_WndProc( HWND hWnd, UINT message, WPARAM wPara
}
return 0;
case WM_NCLBUTTONDBLCLK:
if( !pWVT->bMaximized )
{
hb_gt_wvt_Maximize( pWVT );
}
return 0;
case WM_SYSCOMMAND:
switch( wParam )
{
case SC_MAXIMIZE:
{
pWVT->bMaximized = TRUE;
if( pWVT->ResizeMode == HB_GTI_RESIZEMODE_FONT )
hb_gt_wvt_FitSize( pWVT );
else
hb_gt_wvt_FitRows( pWVT );
/* Disable "maximize" button */
#if (defined(_MSC_VER) && (_MSC_VER <= 1200 || defined(HB_OS_WIN_CE)) || defined(__DMC__)) && !defined(HB_ARCH_64BIT)
SetWindowLong( pWVT->hWnd, GWL_STYLE, WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX|WS_THICKFRAME );
#else
SetWindowLongPtr( pWVT->hWnd, GWL_STYLE, WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX|WS_THICKFRAME );
#endif
SetWindowPos( pWVT->hWnd, NULL, 0, 0, 0, 0,
SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_DEFERERASE );
ShowWindow( pWVT->hWnd, SW_HIDE );
ShowWindow( pWVT->hWnd, SW_NORMAL );
hb_gt_wvt_FireEvent( pWVT, HB_GTE_RESIZED );
if( pWVT->ResizeMode == HB_GTI_RESIZEMODE_ROWS )
hb_gt_wvt_AddCharToInputQueue( pWVT, HB_K_RESIZE );
hb_gt_wvt_Maximize( pWVT );
return 0;
}