Fabian Maurer
a9ac425a90
user32/menu: Release menu in HiliteMenuItem() to avoid deadlock.
...
MENU_SelectItem sends a message, and we must not hold the lock when
that happens
Signed-off-by: Fabian Maurer <dark.shadow4@web.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-20 18:36:56 +02:00
Zhiyi Zhang
a205401b38
user32: Fix menu item rectangle calculation in GetMenuItemRect().
...
This fixes the menu of BibleWorks 10 not showing up and some todo in
tests.
Sysmenu is in non-client area. And because MapWindowPoints() should
not be used with non-client area coordinates. Doing so results in
wrong coordinates for sysmenu item rectangles.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-17 17:39:55 +02:00
Fabian Maurer
aee9fa0e55
user32: Always release menu item in EnableMenuItem.
...
Signed-off-by: Fabian Maurer <dark.shadow4@web.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-25 22:33:41 +02:00
Huw Davies
5fefb108c4
user32: Simplify CheckMenuRadioItem().
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-15 12:33:56 +02:00
Nikolay Sivov
387ba1d605
user32/menu: Return locked menu data when looking for menu items.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-11 17:20:41 +02:00
Nikolay Sivov
6cae93a36e
user32/menu: Replace macro checks for window style with a helper function.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-17 17:03:13 +02:00
Nikolay Sivov
fcdc7db390
user32/menu: Hold a reference to menu data for calls with menu handles on input.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-17 17:03:13 +02:00
Michael Stefaniuc
e8411d22d5
user32: Use the available ARRAY_SIZE() macro.
...
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-02 16:02:53 +02:00
Thomas Faber
7ee4588c0a
user32: Handle HeapReAlloc failure in RemoveMenu.
...
The array size is being decreased so failure is not critical here, but
it can still happen, e.g. when DPH is in use.
Signed-off-by: Thomas Faber <thomas.faber@reactos.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-05 10:00:07 +01:00
Rafał Harabień
5c2526a086
winex11.drv: Preserve last error in x11drv_thread_data().
...
Signed-off-by: Rafał Harabień <rafalh1992@o2.pl>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-11-17 17:44:05 +01:00
Fabian Maurer
5e59e9b34c
user32: Add stub for CalcMenuBar.
...
Signed-off-by: Fabian Maurer <dark.shadow4@web.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-07 18:25:01 +02:00
Huw Davies
022e4b8243
user32: End the tracking on a system menu double-click.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-05 19:49:40 +02:00
Huw Davies
e60bc27dd2
user32: A button-up in the menu-bar, but not on an item, should stop the tracking.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-05 19:49:22 +02:00
Huw Davies
580915040e
user32: A second button-up on the system menu should end the tracking.
...
This isn't quite how Windows behaves. Windows doesn't follow the
tracking between the menu-bar and the system menu, while Wine does.
Since the system menu of top-level windows is likely to be hidden by
Wine's graphics driver, this seems like useful behaviour to keep and
thus this patch makes things behave sensibly.
Even without Wine's special tracking behaviour, this patch is an
improvement. The tracking state has no reason to be stored in the
menu structure.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-05 19:49:16 +02:00
Huw Davies
77026e244c
user32: Allow button-down events on the system menu to continue tracking.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-05 19:48:55 +02:00
Huw Davies
962d5e6469
user32: Don't bother drawing an item if it's outside the items_rect.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-31 14:03:50 +02:00
Huw Davies
21c5545a97
user32: Simplify the use of rectangles.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-31 14:03:44 +02:00
Huw Davies
66d3c80de0
user32: Pass a POPUPMENU ptr to MENU_DrawMenuItem().
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-31 14:03:32 +02:00
Huw Davies
e42bcbdea3
user32: Remove the height parameter from MENU_DrawMenuItem().
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-31 14:03:23 +02:00
Huw Davies
3c0ddd5971
user32: Limit the menu height to that of the work area.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-30 22:06:33 +02:00
Huw Davies
1d4992282d
user32: Disable scrolling for multi-column menus.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-30 22:06:33 +02:00
Huw Davies
d4544f7fed
user32: Don't finish tracking when the menu borders or scroll arrows are clicked.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-30 22:06:33 +02:00
Huw Davies
6abb7db763
user32: Scale the scroll arrows with the menu's font size.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-29 17:17:15 +02:00
Huw Davies
bd785a5ac0
user32: Don't fill the background when drawing the scroll arrows.
...
This is done, in the correct colour, in MENU_DrawPopupMenu().
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-29 17:17:15 +02:00
Huw Davies
79bdeceab4
user32: Clip painting to the items_rect.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-29 17:17:15 +02:00
Huw Davies
1bdd12f493
user32: Store the item rects as relative to the items_rect.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-29 17:17:14 +02:00
Huw Davies
bdcaae4b78
user32: Add an items rect to the header and use it to fix scrolling down.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-28 22:13:14 +02:00
Huw Davies
d4d0247f4e
user32: Simplify GetMenuItemRect().
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-28 22:12:45 +02:00
Huw Davies
c72a7219fd
user32: Add a helper to retrieve the height of the scroll arrows.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-28 22:12:16 +02:00
Huw Davies
a8344b9616
user32: Rationalize the popup menu margin calculation.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-28 22:11:33 +02:00
Huw Davies
0a36078ee1
user32: Explicitly set last error to ERROR_SUCCESS.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-27 16:54:53 +02:00
Fabian Maurer
115bbf424c
user32: Don't send WM_CHAR when a menu gets VK_ESCAPE and add tests.
...
Signed-off-by: Fabian Maurer <dark.shadow4@web.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-03 19:05:09 +01:00
Alex Henrie
68ca28a8bc
user32: Tell MENU_SuspendPopup which message to remove.
...
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-06 15:45:54 +01:00
Michael Stefaniuc
07ada9a85b
user32: Use SetRect() instead of open coding it.
...
Signed-off-by: Michael Stefaniuc <mstefani@redhat.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-19 19:59:30 +09:00
Alexandre Julliard
83ed0a636b
user32: Setup system menu even when used through TrackPopupMenu.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-08 16:12:26 +09:00
Vincent Povirk
3cc6a1acc3
Revert "user32: Set capture earlier on popup menus.".
...
This reverts commit a9bff001a1
.
We can't set capture this early because the popup menu isn't visible
yet. To my knowledge, no applications depend on this, nor did the
next patch in the series. It's only a theoretical issue revealed by
a message test.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-20 16:54:47 +09:00
Vincent Povirk
906db769f1
user32: Skip menu loop for empty popup menus.
...
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-17 19:44:02 +09:00
Vincent Povirk
a9bff001a1
user32: Set capture earlier on popup menus.
...
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-17 19:44:02 +09:00
Alexandre Julliard
c82626a4c1
user32: Add workaround for removed SC_TASKLIST system menu item.
...
Word 95 assumes that the item exists.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-19 20:55:15 +09:00
Dmitry Timoshkov
c0de7f8641
user32: Menu item with a "magic" bitmap should not have MFT_BITMAP type set.
...
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-18 13:07:15 +09:00
Alex Henrie
5b53c0b88b
user32: Avoid double initialization.
...
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-06 21:59:08 +09:00
Huw Davies
e79684874d
user32: Restore the dc's colours after sending WM_DRAWITEM.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-02 23:02:24 +09:00
Huw Davies
9650f21b2d
user32: Actually use the menu's background brush.
2015-01-16 16:52:40 +01:00
Piotr Caban
dcdf4dbf15
user32: Return early on child windows in DrawMenuBar.
2014-09-23 18:48:26 +02:00
Michael Müller
997e197f23
user32: Also set cch member in GetMenuItemInfo when passing a null pointer.
2014-09-09 11:11:27 +02:00
Akihiro Sagawa
cb2b15921d
user32: Don't close a popup menu when clicking a sub-menu parent item twice.
2014-06-13 15:57:25 +02:00
Andrew Eikum
d7f827254e
user32: Remove unused internal menu messages.
2014-05-19 18:55:55 +02:00
Dmitry Timoshkov
c6dbb33e19
user32: When converting from MF_ flags to MENUITEMINFO ignore MF_POPUP if id is not a menu.
2014-04-21 11:09:52 +02:00
Vincent Povirk
68f2b878d2
user32: Allow EndMenu() calls from WM_ENTERMENULOOP.
2014-04-18 14:36:04 +02:00
Piotr Caban
55ff066103
user32: Don't fail on windows without menu bar in DrawMenuBar.
2014-04-10 16:51:09 +02:00