Don't reset the selection in a generic multi-selection wxListCtrl while
Ctrl or Shift key is pressed to be consistent with wxMSW behaviour.
This commit is best viewed ignoring whitespace-only changes.
Closes#24332.
Shift-Ctrl-N was already taken when it was added for the font dialog in
9b25ed0 (Add an accelerator for the font dialog in the dialogs sample,
2022-04-16). Use Shift-Ctrl-J instead.
Closes#24324.
This provides parity with the ribbon bar's GetPage() set of functions,
and adds an easy way to find a panel and show/hide it.
Also, add example and discussion about showing/hiding panels on a
ribbon.
Closes#24319.
If the latest user notification shown was shown with
"Use persistent taskbar icon" toggled on, the application process
would never really exit after closing. So delete m_taskbarIcon
in destructor.
Closes#24316.
At least under Windows this marker needs to be drawn from wxEVT_PAINT
handler too in order to be visible when double-buffering is used.
Closes#24310.
Closes#24314.
Unset background colour actually means to use the default one, which is
still not the case for wxQt if the background had been previously
changed, but at the very least it doesn't change it to black any longer.
This commit is best viewed ignoring whitespace-only changes.
Restore correct translation language lookup taking into account message
IDs language correctly when it is present in the preferred UI languages
but is not the first language in them and other similar corner cases.
Also add unit tests verifying that this code logic, already changed many
times in the past, does behave correctly now.
See #24297.
Use wxOverlay to show sash feedback in wxAUI and in wxSplitterWindow to
implement non-live resizing in ports where it didn't work before (wxGTK3
with Wayland, wxOSX).
See #24193.
The list control needs to be updated after the user has edited an item
label because, for example, in icon view the column width and positions
of subsequent columns may change if the edited label is or was wider
than the icons and other labels in the column.
Closes#24311.
Add support for overriding GetPreferredUILanguages() return value by
setting the WXLANGUAGE environment variable to a colon-separated list
of desired languages (same as GNU's LANGUAGE variable).
Primarily used for unit tests, but may be more generally useful.
Knowing msgIdLanguage is necessary for correct evaluation of preferred
languages order; without it, it would be possible to load undesirable
translation file.
See 2af36e9560 for details.
This commit partially reverts 94b1a17aeb.
The above commit changed translation lookup logic to differentiate
between msgid and "available" translations (the latter being loaded from
a file or resource). It first attempted to use available translations
and only felt back to msgid language as the last resort.
Unfortunately, doing that broke lookup in cases when the user had msgid
language as not-last preference in their UI languages list, or even when
a similar translation was available. For example:
- msgid=en, user preference [cs,en,fr], only fr.po available: fr would
be used instead of en
- msgid=en_US or en, user preference [en], but en_GB.po available:
British English would be used even for US users
This commit fixes this by restoring the previous behavior where msgid
language was treated as a first-class citizen in lookup, while
preserving the API that allows distinguishing between the two cases.
It also reimplements AddStdCatalog() in a more straightforward way that
doesn't rely on AddAvailableCatalog().
Implicitly capturing "this" is deprecated in C++20, so do it explicitly,
even if it also requires explicitly capturing everything else as
combining implicit capture with explicitly capturing "this" is not
allowed in the previous C++ versions.
Ensure that all member variables are initialized instead of initializing
just some of them in the ctor and leaving others uninitialized, it's
simpler to just do this rather than to check if uninitialized values can
or not be used.
This was useful when we had AlwaysUsesLiveResize() and the related
complications, but now that live resizing is governed solely by
wxSP_LIVE_UPDATE again, it's not needed any longer.
No real changes.
- Support wxGLContext::SetCurrent.
- Pass GL canvas attributes via ParseAttribList to handle defaults.
- Remove OpenGL not implemented message.
- Prevent QGLWidget from changing OpenGL state before we paint.
- Set Qt::StrongFocus for wxQtGLWidget to allow keyboard input.
- Use QtCanPaintWithoutActivePainter to fix wxPaintDCImpl assert when using wxGLCanvas.
Refactor the code to use wxMessageDialog attributes (such as label,
style etc) values at the moment when the dialog is shown, not when it is
created. This still doesn't handle changing them after showing the
dialog before showing them again, but this is a much more rare use case
than creating the dialog and then setting its attributes later.
There should be no changes in behaviour.