Don't send a wxEVT_DATAVIEW_SELECTION_CHANGED event if an already selected
item is clicked, this is unexpected and inconsistent with the other platforms.
Split SelectAllRows(bool) method in a (trivial) SelectAllRows() and a more
useful UnselectAllRows() which now can check if a particular row is selected
and leave it selected in this case, helping implementing the correct logic and
also avoiding an extra unnecessary refresh due to deselecting the item first
and then selecting it again.
Don't do anything and, in particular, don't send any events if pressing a
navigation key, such as a cursor up/down arrow, didn't actually change the
current item because it was already the first/last one.
This fixes an endless stream of wxEVT_DATAVIEW_SELECTION_CHANGED events if the
up/down arrow is simply kept pressed when the selection is on first/last item.
Double clicks over checkboxes (i.e. items using wxDataViewToggleRenderer) were
ignored because they were translated to wxEVT_DATAVIEW_ITEM_ACTIVATED events
and nothing else happened, even if the event was not processed at all.
Fix this by continuing to process double clicks as normal clicks if there is
no special handling for the activation event.
In practice this means that half of the clicks doesn't seem to be "lost" any
more when clicking a checkbox in a quick succession.
Even although ZIP specification mandates (forward) slashes, some broken
programs still use backslashes in the paths, so make an effort to accommodate
them.
Closes#16259.
This is documented as being required in the MSDN and, in practice, is
necessary for Windows to update the icon cache and show the new icon.
Closes https://github.com/wxWidgets/wxWidgets/pull/195
The results of the checks for the command line options are not useful to show
as presumably the user already knows which options were used for invoking
configure, and so the results of these checks are known as well (with the only
exception of --with-xxx options when configure detects whether to use the
system or the built-in version of the library on its own, but we already
summarize the results of these checks at the end anyhow).
Just don't flood the user with all the messages about checking this and do our
job silently.
It's impractical to have manual projects for all the samples, but do it at
least for this one to serve as a starting point for people using these IDEs.
These warnings were apparently harmless, but really annoying, so get rid of
them by renaming the variables instead of reusing the same name in the nested
scope.
Closes#17351.
This will be useful for allowing other projects, not necessarily located at
the same level of the file hierarchy as the projects for building the library,
to refer to the location of the libraries more easily.
This doesn't really change anything but makes the intention of the code more
clear: this check is needed not because things don't work with GTK+ < 2.14 but
because gtk2-compat.h is for GTK+ 2 only, while this source file is also used
for GTK+1.
Use NSMakePoint() to, well, make the point.
This should have been in 33d8d4e57c but the
wrong function was inadvertently used (and still compiled somehow...).
See #15385.
Contents of controls (like ListBox, Choice, ComboBox) created with wxXX_SORT flag is sorted in dictionary order and therefore reference data items used in tests in widgets sample need to be sorted in this order too.
See #15896.
Leave ownership of the native window to the user code as it may want to reuse
it for some other purpose and provide an explicit Disown() function that can
be called if the user really wants wxWidgets to take ownership of the native
window.
In particular, this avoids problems when using ARC under OS X which resulted
in a double "release" before.
Since the changes of 99d9a81e28 a crash would
happen if an event handler was unbound from an object which was later deleted
from its own event handler. As unlikely as such scenario sounds, this is what
happened with wxTaskBarIcon when two wxNotificationMessages were created in
close succession under MSW and it was difficult to debug because of the timing
constraints involved, so avoid similar crashes in the future by avoiding to
use the fields of the object after an event has been handled and postpone
pruning of the unbound event table entries until later time.
See #17229.