Add native wxOverlay implementation for wxMSW
Using generic implementation doesn't work any longer since the switch to using composited windows (i.e. turning on WS_EX_COMPOSITED) by default as drawing using wxClientDC has no effect. So implement wxOverlay in a different way by using a layered window covering the original window and drawing on it instead. This is similar to Cocoa implementation of wxOverlay. Closes #23047.
This commit is contained in:
parent
487018f42e
commit
91031bcfee
10 changed files with 321 additions and 8 deletions
|
|
@ -1926,6 +1926,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
|
|||
$(OBJS)\monodll_evtloop.o \
|
||||
$(OBJS)\monodll_access.o \
|
||||
$(OBJS)\monodll_msw_bmpbndl.o \
|
||||
$(OBJS)\monodll_overlay.o \
|
||||
$(OBJS)\monodll_clrpickerg.o \
|
||||
$(OBJS)\monodll_collpaneg.o \
|
||||
$(OBJS)\monodll_filepickerg.o \
|
||||
|
|
@ -2274,6 +2275,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
|
|||
$(OBJS)\monodll_evtloop.o \
|
||||
$(OBJS)\monodll_access.o \
|
||||
$(OBJS)\monodll_msw_bmpbndl.o \
|
||||
$(OBJS)\monodll_overlay.o \
|
||||
$(OBJS)\monodll_generic_accel.o \
|
||||
$(OBJS)\monodll_clrpickerg.o \
|
||||
$(OBJS)\monodll_collpaneg.o \
|
||||
|
|
@ -2775,6 +2777,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
|
|||
$(OBJS)\monolib_evtloop.o \
|
||||
$(OBJS)\monolib_access.o \
|
||||
$(OBJS)\monolib_msw_bmpbndl.o \
|
||||
$(OBJS)\monolib_overlay.o \
|
||||
$(OBJS)\monolib_clrpickerg.o \
|
||||
$(OBJS)\monolib_collpaneg.o \
|
||||
$(OBJS)\monolib_filepickerg.o \
|
||||
|
|
@ -3123,6 +3126,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
|
|||
$(OBJS)\monolib_evtloop.o \
|
||||
$(OBJS)\monolib_access.o \
|
||||
$(OBJS)\monolib_msw_bmpbndl.o \
|
||||
$(OBJS)\monolib_overlay.o \
|
||||
$(OBJS)\monolib_generic_accel.o \
|
||||
$(OBJS)\monolib_clrpickerg.o \
|
||||
$(OBJS)\monolib_collpaneg.o \
|
||||
|
|
@ -3506,6 +3510,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
|
|||
$(OBJS)\coredll_evtloop.o \
|
||||
$(OBJS)\coredll_access.o \
|
||||
$(OBJS)\coredll_msw_bmpbndl.o \
|
||||
$(OBJS)\coredll_overlay.o \
|
||||
$(OBJS)\coredll_clrpickerg.o \
|
||||
$(OBJS)\coredll_collpaneg.o \
|
||||
$(OBJS)\coredll_filepickerg.o \
|
||||
|
|
@ -3854,6 +3859,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
|
|||
$(OBJS)\coredll_evtloop.o \
|
||||
$(OBJS)\coredll_access.o \
|
||||
$(OBJS)\coredll_msw_bmpbndl.o \
|
||||
$(OBJS)\coredll_overlay.o \
|
||||
$(OBJS)\coredll_generic_accel.o \
|
||||
$(OBJS)\coredll_clrpickerg.o \
|
||||
$(OBJS)\coredll_collpaneg.o \
|
||||
|
|
@ -4194,6 +4200,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
|
|||
$(OBJS)\corelib_evtloop.o \
|
||||
$(OBJS)\corelib_access.o \
|
||||
$(OBJS)\corelib_msw_bmpbndl.o \
|
||||
$(OBJS)\corelib_overlay.o \
|
||||
$(OBJS)\corelib_clrpickerg.o \
|
||||
$(OBJS)\corelib_collpaneg.o \
|
||||
$(OBJS)\corelib_filepickerg.o \
|
||||
|
|
@ -4542,6 +4549,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
|
|||
$(OBJS)\corelib_evtloop.o \
|
||||
$(OBJS)\corelib_access.o \
|
||||
$(OBJS)\corelib_msw_bmpbndl.o \
|
||||
$(OBJS)\corelib_overlay.o \
|
||||
$(OBJS)\corelib_generic_accel.o \
|
||||
$(OBJS)\corelib_clrpickerg.o \
|
||||
$(OBJS)\corelib_collpaneg.o \
|
||||
|
|
@ -8465,6 +8473,11 @@ $(OBJS)\monodll_msw_bmpbndl.o: ../../src/msw/bmpbndl.cpp
|
|||
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
|
||||
endif
|
||||
|
||||
ifeq ($(USE_GUI),1)
|
||||
$(OBJS)\monodll_overlay.o: ../../src/msw/overlay.cpp
|
||||
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
|
||||
endif
|
||||
|
||||
ifeq ($(USE_GUI),1)
|
||||
$(OBJS)\monodll_clrpickerg.o: ../../src/generic/clrpickerg.cpp
|
||||
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
|
||||
|
|
@ -11052,6 +11065,11 @@ $(OBJS)\monolib_msw_bmpbndl.o: ../../src/msw/bmpbndl.cpp
|
|||
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
|
||||
endif
|
||||
|
||||
ifeq ($(USE_GUI),1)
|
||||
$(OBJS)\monolib_overlay.o: ../../src/msw/overlay.cpp
|
||||
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
|
||||
endif
|
||||
|
||||
ifeq ($(USE_GUI),1)
|
||||
$(OBJS)\monolib_clrpickerg.o: ../../src/generic/clrpickerg.cpp
|
||||
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
|
||||
|
|
@ -13600,6 +13618,11 @@ $(OBJS)\coredll_msw_bmpbndl.o: ../../src/msw/bmpbndl.cpp
|
|||
$(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
|
||||
endif
|
||||
|
||||
ifeq ($(USE_GUI),1)
|
||||
$(OBJS)\coredll_overlay.o: ../../src/msw/overlay.cpp
|
||||
$(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
|
||||
endif
|
||||
|
||||
ifeq ($(USE_GUI),1)
|
||||
$(OBJS)\coredll_clrpickerg.o: ../../src/generic/clrpickerg.cpp
|
||||
$(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
|
||||
|
|
@ -15353,6 +15376,11 @@ $(OBJS)\corelib_msw_bmpbndl.o: ../../src/msw/bmpbndl.cpp
|
|||
$(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
|
||||
endif
|
||||
|
||||
ifeq ($(USE_GUI),1)
|
||||
$(OBJS)\corelib_overlay.o: ../../src/msw/overlay.cpp
|
||||
$(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
|
||||
endif
|
||||
|
||||
ifeq ($(USE_GUI),1)
|
||||
$(OBJS)\corelib_clrpickerg.o: ../../src/generic/clrpickerg.cpp
|
||||
$(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
|
||||
|
|
|
|||
|
|
@ -2243,6 +2243,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
|
|||
$(OBJS)\monodll_evtloop.obj \
|
||||
$(OBJS)\monodll_access.obj \
|
||||
$(OBJS)\monodll_msw_bmpbndl.obj \
|
||||
$(OBJS)\monodll_overlay.obj \
|
||||
$(OBJS)\monodll_clrpickerg.obj \
|
||||
$(OBJS)\monodll_collpaneg.obj \
|
||||
$(OBJS)\monodll_filepickerg.obj \
|
||||
|
|
@ -2589,6 +2590,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
|
|||
$(OBJS)\monodll_evtloop.obj \
|
||||
$(OBJS)\monodll_access.obj \
|
||||
$(OBJS)\monodll_msw_bmpbndl.obj \
|
||||
$(OBJS)\monodll_overlay.obj \
|
||||
$(OBJS)\monodll_generic_accel.obj \
|
||||
$(OBJS)\monodll_clrpickerg.obj \
|
||||
$(OBJS)\monodll_collpaneg.obj \
|
||||
|
|
@ -3092,6 +3094,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
|
|||
$(OBJS)\monolib_evtloop.obj \
|
||||
$(OBJS)\monolib_access.obj \
|
||||
$(OBJS)\monolib_msw_bmpbndl.obj \
|
||||
$(OBJS)\monolib_overlay.obj \
|
||||
$(OBJS)\monolib_clrpickerg.obj \
|
||||
$(OBJS)\monolib_collpaneg.obj \
|
||||
$(OBJS)\monolib_filepickerg.obj \
|
||||
|
|
@ -3438,6 +3441,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
|
|||
$(OBJS)\monolib_evtloop.obj \
|
||||
$(OBJS)\monolib_access.obj \
|
||||
$(OBJS)\monolib_msw_bmpbndl.obj \
|
||||
$(OBJS)\monolib_overlay.obj \
|
||||
$(OBJS)\monolib_generic_accel.obj \
|
||||
$(OBJS)\monolib_clrpickerg.obj \
|
||||
$(OBJS)\monolib_collpaneg.obj \
|
||||
|
|
@ -3873,6 +3877,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
|
|||
$(OBJS)\coredll_evtloop.obj \
|
||||
$(OBJS)\coredll_access.obj \
|
||||
$(OBJS)\coredll_msw_bmpbndl.obj \
|
||||
$(OBJS)\coredll_overlay.obj \
|
||||
$(OBJS)\coredll_clrpickerg.obj \
|
||||
$(OBJS)\coredll_collpaneg.obj \
|
||||
$(OBJS)\coredll_filepickerg.obj \
|
||||
|
|
@ -4219,6 +4224,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
|
|||
$(OBJS)\coredll_evtloop.obj \
|
||||
$(OBJS)\coredll_access.obj \
|
||||
$(OBJS)\coredll_msw_bmpbndl.obj \
|
||||
$(OBJS)\coredll_overlay.obj \
|
||||
$(OBJS)\coredll_generic_accel.obj \
|
||||
$(OBJS)\coredll_clrpickerg.obj \
|
||||
$(OBJS)\coredll_collpaneg.obj \
|
||||
|
|
@ -4559,6 +4565,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
|
|||
$(OBJS)\corelib_evtloop.obj \
|
||||
$(OBJS)\corelib_access.obj \
|
||||
$(OBJS)\corelib_msw_bmpbndl.obj \
|
||||
$(OBJS)\corelib_overlay.obj \
|
||||
$(OBJS)\corelib_clrpickerg.obj \
|
||||
$(OBJS)\corelib_collpaneg.obj \
|
||||
$(OBJS)\corelib_filepickerg.obj \
|
||||
|
|
@ -4905,6 +4912,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
|
|||
$(OBJS)\corelib_evtloop.obj \
|
||||
$(OBJS)\corelib_access.obj \
|
||||
$(OBJS)\corelib_msw_bmpbndl.obj \
|
||||
$(OBJS)\corelib_overlay.obj \
|
||||
$(OBJS)\corelib_generic_accel.obj \
|
||||
$(OBJS)\corelib_clrpickerg.obj \
|
||||
$(OBJS)\corelib_collpaneg.obj \
|
||||
|
|
@ -8910,6 +8918,11 @@ $(OBJS)\monodll_msw_bmpbndl.obj: ..\..\src\msw\bmpbndl.cpp
|
|||
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\bmpbndl.cpp
|
||||
!endif
|
||||
|
||||
!if "$(USE_GUI)" == "1"
|
||||
$(OBJS)\monodll_overlay.obj: ..\..\src\msw\overlay.cpp
|
||||
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\overlay.cpp
|
||||
!endif
|
||||
|
||||
!if "$(USE_GUI)" == "1"
|
||||
$(OBJS)\monodll_clrpickerg.obj: ..\..\src\generic\clrpickerg.cpp
|
||||
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\clrpickerg.cpp
|
||||
|
|
@ -11497,6 +11510,11 @@ $(OBJS)\monolib_msw_bmpbndl.obj: ..\..\src\msw\bmpbndl.cpp
|
|||
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\bmpbndl.cpp
|
||||
!endif
|
||||
|
||||
!if "$(USE_GUI)" == "1"
|
||||
$(OBJS)\monolib_overlay.obj: ..\..\src\msw\overlay.cpp
|
||||
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\overlay.cpp
|
||||
!endif
|
||||
|
||||
!if "$(USE_GUI)" == "1"
|
||||
$(OBJS)\monolib_clrpickerg.obj: ..\..\src\generic\clrpickerg.cpp
|
||||
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\clrpickerg.cpp
|
||||
|
|
@ -14045,6 +14063,11 @@ $(OBJS)\coredll_msw_bmpbndl.obj: ..\..\src\msw\bmpbndl.cpp
|
|||
$(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) ..\..\src\msw\bmpbndl.cpp
|
||||
!endif
|
||||
|
||||
!if "$(USE_GUI)" == "1"
|
||||
$(OBJS)\coredll_overlay.obj: ..\..\src\msw\overlay.cpp
|
||||
$(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) ..\..\src\msw\overlay.cpp
|
||||
!endif
|
||||
|
||||
!if "$(USE_GUI)" == "1"
|
||||
$(OBJS)\coredll_clrpickerg.obj: ..\..\src\generic\clrpickerg.cpp
|
||||
$(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) ..\..\src\generic\clrpickerg.cpp
|
||||
|
|
@ -15798,6 +15821,11 @@ $(OBJS)\corelib_msw_bmpbndl.obj: ..\..\src\msw\bmpbndl.cpp
|
|||
$(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) ..\..\src\msw\bmpbndl.cpp
|
||||
!endif
|
||||
|
||||
!if "$(USE_GUI)" == "1"
|
||||
$(OBJS)\corelib_overlay.obj: ..\..\src\msw\overlay.cpp
|
||||
$(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) ..\..\src\msw\overlay.cpp
|
||||
!endif
|
||||
|
||||
!if "$(USE_GUI)" == "1"
|
||||
$(OBJS)\corelib_clrpickerg.obj: ..\..\src\generic\clrpickerg.cpp
|
||||
$(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) ..\..\src\generic\clrpickerg.cpp
|
||||
|
|
|
|||
|
|
@ -1079,6 +1079,7 @@
|
|||
<ClCompile Include="..\..\src\common\bmpcboxcmn.cpp" />
|
||||
<ClCompile Include="..\..\src\generic\rowheightcache.cpp" />
|
||||
<ClCompile Include="..\..\src\generic\creddlgg.cpp" />
|
||||
<ClCompile Include="..\..\src\msw\overlay.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="..\..\src\msw\version.rc">
|
||||
|
|
|
|||
|
|
@ -942,6 +942,9 @@
|
|||
<ClCompile Include="..\..\src\msw\ole\uuid.cpp">
|
||||
<Filter>MSW Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\msw\overlay.cpp">
|
||||
<Filter>MSW Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\msw\ownerdrw.cpp">
|
||||
<Filter>MSW Sources</Filter>
|
||||
</ClCompile>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue