Commit Graph

3625 Commits

Author SHA1 Message Date
Gabriel Ivăncescu cefa84e5d9 shell32/autocomplete: Forward to the edit control outside of the switch to simplify the code.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-21 23:58:56 +02:00
Gabriel Ivăncescu a2cb1ab0b3 shell32/autocomplete: Handle more messages for autocompletion.
The user can right-click on the editbox control and choose one of these
operations, so they need to be handled separately regardless.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-21 23:58:56 +02:00
Gabriel Ivăncescu cb8bd825b9 shell32/autocomplete: Fix going up through the suggestion listbox.
When going up past the topmost item in the listbox, go through txtbackup
first before wrapping around, just like when going down. This matches
Windows behavior.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-21 23:58:56 +02:00
Fabian Maurer 43f44ffb37 shell32/brsfolder: Add shortcut to delete folders with the delete key.
Signed-off-by: Fabian Maurer <dark.shadow4@web.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-20 15:32:36 +02:00
Fabian Maurer 2e25a43f3f shell32/brsfolder: Add shortcut to rename folders with the F2 key.
Signed-off-by: Fabian Maurer <dark.shadow4@web.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-20 15:29:31 +02:00
Gabriel Ivăncescu 7c844af838 shell32/tests: Send WM_CHAR instead of WM_KEYUP.
There's no need to send a WM_KEYUP anymore since it now matches Windows
behavior.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-19 17:20:30 +02:00
Gabriel Ivăncescu 644358bdf7 shell32/autocomplete: Remove the property after replacing the callback instead of before.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-19 17:20:24 +02:00
Gabriel Ivăncescu 2a8df60a8c shell32/autocomplete: Avoid another buffer overflow and handle arbitrary sizes for the auto-append string.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-19 17:19:41 +02:00
Gabriel Ivăncescu 72d8b7befd shell32/autocomplete: Simplify a calculation.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-19 17:19:32 +02:00
Gabriel Ivăncescu 9644205540 shell32/autocomplete: Don't auto-append on control characters.
We must not auto-append on control characters, most notably Backspace,
but also ^X (cut) and so on.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-19 17:19:20 +02:00
Gabriel Ivăncescu a118459adf shell32/autocomplete: Redesign the window proc to trigger on key presses instead of key release.
AutoComplete currently shows up when the user releases a key, which is
wrong. Windows does it when the user presses a key, so use both WM_KEYDOWN
and WM_CHAR and redesign it so that it matches Windows behavior.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-18 20:59:38 +02:00
Gabriel Ivăncescu 779c513462 shell32/autocomplete: Move the autocomplete processing and WM_KEYUP to separate functions.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-18 20:59:38 +02:00
Gabriel Ivăncescu cbbbb70cf2 shell32/autocomplete: Dynamically allocate hwndText so it can handle arbitrary sizes.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-13 12:54:38 +02:00
Gabriel Ivăncescu 7f659eb5f9 shell32/autocomplete: Get rid of control and filled BOOLs and simplify the code.
There's no need to have filled, since cpt can already provide the same
information.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-11 14:10:32 +02:00
Gabriel Ivăncescu cd8d3c6de6 shell32/autocomplete: Don't call ShowWindow unless auto-suggest listbox is enabled.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-11 14:10:23 +02:00
Gabriel Ivăncescu a435fbc646 shell32/autocomplete: Reduce the strlen calls because they are redundant.
We can retrieve the length of the string from the SendMessage calls already.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-11 14:10:18 +02:00
Gabriel Ivăncescu 97006eb661 shell32/autocomplete: Handle heap_alloc failure.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-11 14:09:58 +02:00
Gabriel Ivăncescu 74c0c0574e shell32/autocomplete: Fix a vulnerability by avoiding the use of snprintf.
The quickComplete format can have more than one % argument, or stuff like
%*.* or %1234s, which can be exploited since the format string can be read
from the registry, so handle it manually instead of using sprintf.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-11 14:09:52 +02:00
Gabriel Ivăncescu 0c049b6791 shell32/autocomplete: Fix handling of Backspace and Delete.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=22255
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-07 13:03:18 +02:00
Gabriel Ivăncescu 2964b975ac shell32/autocomplete: Revamp pwzsRegKeyPath handling so it can deal with arbitrary sizes and make it more robust.
Handle heap_alloc failure, reg strings without a \ character at all,
try harder to find the reg path (if only value fails the lookup), and
read the registry value with any size.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-07 13:03:09 +02:00
Alexandre Julliard 4a6855a575 shell32: Re-add support for expanding ALLUSERSPROFILE for backward compatibility.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-06 17:07:15 +02:00
Alexandre Julliard ceea5bda14 shell32: Avoid infinite loop in _SHExpandEnvironmentStrings.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-06 17:07:15 +02:00
Alexandre Julliard 54530bc493 shell32: Assume that system directory always contains a drive letter.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-06 17:07:15 +02:00
Alex Henrie b95764adc4 shell32/tests: Mark a shell dispatch test as todo on x64 and ARM.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-04 15:12:25 +02:00
Alex Henrie 4c1a5099f0 shell32: Add remaining small icons.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-31 10:00:34 +02:00
Alex Henrie 1a924932da shell32: Add remaining control panel icons.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-31 10:00:34 +02:00
Alex Henrie e26bf9c3ea shell32: Rename icon 137 from "options" to "control panel XP".
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-31 10:00:34 +02:00
Alex Henrie 17a0c2afa6 shell32: Add Jaz drive icon.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-31 10:00:34 +02:00
Alex Henrie d0d1c6c2fd shell32: Add remaining search icons.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-31 10:00:34 +02:00
Alex Henrie 46dcc1a3df shell32: Add XP install icon.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-31 10:00:34 +02:00
Alex Henrie ce40aa4edf shell32: Add remaining help icons.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-31 10:00:34 +02:00
Alex Henrie d0379a3060 shell32: Add remaining printer icons.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-31 10:00:34 +02:00
Alex Henrie dc0ad3acbf shell32: Add remaining Internet icons.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-31 10:00:34 +02:00
Alex Henrie 63767f4b90 shell32: Add users icon.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-31 10:00:34 +02:00
Alex Henrie 618441bb92 shell32: Add multimedia file icon.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-31 10:00:33 +02:00
Alex Henrie 9da55d132c shell32: Add image file icon.
Adapted from image-x-generic in the Tango Icon Library.

Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-31 10:00:33 +02:00
Alex Henrie 4213781ae0 shell32: Add play icon.
Adapted from media-playback-start in the Tango Icon Library.

Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-30 19:55:35 +02:00
Alex Henrie 2e703dbc7a shell32: Add print icon.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-30 19:55:25 +02:00
Alex Henrie d721c454e6 shell32: Add upload icon.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-30 19:55:25 +02:00
Alex Henrie ddaf6bb137 shell32: Add move icon.
Adapted from mail-forward.svg in the Tango Icon Library.

Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-30 19:55:25 +02:00
Alex Henrie 39012eac75 shell32: Add delete icon.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-30 19:55:25 +02:00
Alex Henrie c0c9400e3c shell32: Add MSN icon.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-30 19:55:25 +02:00
Alex Henrie 8b59c7fc5a shell32: Add removable disk icons.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-30 19:55:25 +02:00
Alex Henrie 042b9cc23f shell32: Add download icons.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-30 19:55:25 +02:00
Alex Henrie a2e2b5ba1d shell32: Add zip drive icon.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-30 19:55:25 +02:00
Alex Henrie c34a39e37a shell32: Add card reader icon.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-30 19:55:25 +02:00
Alex Henrie 336ced48fa shell32: Rename floppy.svg to disk_drive.svg.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-30 19:55:25 +02:00
Alex Henrie 47c35b2ef1 shell32: Add audio file icon.
Adapted from audio-x-generic in the Tango Icon Library.

Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-30 19:55:25 +02:00
Alex Henrie 627c34fff7 shell32: Add video file icon.
Adapted from video-x-generic in the Tango Icon Library.

Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-30 19:55:24 +02:00
Gabriel Ivăncescu 6f3e83f7fc shell32/tests: Add a test for binding a different AutoComplete object to the same edit control.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-30 19:55:24 +02:00