Set the autowrap renderer DC font from the cell attribute before measuring
line heights, so small-font cells do not inherit another DC font when rows
are autosized.
Use the full spanned row or column extent when asking renderers for their
autosize measurement, and cover autowrap font and spanned-row sizing.
Fixes#14072.
Closes#27136.
This is similar to 443c024e07 (Ignore failures in wxGrid column resizing
test with wxQt5, 2026-08-17) and is done for the same reasons of
expediency.
See #25779.
wxWindow::Update() is an intentional no-op under GTK3 with a native
Wayland backend, so Refresh()+Update() doesn't guarantee the paint has
already happened by the time it returns there. Wait for the actual
paint event using WaitForPaint instead, fixing
EventPropagation::ScrollWindowWith(out)Handler and
Grid::SetTable_ClearAttrCache.
Button::{Click,Disabled}, RadioButton::Click, SpinCtrl::{Arrows,Increment,
SetValueInsideEventHandler,Wrap}, SpinCtrlDouble::{Arrows,Increment,
Wrap}, ValNum::Interactive, wxStyledTextCtrl::{AutoComp,Calltip},
Grid::{CellClick,ReorderedColumnsCellClick,CellSelect} and several
wxTreeCtrl tests used wxUIActionSimulator without checking
EnableUITests() first, unlike every other simulated-input test. This
meant they weren't skipped when UI tests are disabled (e.g. now by
default under a native Wayland GTK3 client) and just failed instead.
Add regression coverage for cursor movement across zero-height rows and
zero-width columns. The grid cursor should skip hidden lines when moving
in either direction and remain on a shown row or column.
See #9586.
Closes#26904.
Use the current unscrolled origin and the actual target-cell bottom when
scrolling down, instead of rebuilding a position from preceding row
heights. Add a grid regression test with mixed row heights.
Fixes#4371.
Closes#26897.
MSW cross-builds / wxMSW 64 bits not compatible (push) Canceled after 0s
MSW cross-builds / wxMSW/Univ (push) Canceled after 0s
MSW cross-builds / wxMSW 32 bits (push) Canceled after 0s
Code Checks / Check Spelling (push) Canceled after 0s
Code Checks / Check Whitespace (push) Canceled after 0s
Code Checks / Check Mixed EOL (push) Canceled after 0s
Code Checks / Check C++ Style (push) Canceled after 0s
Code Checks / Check All Headers In allheaders.h (push) Canceled after 0s
This happens regularly and is just annoying, so unless somebody decides
to fix this, ignore the failures with just a warning to allow the test
suite to succeed.
See #25779.
Focus the native edit child when testing wxComboBox Enter handling on MSW,
where wxEVT_TEXT_ENTER is generated from the edit control's character message.
Also split Return simulation into key down/yield/key up so the native message
sequence is observed.
Make the other control tests less dependent on platform-specific details:
check visibility of the actual selected grid endpoint instead of a
DPI-sensitive nearby cell, and allow wxDataViewCtrl to report more than one
key-down event.
Reposition the active cell editor after wxGrid resizes its child
windows, keeping the editor inside the visible grid window and
refreshing the old editor area.
Add a GUI regression test that shrinks the grid while editing and
checks that the editor remains visible in the grid window.
Fixes#2678.
Closes#26724.
Remember the editor instance used for the shown edit control and use it
for visibility checks, painting, hiding, and saving. This keeps the edit
control lifetime independent of later attribute changes, so replacing a
cell or column editor while editing does not make wxGrid hide or save
through the wrong editor.
Add a regression covering replacement of a column bool editor while its
cell is being edited.
Fixes#21986.
Closes#26670.
wxMSW is the only port in which the header is really native and its
behaviour may/does differ from the generic one and so these tests are
valuable there, but not with the other ports.
Include the header defining QT_VERSION before using it.
This should have been part of ea4c83dc7f (Ignore failure of wxGrid
column width test with wxQt5, 2025-08-30).
Changing the table shouldn't make the cell (0, 0) current if we hadn't
had any current cell before, this was unintentional side effect of
e570d85164 (Ensure current cell remains valid when wxGrid table changes,
2023-09-15) which resulted in an unwanted wxEVT_GRID_SELECT_CELL event
when creating the grid.
Fix this by only calling UpdateCurrentCellOnRedim() if we have a valid
current cell to update.
See #23751.
Closes#25498.
Test whether selecting two adjacent blocks results in only one block containing
both blocks. This should be the case since this commit caad24cf83 (Added
wxGridSelection::MergeAdjacent{Blocks,Rects}() helper functions)
For some completely mysterious reason we don't get the expected mouse
click events when running under AppVeyor, something might be covering
the window and stealing the clicks for itself there.
As there doesn't seem to be anything to do about it, just skip the test
in this case.
Closes#24082.
Try making this test more robust as well as it also sporadically fails
on AppVeyor.
Also simplify it a bit, checking for each of the expected events in turn
instead of checking for their total number at the end.
This test doesn't use the native header but somehow still fails on
AppVeyor and locally a very failure can be reproduced if the mouse is
moved while the test runs, so check for this here too.
Not sure if it really helps, but try to wait for the events in these
tests as well if only for consistency with what was done in 3d07de66b1
(Add a wait to wxGrid UI unit tests too, 2023-10-03).
Wait for a bit before checking for the expected event as a single
wxYield() call might apparently not be enough under load, as this test
sporadically fails in AppVeyor CI builds even though it passes locally.
Clear the cached attributes when replacing the table they were used
with.
Add unit test checking that the attributes are not used any longer.
Closes#23607.
This function doesn't exist in Catch2 any longer, so prepare for the
upgrade by stopping to use it and converting things to string more
explicitly.
No real changes yet.
This is a combination of running clang-tidy with modernize-use-nullptr
check for some ports (GTK, X11, OSX) and manual changes to the ports for
which it couldn't be used easily (MSW, DFB) and also manually updating
the docs.
Also replace NULL with null or nullptr in the comments as this is more
consistent with the use of nullptr in the code and makes it simpler to
grep for the remaining occurrences of NULL itself.
And also use null in the assert messages.
Only a few occurrences of "NULL" are still left in non-C files, mostly
corresponding to unclear comments or string output which it might not be
safe to change.
Don't bother checking for various C++11 features that are available in
all C++11 compilers.
Also assume that std::exception_ptr is available in all still supported
MinGW versions and remove checks for it too (see #16634).
Further simplifications remain possible, this is just the first step.
The previous commit reveals a bug in the grid test where the
wxEVT_GRID_RANGE_SELECTED detected is not really comming from
range selection action, but from the grid cursor changing its position
For unknown reasons, range selection in the test doesn't really starts off
unless we move the mouse first while still inside the first selected cell