The changes of 602b80d (Support EGL 1.4 instead of previously required
1.5, 2025-11-23) were wrong for X11 because eglCreateWindowSurface(),
used as the fallback when newer EGL functions are not available,
requires passing it the actual X11 Window (i.e. an XID) rather than a
pointer to it.
Fix this by passing both the XID and a pointer to it to this function
and calling the different functions with the appropriate parameter.
Note that we still need to pass wl_egl_window pointer to this function
when using Wayland and we need to pass a pointer to XID when using newer
EGL functions.
Closes#26410.
Disabling it doesn't save much on code size and the build without it is
currently broken anyhow, so just remove the possibility to turn it off.
Closes#26388.
Closes#26402.
The implementation of GetImageLogicalSize() overload taking the image
index returned correct answer for this individual image, but was wrong
when used in the control with multiple images with different logical
sizes. This resulted in the actual bitmap being drawn, as returned by
GetImageBitmapFor(), being of different size than the size returned by
this function, as GetImageBitmapFor() uses the best ("consensus") size
for all images, which is also returned by GetImageLogicalSize() overload
not taking the image.
Solve this by simply getting rid of the overload taking the image and
replacing all existing calls to it with the calls to the other overload.
This is backwards-incompatible, but this function was only added in 3.3
and removing it is a lesser evil than either leaving a function which
can only be misused, or keeping the unused image index parameter which
would be confusing.
See #26397.
Closes#26391.
Don't define INET_E_XXX symbols use only by wxWebViewIE in
wx/msw/missing.h included by all files, this is unnecessary and also can
result in problems if the application predefines WIN32_LEAN_AND_MEAN, as
these symbols are not defined after including just windows.h in this
case but are defined if urlmon.h is included later, e.g. by one of COM
headers, as their definitions in urlmon.h would results in redefinition
warnings.
Instead, define them only in webview_missing.h and include it after all
Windows headers to ensure that these symbols are defined if they are
present there (which is probably always the case by now).
Use STDMETHOD and STDMETHOD_ macros instead of STDMETHODIMP[_] to get
the Microsoft-specific exception specification which is present in the
former macros but not the latter ones and avoid clang warning about
overriding the base class virtual function using laxer exception
specification.
It needs the usual clang definition of this attribute to avoid warnings
about unused local typedefs in wxDELETE[A] but the macro was defined as
empty for it because clang-cl doesn't predefine __GNUC__ (it predefines
_MSC_VER instead).
Don't reference ms_wxDummy variable which was never defined in the
version of WX_DECLARE_TYPEINFO_INLINE() macro used when compiler RTTI
support is disabled, as this resulted in link errors.
Just remove this variable completely.
Closes#26389.
- Update wxRibbonPanel to accept wxBitmapBundle for minimised icons.
- Modify wxRibbonToolBar to utilize wxBitmapBundle for tool icons.
- Change wxRibbonAUIArtProvider and wxRibbonMSWArtProvider to handle
wxBitmapBundle for drawing operations.
- Adjust wxRibbonGallery to support wxBitmapBundle for gallery items.
- Implement DPI change handling in wxRibbonBar, wxRibbonPage,
wxRibbonPanel, and wxRibbonToolBar to recalculate sizes and redraw
with the correct bitmap for the current DPI.
- Ensure all relevant methods and event handlers are updated to work
with wxBitmapBundle instead of wxBitmap.
Closes#26117.
Calling FromPhys() unconditionally on the image list size was wrong, we
want to use the logical size of the bitmap contained in wxImageList
which depends on its scale factor and is the same as its physical size
on platforms using DPI-independent pixels such as wxGTK and wxOSX.
This resulted in positioning the bitmaps incorrectly in wxListCtrl (and
almost surely wxTreeCtrl too).
Closes#26349.
Avoid MSVC code analysis warning
C28251: Inconsistent annotation for 'WinMain': this instance has no annotations.
by providing the same annotations as in the SDK header.
Closes#18529.
Closes#26322.
These functions are always available, as proven by #error directives in
the code never triggering for all the years they were there, so stop
checking for them and just assume they are available.
Also simplify the check for gethostbyname_r() in CMake and just test
directly if we can use the function with the given prototype, reducing
the number of checks to one in the most common case when before we made
3 of them (one extra due to checking if the function existed first and
another one due to a logical but wrong idea that we need to check for 5
before 6).
Finally, also define HAVE_FUNC_GETSERVBYNAME_R_{6,5} in CMake,
previously it never defined them at all and so reentrant functions were
never used.
The check for this pre-C99 Solaris header was added back in a49ffb32e2
(include widec.h if it's available, it contains declarations of
[f]putws() under Solaris, 2006-11-09) and shouldn't be needed any more.
CMake never checked for it, so remove the check from configure too and
then remove the now never defined HAVE_WIDEC_H.
We don't support ancient MSVC version which didn't treat wchar_t as a
distinct type, so don't bother catering for such compilers and simplify
the code by removing the checks for wxWCHAR_T_IS_REAL_TYPE.
Also remove the checks for this from configure and CMake.
Make SetBezelStyleFromBorderFlags() function internally public, rename
it to use "wxOSX" prefix and use it for toggle buttons as well.
See #26300.
Closes#26308.
On Windows the default locale instantiated by wxUILocale::UseDefault()
referenced the locale configured for regional formatting in the Windows
settings. This could lead to unintended behaviour (like using the wrong
layout direction), if the locale for the Windows display language
was different from the locale for regional formatting.
Fix this by using the correct locale, i.e. either the one corresponding
to the display language or the one corresponding to the regional
formatting, depending on the locale property in question.
Closes#26274.
Closes#26354.
Reduce the number of functions declared public by making functions
only used in the implementation private and giving internal classes
friend access.
This commit is best viewed with git diff --color-moved and
--color-moved-ws=ignore-all-space options.
Closes#26319.
This doesn't change much in the typical case when the window is either
realized again immediately afterwards (as it happens with wxNotebook
pages) or destroyed, but it seems tidier to do it just in case it
remains in the unrealized state but still alive for some time.
See #26340.
Make the name consistent with GTKHandleRealized().
This is a private function which should never be called from outside the
library, so it shouldn't be a problem to rename it.
No real changes yet, but this member function should also be virtual if
only for consistency with GTKHandleRealized(): if the latter can be
overridden, it should be also to override the former.
Both DeviceToLogical{X,Y}() and DeviceToLogical() taking wxPoint were
virtual, with the latter implemented in terms of the former by default,
which meant that overriding only that function, but not the ones taking
X/Y coordinates individually, could result in inconsistent behaviour,
which is exactly what happened in wxMSW.
Make it impossible for this to happen by only allowing to override the
functions taking wxPoint (or wxSize for "relative" variant) and
reimplementing the functions working with individual components in terms
of the virtual functions.
The same goes for LogicalToDevice() and "Rel" variants.
As an important side effect, this fixes a bug in wxDC::StretchBlit() in
wxMSW when using RTL layout as the code there used LogicalToDevice{X,Y}
functions that didn't return the correct values before this commit.
Update the tests to not test for the wrong behaviour of per-coordinate
translation functions now that they behave correctly. Also remove the
tests checking that per-coordinate translation doesn't work when the
transformation matrix includes a rotational component.
Update the documentation to emphasize that converting both coordinates
at once is preferred.
See #19344, #26266.
Don't confuse things even more by defining macros or functions that do
exactly the same thing as LogicalToDevice[XY] and DeviceToLogical[XY]
member functions of wxDCImpl.
This is just completely unnecessary, simply use the functions themselves
directly instead.
Note that there are still definitions of such macros in wxMSWDCImpl and
wxPostScriptDCImpl code, but they actually do something different and so
can't be just replaced with the function calls.
No real changes.
The code for wxCAIRO_SCALE==1 was used since eaeb99858d (Use
cairo_scale() for scaling to full printing resolution[...], 2008-04-30)
and it doesn't seem useful to keep the fallback/original version any
longer.
This simplifies the code, allows to get rid of m_PS2DEV and m_DEV2PS
members of wxGtkPrinterDCImpl (as they are always 1 now) and will
facilitate the upcoming changes.
No real changes, just use the RAII helper instead of manual memory
management added in c456ccb28f (Fix memory leak in
wxDataViewChoiceRenderer on GTK, 2026-03-31).