Gabriel Ivăncescu
7a1b96f6b7
user32/listbox: Implement LBS_NODATA for multi-selection listboxes.
...
Use a byte array to store selection state of items, since we don't need any
other data for LBS_NODATA multi-selection listboxes. This improves memory
usage dramatically for large lists, and performance boosts are nice too.
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>
2019-03-01 09:37:52 +01:00
Gabriel Ivăncescu
80ff468748
user32/listbox: Use a helper to get the size of an item.
...
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>
2019-03-01 09:37:49 +01:00
Huw Davies
0092a4bb19
user32/listbox: Use helper functions for item initialization.
...
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>
2019-03-01 09:37:44 +01:00
Gabriel Ivăncescu
18a6e37ce1
user32/listbox: Rewrite FindString to use helpers and avoid the macro.
...
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>
2019-03-01 09:37:42 +01:00
Gabriel Ivăncescu
a01b90d382
user32/listbox: Use a helper to set item data by index.
...
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>
2019-03-01 09:37:39 +01:00
Vijay Kiran Kamuju
7a6b00dc25
user32: Add DlgDirList wildcard checks.
...
Based on a patch from Christian Lupien.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=8226
Signed-off-by: Vijay Kiran Kamuju <infyquest@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-27 22:21:17 +01:00
Zhiyi Zhang
741b673bc9
user32/tests: Add more EnumDisplayDevices tests.
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-26 20:56:30 +01:00
Gabriel Ivăncescu
7edbf1c8e5
user32/listbox: Use is_item_selected in GetSelCount and GetSelItems.
...
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>
2019-02-25 12:51:21 +01:00
Gabriel Ivăncescu
20c0dda050
user32/tests: Test negative counts in LB_SETCOUNT.
...
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>
2019-02-21 16:04:07 +01:00
Gabriel Ivăncescu
8a9ff9fb13
user32/listbox: Implement LBS_NODATA for single-selection listboxes.
...
The LBS_NODATA style's purpose is to drastically improve performance and
memory usage on very large lists, since they should function as virtual
lists. Thus, don't store any data for single-selection listboxes (descr->items
always NULL).
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=32374
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>
2019-02-21 16:04:03 +01:00
Gabriel Ivăncescu
9f58653421
user32/listbox: Move the item data removal into a separate function.
...
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>
2019-02-21 16:04:00 +01:00
Gabriel Ivăncescu
ff1ebccdd0
user32/listbox: Move the item data insertion into a separate function.
...
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>
2019-02-21 16:03:56 +01:00
Gabriel Ivăncescu
9b6d9cb8ae
user32/listbox: Use a helper to set item height by index.
...
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>
2019-02-21 16:03:53 +01:00
Gabriel Ivăncescu
4a27ea8494
user32/listbox: Use a helper to retrieve item height by index.
...
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>
2019-02-21 16:03:50 +01:00
Zebediah Figura
73b50a24e7
user32: Replace the minimize box with a restore box when the window is minimized.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-20 09:19:17 +01:00
Zebediah Figura
50bc18201d
user32: Move iconic windows as their border instead of their icon.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-20 09:19:15 +01:00
Zebediah Figura
8dade1bc86
user32: Get rid of icon titles.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-19 20:51:19 +01:00
Zebediah Figura
c45f60450a
user32: Allow clicking the restore and maximize boxes for on minimized windows.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-19 20:51:19 +01:00
Zebediah Figura
3765b3307e
user32: Paint title bars for minimized windows.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-19 20:51:19 +01:00
Zebediah Figura
04707a342f
user32: Correctly place minimized windows.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-19 20:51:19 +01:00
Zebediah Figura
73684e84b6
user32: Reimplement ArrangeIconicWindows() using minimized metrics.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-19 20:51:19 +01:00
Zebediah Figura
23f26266ef
user32: AdjustWindowRect() shouldn't ignore WS_MINIMIZE.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-19 20:51:19 +01:00
Zebediah Figura
118f333ac2
user32: Use the C[XY]MINIMIZED rather than C[XY]ICON size for minimized windows.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-19 20:51:19 +01:00
Zebediah Figura
ed0eaecf17
user32: Correctly calculate the client size of a minimized window.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-19 20:51:19 +01:00
Zebediah Figura
119e215e3e
user32: SetWindowPos() shouldn't change the client rect of a minimized window.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-19 20:51:19 +01:00
Sebastian Lackner
5ff6a11697
server: Improve handling of cursor position clipping for empty rectangle.
...
Based on a patch by Kevin Buhr.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=38791
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=42631
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-18 16:04:03 +01:00
Zebediah Figura
0bff174335
user32/tests: Add tests for ArrangeIconicWindows().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-18 16:02:17 +01:00
Zebediah Figura
16c054c314
user32/tests: Add tests for maximizing and minimizing MDI child windows.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-18 16:02:14 +01:00
Zebediah Figura
2ebfe4c2fe
user32/tests: Add tests for maximizing and minimizing child windows.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-18 16:02:12 +01:00
Zebediah Figura
361de88c4f
user32/tests: Add tests for maximizing and minimizing owned windows.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-18 16:02:10 +01:00
Zebediah Figura
ed0568a506
user32/tests: Add tests for GetWindowPlacement() and SetWindowPlacement().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-18 16:02:08 +01:00
Huw Davies
6a421988df
user32/listbox: Remove some unnecessary differences to the comctl32 version.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-15 15:08:30 +01:00
Gabriel Ivăncescu
0beea9f474
user32/listbox: Send LB_RESETCONTENT from RemoveItem rather than DeleteItem.
...
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>
2019-02-15 15:08:22 +01:00
Gabriel Ivăncescu
84ac6eebaa
user32/listbox: Use a helper to set the selected item state.
...
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>
2019-02-15 15:08:19 +01:00
Gabriel Ivăncescu
e0e939501f
user32/listbox: Use is_item_selected in more places.
...
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>
2019-02-15 15:08:17 +01:00
Gabriel Ivăncescu
8ffe69d705
user32/listbox: Use a helper to retrieve item string by index.
...
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>
2019-02-15 15:08:14 +01:00
Gabriel Ivăncescu
0e3e81d345
user32/listbox: Use a helper to retrieve item data by index.
...
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>
2019-02-15 15:08:12 +01:00
Gabriel Ivăncescu
3179e48f69
user32/tests: Test changing the selection styles after listbox creation.
...
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>
2019-02-15 15:08:10 +01:00
Gabriel Ivăncescu
076fa5f3ed
user32/listbox: Use descr->selected_item for single-selection listboxes when checking selection.
...
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>
2019-02-15 15:08:07 +01:00
Gabriel Ivăncescu
087304f117
user32/listbox: Repaint the old selected item after setting the item selection.
...
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>
2019-02-15 15:08:04 +01:00
Gabriel Ivăncescu
3ef790b968
user32/listbox: Resize the entire item array at once in SetCount.
...
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>
2019-02-15 15:08:02 +01:00
Zebediah Figura
21c8c5a900
user32/tests: Execute test_shell_window() last.
...
Cf. also d83fc43e5e
.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-14 11:44:07 +01:00
Gabriel Ivăncescu
0d19628ef5
user32/tests: Add tests for LB_INITSTORAGE.
...
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>
2019-02-11 11:52:00 +01:00
Gabriel Ivăncescu
0dd9eaf4e3
user32/listbox: Return proper value for LB_INITSTORAGE.
...
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>
2019-02-11 11:52:00 +01:00
Gabriel Ivăncescu
1ece9f6205
user32/listbox: Shrink the item array with resize_storage.
...
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>
2019-02-11 11:52:00 +01:00
Gabriel Ivăncescu
d7f2f33575
user32/listbox: Use a helper to expand the item array.
...
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>
2019-02-11 11:52:00 +01:00
Gabriel Ivăncescu
ea185314b3
user32/listbox: Check for out of bounds using the index when painting the item.
...
Needed for LBS_NODATA.
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>
2019-02-11 11:52:00 +01:00
Paul Gofman
d4dc48041b
user32/tests: Add more tests for SetWindowPos() on child window.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=20190
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-05 17:30:12 +01:00
Paul Gofman
bfe1ea26dd
user32: Select more appropriate stretch mode for colored images interpolation.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46375
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-05 17:29:57 +01:00
Zhiyi Zhang
7c8cf96e9c
user32: Fix a memory leak.
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-24 20:10:45 +01:00