wxQt: Fix window positioning in RTL layout. We need to position the windows manually, because QWidget::setLayoutDirection() only takes effect if the widget is managed by a QLayout, which we don't use in wxWidgets. We also need to reposition child windows if the parent client size is changed, as Qt does nothing in this case.
wxQt: Fix SetClientSize() not working correctly in RTL layout
wxQt: Fix wxWindow::Refresh() not working correctly in RTL layout.
wxQt: Fix window scrolling in RTL layout
wxQt: Fix ClientToScreen() and ScreenToClient() to work correctly in RTL layout. In RTL layout, wxWidgets expects the logical point (0,0) to be in the top right corner of the window, while Qt expects it to always be in the top left corner.
wxQt: Fix popup menu position in RTL layout
wxQt: Override wxDC::{Get,Set}LayoutDirection()
wxQt: Override wxDC::SetLayoutDirection() in wxMemoryDC For correct drawing in RTL layout, because the base class version doesn't (and shouldn't) mirror the DC by default.
wxQt: Apply custom mirroring to wxDC in RTL layout.
wxQt: Simplify wxDC::DoDraw{Rotated}Text() implementations
No real change, just a simplification to make them easier to fix in the RTL layout.
wxQt: Fix drawing multiline text with wxDC::DrawText()
wxQt: Fix drawing (rotated) text in RTL layout
wxQt: Fix drawing (rotated) text with GC in RTL layout
wxQt: Fix wxDC::GetSize() for wxMemoryDC
wxQt: Fix drawing wxGrid lines in RTL layout
wxQt: Fix drawing wxTreeCtrl icons in RTL layout
wxQt: Fix wxOverlay in RTL layout
wxQt: Fix rendering some native control in RTL layout
wxAUI: Don't mirror hint rectangle in RTL layout This is for wxQt.
Relax the clip box check in OneDevRegionRTL test case Due to rounding errors, this test would fail under wxMSW if the region started at x=2*n, and would fail under wxQt if it started at x=2*n+1. So relax the check by using 1 as a position tolerance.
Add wxGLContext::ClearCurrent() This function allows to reset the current OpenGL context. Closes #25951.
Use ClearCurrent() in wxGLContext dtor in Unix implementations No real changes, just reuse the just added function for clarity instead of duplicating its (trivial) code in the dtor.
Fix crash in wxAuiTabCtrl due to use of invalid m_hoverButton This pointer could become invalid if the page containing it was destroyed (typically, although not necessarily, as the result of clicking on this button itself) and using it when handling the next WXEVT_MOTION event resulted in a crash. Avoid the problem by removing this pointer and replacing its use with FindHoverButton() that finds the (only) button in hover state. Also add ResetHoverButton() helper which uses FindHoverButton() and resets the state of the button and updates the window if necessary. Closes #25959.
Remove potentially dangling m_pressedButton too Nothing really guaranteed that m_pressedButton was always valid so, even if, unlike with m_hoverButton removed in the previous commit, no crashes involving it were reported, remove it too and use FindPressedButton() to find the currently pressed button to ensure we never use a dangling pointer.
Remove just added ResetHoverButton() It's only really needed in a single place, so not worth having. No real changes.
Add helper functions for updating wxAuiTabContainerButton state No real changes, just add SetButtonState() and ClearButtonState() instead of manipulating bits directly in many different places.
Fix appearance of pressed buttons being hovered on Still depress or highlight them by fixing the test for the pressed state: we need to check if wxAUI_BUTTON_STATE_PRESSED bit is set, not that only this bit is set.
Reuse existing position variable in wxAuiTabCtrl::OnMotion() No real changes, just don't call wxMouseEvent::GetPosition() again.
Fix mouse handling while moving over buttons in wxAuiTabCtrl There were several problems in wxAuiTabCtrl: a button could become highlighted when we were passing over it with the mouse button pressed outside of it (which is wrong, as releasing the mouse button doesn't activate the button in this case) and a button could also remain highlighted if we released the mouse button not over it, as we wrongly switched to tab dragging mode, which shouldn't be done while a button is pressed. Fix both of them by ensuring we never have a pressed button and m_isDragging == true at the same time.
Reset hover and pressed buttons on mouse capture loss Don't leave any buttons in an outdated state if mouse capture is broken.
Fix wxLogWarning() documentation Don't claim that they "don't interrupt the program work", whatever it means. Closes #25916.
Remove probably unnecessary RTL workaround from wxAuiManager This RTL workaround is not needed for wxMSW, wxGTK and wxQt and wxOSX doesn't seem to support RTL anyhow, so it's highly likely that it's not really needed anywhere, hence just remove it.
Fix wxListCtrl::GetSubItemRect(n, 0) when columns are reordered Sum up all the preceding column widths to find the starting position of the first column, which may not be 0 if the columns have been reordered.
Draw wxListCtrl subitems in visual, not logical, order This may avoid issues due to overflowing into the next column.
Erase the whole list item row before drawing sub-items Ensure hover colour doesn't remain anywhere, e.g. it doesn't show through check boxes or (transparent) icons.
Use Scintilla as win32 classname for wxStyledTextCtrl This way applications like screen readers know how to interface with it.
Forward all win32 messages to the Scintilla control And if they are not processed, continue with the normal message handler.
Make wxListCtrl dark mode closer to native, white mode rendering Avoid problems due to overflowing into the next column by checking that there is enough space available before drawing. Adjust margins and padding to try to replicate what Windows uses natively.
Improve wxBookCtrl page change event documentation Explain that the CHANGING event handler doesn't have access to the new page and also don't say that it's unnecessary to handle both this event and CHANGED one as it's quite common to handle both of them.
Improve right-aligned text positioning in wxListCtrl dark mode Handle it correctly, i.e. symmetrically to the left-aligned text and not in the same way as it.
Make HandleSubItemPrepaint() void The return value of this function was never used anyhow, so don't bother returning anything from it.
Skip drawing the rest of the item if there is not enough space Don't bother continuing with drawing the image if there is not enough space for the checkbox or drawing the text if there is not enough space for the image.
Merge branch 'qt-rtl' RTL fixes for wxQt. See #25822.
Use native macOS API in wxBase in all GUI builds under Mac Use the same wxBase library, using native API, regardless of whether native API (Cocoa) or wxGTK is used by wxCore when building under macOS. Add new and more clear and simpler to use preprocessor constants for testing for various builds on Apple hardware. Also fix compilation with older macOS versions and gcc (not clang). Closes #25919.
Use current, not best, size for controls in wxGTK toolbars The changes of 8f9f1a42ec (Respect best control size when adding it to wxGTK wxToolBar, 2025-03-02) did in wxGTK what earlier b0ad9ccffd (Use control current, not best, size in wxMSW wxToolBar layout code, 2019-03-31) undid in wxMSW, so tweak them to work as in wxMSW and use the current control size if it's specified instead of the best size to make sure the control doesn't take too much space in the toolbar. This makes appearance of the toolbar containing wxChoice in the toolbar sample much more reasonable. See #25949.
Merge branch 'scintilla-screenreader' of github.com:MaartenBent/wxWidgets Improve wxStyledTextCtrl compatibility with screen readers. See #25956.
Merge branch 'gl-release' Add wxGLContext::ClearCurrent(). See #25958.
Merge branch 'aui-fix-dangling-hover' Fixes to mouse handling in wxAuiTabCtrl. See #25960.
Merge branch 'msw-listctrl-fixes' Make wxListCtrl dark mode closer to native, white mode rendering. See #25961. Closes #25950.
—
View it on GitLab.
You're receiving this email because of your account on gitlab.com. Manage all notifications · Help