summaryrefslogtreecommitdiff
path: root/vcl/source/window/winproc.cxx
diff options
context:
space:
mode:
authorOliver Bolte <obo@openoffice.org>2004-09-09 15:23:36 +0000
committerOliver Bolte <obo@openoffice.org>2004-09-09 15:23:36 +0000
commitd1b08c1e1846f10663dc0c62e88b4a6c50c77935 (patch)
tree7bbd31d115c2a8d2b7dcb10a5f65a95f080180a2 /vcl/source/window/winproc.cxx
parent3d4db04773f84a1da84c26d26c306dfcb01bb68e (diff)
INTEGRATION: CWS toolbars2 (1.89.66); FILE MERGED
2004/08/20 09:08:37 cd 1.89.66.7: RESYNC: (1.90-1.91); FILE MERGED 2004/08/18 16:39:17 ssa 1.89.66.6: #i32198# let sfx handle show/hide of floating toolbars 2004/08/09 15:10:31 ssa 1.89.66.5: #i32198# restore ownerdraw windows only if they were hidden automatically 2004/08/06 15:33:54 ssa 1.89.66.4: #i32198# improve ownerdraw decoration support 2004/08/04 07:45:20 ssa 1.89.66.3: #i32198# keep position of client- and borderwindows always in sync 2004/08/02 08:32:37 ssa 1.89.66.2: RESYNC: (1.89-1.90); FILE MERGED 2004/07/30 11:57:51 ssa 1.89.66.1: #i32198# initial suport for system floaters with owner draw decoration
Diffstat (limited to 'vcl/source/window/winproc.cxx')
-rw-r--r--vcl/source/window/winproc.cxx24
1 files changed, 19 insertions, 5 deletions
diff --git a/vcl/source/window/winproc.cxx b/vcl/source/window/winproc.cxx
index 88513fd278d7..e8d36d131592 100644
--- a/vcl/source/window/winproc.cxx
+++ b/vcl/source/window/winproc.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: winproc.cxx,v $
*
- * $Revision: 1.91 $
+ * $Revision: 1.92 $
*
- * last change: $Author: obo $ $Date: 2004-08-12 10:47:29 $
+ * last change: $Author: obo $ $Date: 2004-09-09 16:23:36 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -161,6 +161,15 @@
#include <com/sun/star/awt/MouseEvent.hpp>
#endif
+#if OSL_DEBUG_LEVEL > 1
+char dbgbuffer[1024];
+#ifndef WNT
+#include <stdio.h>
+#define MyOutputDebugString(s) (fprintf(stderr, s ))
+#else
+extern void MyOutputDebugString( char *s);
+#endif
+#endif
//#define USE_NEW_RTL_IMPLEMENTATION
@@ -795,10 +804,11 @@ long ImplHandleMouseEvent( Window* pWindow, USHORT nSVEvent, BOOL bMouseLeave,
if ( nSVEvent == EVENT_MOUSEMOVE )
pChild->mpFrameData->mbInMouseMove = TRUE;
- // Fenster bei Klick nach vorne bringen
+ // bring window into foreground on mouseclick
if ( nSVEvent == EVENT_MOUSEBUTTONDOWN )
{
- if( !pSVData->maWinData.mpFirstFloat ) // totop for floating windows would change the focus
+ if( !pSVData->maWinData.mpFirstFloat && // totop for floating windows in popup would change the focus and would close them immediately
+ !(pChild->mpFrameWindow->GetStyle() & WB_OWNERDRAWDECORATION) ) // ownerdrawdecorated windows must never grab focus
pChild->ToTop();
if ( aDelData.IsDelete() )
return 1;
@@ -1640,7 +1650,8 @@ void ImplHandleResize( Window* pWindow, long nNewWidth, long nNewHeight )
( pWindow->mbFrame && pWindow->mpClientWindow ) ) // propagate resize for system border windows
{
// use resize buffering for user resizes
- if( pWindow->mbFrame && (pWindow->GetStyle() & WB_SIZEABLE) )
+ // ownerdraw decorated windows can be resized immediately
+ if( pWindow->mbFrame && (pWindow->GetStyle() & WB_SIZEABLE) && !(pWindow->GetStyle() & WB_OWNERDRAWDECORATION) )
pWindow->mpFrameData->maResizeTimer.Start();
else
pWindow->ImplCallResize(); // otherwise menues cannot be positioned
@@ -1677,6 +1688,8 @@ void ImplHandleMove( Window* pWindow, long nNewX, long nNewY )
if ( pWindow->IsVisible() )
pWindow->ImplCallMove();
+ else
+ pWindow->mbCallMove = TRUE; // make sure the framepos will be updated on the next Show()
if ( pWindow->mbFrame && pWindow->mpClientWindow )
pWindow->mpClientWindow->ImplCallMove(); // notify client to update geometry
@@ -1711,6 +1724,7 @@ static void ImplActivateFloatingWindows( Window* pWindow, BOOL bActive )
}
}
+
// -----------------------------------------------------------------------
IMPL_LINK( Window, ImplAsyncFocusHdl, void*, EMPTYARG )