Wine-Devel
By thread
wine-devel@list.winehq.org
By month
Messages by month
- ----- 2026 -----
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2003 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2002 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2001 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
June 2022
- 68 participants
- 3274 messages
[PATCH 03/11] winemac: Use unixlib interface for query_drag_operation.
by Jacek Caban
From: Jacek Caban <jacek(a)codeweavers.com>
Signed-off-by: Jacek Caban <jacek(a)codeweavers.com>
---
dlls/winemac.drv/dllmain.c | 1 +
dlls/winemac.drv/dragdrop.c | 72 ++++++++-----------------------------
dlls/winemac.drv/event.c | 47 ++++++++++++++++++++++++
dlls/winemac.drv/macdrv.h | 3 +-
dlls/winemac.drv/unixlib.h | 13 ++++++-
5 files changed, 75 insertions(+), 61 deletions(-)
diff --git a/dlls/winemac.drv/dllmain.c b/dlls/winemac.drv/dllmain.c
index 69bc02e46c2..4bedb2aaf61 100644
--- a/dlls/winemac.drv/dllmain.c
+++ b/dlls/winemac.drv/dllmain.c
@@ -29,6 +29,7 @@ HMODULE macdrv_module = 0;
typedef NTSTATUS (WINAPI *kernel_callback)(void *params, ULONG size);
static const kernel_callback kernel_callbacks[] =
{
+ macdrv_dnd_query_drag,
macdrv_dnd_query_drop,
macdrv_dnd_query_exited,
macdrv_ime_query_char_rect,
diff --git a/dlls/winemac.drv/dragdrop.c b/dlls/winemac.drv/dragdrop.c
index a57caab423b..c3172a29467 100644
--- a/dlls/winemac.drv/dragdrop.c
+++ b/dlls/winemac.drv/dragdrop.c
@@ -325,37 +325,6 @@ static IDataObject *create_data_object_for_pasteboard(CFTypeRef pasteboard)
}
-/**************************************************************************
- * drag_operations_to_dropeffects
- */
-static DWORD drag_operations_to_dropeffects(uint32_t ops)
-{
- DWORD effects = DROPEFFECT_NONE;
- if (ops & (DRAG_OP_COPY | DRAG_OP_GENERIC))
- effects |= DROPEFFECT_COPY;
- if (ops & DRAG_OP_MOVE)
- effects |= DROPEFFECT_MOVE;
- if (ops & (DRAG_OP_LINK | DRAG_OP_GENERIC))
- effects |= DROPEFFECT_LINK;
- return effects;
-}
-
-
-/**************************************************************************
- * dropeffect_to_drag_operation
- */
-static uint32_t dropeffect_to_drag_operation(DWORD effect, uint32_t ops)
-{
- if (effect & DROPEFFECT_LINK && ops & DRAG_OP_LINK) return DRAG_OP_LINK;
- if (effect & DROPEFFECT_COPY && ops & DRAG_OP_COPY) return DRAG_OP_COPY;
- if (effect & DROPEFFECT_MOVE && ops & DRAG_OP_MOVE) return DRAG_OP_MOVE;
- if (effect & DROPEFFECT_LINK && ops & DRAG_OP_GENERIC) return DRAG_OP_GENERIC;
- if (effect & DROPEFFECT_COPY && ops & DRAG_OP_GENERIC) return DRAG_OP_GENERIC;
-
- return DRAG_OP_NONE;
-}
-
-
/* Based on functions in dlls/ole32/ole2.c */
static HANDLE get_droptarget_local_handle(HWND hwnd)
{
@@ -547,31 +516,22 @@ NTSTATUS WINAPI macdrv_dnd_query_exited(void *arg, ULONG size)
/**************************************************************************
* query_drag_operation
*/
-BOOL query_drag_operation(macdrv_query* query)
+NTSTATUS WINAPI macdrv_dnd_query_drag(void *arg, ULONG size)
{
+ struct dnd_query_drag_params *params = arg;
+ HWND hwnd = params->hwnd;
BOOL ret = FALSE;
- HWND hwnd = macdrv_get_window_hwnd(query->window);
- struct macdrv_win_data *data = get_win_data(hwnd);
POINT pt;
DWORD effect;
IDropTarget *droptarget;
HRESULT hr;
- TRACE("win %p/%p x,y %d,%d offered_ops 0x%x pasteboard %p\n", hwnd, query->window,
- query->drag_operation.x, query->drag_operation.y, query->drag_operation.offered_ops,
- query->drag_operation.pasteboard);
-
- if (!data)
- {
- WARN("no win_data for win %p/%p\n", hwnd, query->window);
- return FALSE;
- }
-
- pt.x = query->drag_operation.x + data->whole_rect.left;
- pt.y = query->drag_operation.y + data->whole_rect.top;
- release_win_data(data);
+ TRACE("win %p x,y %d,%d effect %x pasteboard %s\n", hwnd, params->x, params->y,
+ params->effect, wine_dbgstr_longlong(params->handle));
- effect = drag_operations_to_dropeffects(query->drag_operation.offered_ops);
+ pt.x = params->x;
+ pt.y = params->y;
+ effect = params->effect;
/* Instead of the top-level window we got in the query, start with the deepest
child under the cursor. Travel up the hierarchy looking for a window that
@@ -604,16 +564,14 @@ BOOL query_drag_operation(macdrv_query* query)
POINTL pointl = { pt.x, pt.y };
if (!active_data_object)
- active_data_object = create_data_object_for_pasteboard(query->drag_operation.pasteboard);
+ active_data_object = create_data_object_for_pasteboard((void *)(UINT_PTR)params->handle);
TRACE("DragEnter hwnd %p droptarget %p\n", hwnd, droptarget);
hr = IDropTarget_DragEnter(droptarget, active_data_object, MK_LBUTTON,
pointl, &effect);
if (SUCCEEDED(hr))
{
- query->drag_operation.accepted_op = dropeffect_to_drag_operation(effect,
- query->drag_operation.offered_ops);
- TRACE(" effect %d accepted op %d\n", effect, query->drag_operation.accepted_op);
+ TRACE(" effect %d\n", effect);
ret = TRUE;
}
else
@@ -629,9 +587,7 @@ BOOL query_drag_operation(macdrv_query* query)
hr = IDropTarget_DragOver(droptarget, MK_LBUTTON, pointl, &effect);
if (SUCCEEDED(hr))
{
- query->drag_operation.accepted_op = dropeffect_to_drag_operation(effect,
- query->drag_operation.offered_ops);
- TRACE(" effect %d accepted op %d\n", effect, query->drag_operation.accepted_op);
+ TRACE(" effect %d\n", effect);
ret = TRUE;
}
else
@@ -649,7 +605,7 @@ BOOL query_drag_operation(macdrv_query* query)
FORMATETC formatEtc;
if (!active_data_object)
- active_data_object = create_data_object_for_pasteboard(query->drag_operation.pasteboard);
+ active_data_object = create_data_object_for_pasteboard((void *)(UINT_PTR)params->handle);
formatEtc.cfFormat = CF_HDROP;
formatEtc.ptd = NULL;
@@ -659,12 +615,12 @@ BOOL query_drag_operation(macdrv_query* query)
if (SUCCEEDED(IDataObject_QueryGetData(active_data_object, &formatEtc)))
{
TRACE("WS_EX_ACCEPTFILES hwnd %p\n", hwnd);
- query->drag_operation.accepted_op = DRAG_OP_GENERIC;
+ effect = DROPEFFECT_COPY | DROPEFFECT_LINK;
ret = TRUE;
}
}
}
TRACE(" -> %s\n", ret ? "TRUE" : "FALSE");
- return ret;
+ return ret ? effect : 0;
}
diff --git a/dlls/winemac.drv/event.c b/dlls/winemac.drv/event.c
index 8432218d8d1..ce7f06b07dd 100644
--- a/dlls/winemac.drv/event.c
+++ b/dlls/winemac.drv/event.c
@@ -195,6 +195,21 @@ static DWORD drag_operations_to_dropeffects(uint32_t ops)
}
+/**************************************************************************
+ * dropeffect_to_drag_operation
+ */
+static uint32_t dropeffect_to_drag_operation(DWORD effect, uint32_t ops)
+{
+ if (effect & DROPEFFECT_LINK && ops & DRAG_OP_LINK) return DRAG_OP_LINK;
+ if (effect & DROPEFFECT_COPY && ops & DRAG_OP_COPY) return DRAG_OP_COPY;
+ if (effect & DROPEFFECT_MOVE && ops & DRAG_OP_MOVE) return DRAG_OP_MOVE;
+ if (effect & DROPEFFECT_LINK && ops & DRAG_OP_GENERIC) return DRAG_OP_GENERIC;
+ if (effect & DROPEFFECT_COPY && ops & DRAG_OP_GENERIC) return DRAG_OP_GENERIC;
+
+ return DRAG_OP_NONE;
+}
+
+
/**************************************************************************
* query_drag_drop
*/
@@ -230,6 +245,38 @@ static BOOL query_drag_exited(macdrv_query *query)
}
+/**************************************************************************
+ * query_drag_operation
+ */
+static BOOL query_drag_operation(macdrv_query *query)
+{
+ struct dnd_query_drag_params params;
+ HWND hwnd = macdrv_get_window_hwnd(query->window);
+ struct macdrv_win_data *data = get_win_data(hwnd);
+ DWORD effect;
+
+ if (!data)
+ {
+ WARN("no win_data for win %p/%p\n", hwnd, query->window);
+ return FALSE;
+ }
+
+ params.hwnd = hwnd;
+ params.effect = drag_operations_to_dropeffects(query->drag_operation.offered_ops);
+ params.x = query->drag_operation.x + data->whole_rect.left;
+ params.y = query->drag_operation.y + data->whole_rect.top;
+ params.handle = (UINT_PTR)query->drag_operation.pasteboard;
+ release_win_data(data);
+
+ effect = macdrv_client_func(client_func_dnd_query_drag, ¶ms, sizeof(params));
+ if (!effect) return FALSE;
+
+ query->drag_operation.accepted_op = dropeffect_to_drag_operation(effect,
+ query->drag_operation.offered_ops);
+ return TRUE;
+}
+
+
/**************************************************************************
* query_ime_char_rect
*/
diff --git a/dlls/winemac.drv/macdrv.h b/dlls/winemac.drv/macdrv.h
index a0ae0225423..ce71baa5735 100644
--- a/dlls/winemac.drv/macdrv.h
+++ b/dlls/winemac.drv/macdrv.h
@@ -259,8 +259,6 @@ extern HANDLE macdrv_get_pasteboard_data(CFTypeRef pasteboard, UINT desired_form
extern BOOL macdrv_pasteboard_has_format(CFTypeRef pasteboard, UINT desired_format) DECLSPEC_HIDDEN;
extern UINT* macdrv_get_pasteboard_formats(CFTypeRef pasteboard, UINT* num_formats) DECLSPEC_HIDDEN;
-extern BOOL query_drag_operation(macdrv_query* query) DECLSPEC_HIDDEN;
-
extern struct opengl_funcs *macdrv_wine_get_wgl_driver(UINT version) DECLSPEC_HIDDEN;
extern const struct vulkan_funcs *macdrv_wine_get_vulkan_driver(UINT version) DECLSPEC_HIDDEN;
extern void sync_gl_view(struct macdrv_win_data* data, const RECT* old_whole_rect, const RECT* old_client_rect) DECLSPEC_HIDDEN;
@@ -295,6 +293,7 @@ extern NTSTATUS macdrv_notify_icon(void *arg) DECLSPEC_HIDDEN;
extern NTSTATUS macdrv_client_func(enum macdrv_client_funcs func, const void *params,
ULONG size) DECLSPEC_HIDDEN;
+extern NTSTATUS WINAPI macdrv_dnd_query_drag(void *arg, ULONG size) DECLSPEC_HIDDEN;
extern NTSTATUS WINAPI macdrv_dnd_query_drop(void *arg, ULONG size) DECLSPEC_HIDDEN;
extern NTSTATUS WINAPI macdrv_dnd_query_exited(void *arg, ULONG size) DECLSPEC_HIDDEN;
diff --git a/dlls/winemac.drv/unixlib.h b/dlls/winemac.drv/unixlib.h
index a858b29baaa..f4a8b7982f5 100644
--- a/dlls/winemac.drv/unixlib.h
+++ b/dlls/winemac.drv/unixlib.h
@@ -67,13 +67,24 @@ struct notify_icon_params
/* driver client callbacks exposed with KernelCallbackTable interface */
enum macdrv_client_funcs
{
- client_func_dnd_query_drop = NtUserDriverCallbackFirst,
+ client_func_dnd_query_drag = NtUserDriverCallbackFirst,
+ client_func_dnd_query_drop,
client_func_dnd_query_exited,
client_func_ime_query_char_rect,
client_func_ime_set_text,
client_func_last
};
+/* macdrv_dnd_query_drag params */
+struct dnd_query_drag_params
+{
+ HWND hwnd;
+ UINT32 effect;
+ INT32 x;
+ INT32 y;
+ UINT64 handle;
+};
+
/* macdrv_dnd_query_drop params */
struct dnd_query_drop_params
{
--
GitLab
https://gitlab.winehq.org/wine/wine/-/merge_requests/177
June 3, 2022
[PATCH 02/11] winemac: Use unixlib interface for query_drag_drop.
by Jacek Caban
From: Jacek Caban <jacek(a)codeweavers.com>
Signed-off-by: Jacek Caban <jacek(a)codeweavers.com>
---
dlls/winemac.drv/dllmain.c | 1 +
dlls/winemac.drv/dragdrop.c | 32 +++++++++++-----------------
dlls/winemac.drv/event.c | 42 ++++++++++++++++++++++++++++++++++++-
dlls/winemac.drv/macdrv.h | 2 +-
dlls/winemac.drv/unixlib.h | 13 +++++++++++-
5 files changed, 67 insertions(+), 23 deletions(-)
diff --git a/dlls/winemac.drv/dllmain.c b/dlls/winemac.drv/dllmain.c
index 493062521ad..69bc02e46c2 100644
--- a/dlls/winemac.drv/dllmain.c
+++ b/dlls/winemac.drv/dllmain.c
@@ -29,6 +29,7 @@ HMODULE macdrv_module = 0;
typedef NTSTATUS (WINAPI *kernel_callback)(void *params, ULONG size);
static const kernel_callback kernel_callbacks[] =
{
+ macdrv_dnd_query_drop,
macdrv_dnd_query_exited,
macdrv_ime_query_char_rect,
macdrv_ime_set_text,
diff --git a/dlls/winemac.drv/dragdrop.c b/dlls/winemac.drv/dragdrop.c
index 19a5c4794b5..a57caab423b 100644
--- a/dlls/winemac.drv/dragdrop.c
+++ b/dlls/winemac.drv/dragdrop.c
@@ -427,40 +427,32 @@ static IDropTarget* get_droptarget_pointer(HWND hwnd)
/**************************************************************************
- * query_drag_drop
+ * macdrv_dnd_query_drop
*/
-BOOL query_drag_drop(macdrv_query* query)
+NTSTATUS WINAPI macdrv_dnd_query_drop(void *arg, ULONG size)
{
+ struct dnd_query_drop_params *params = arg;
+ IDropTarget *droptarget;
BOOL ret = FALSE;
- HWND hwnd = macdrv_get_window_hwnd(query->window);
- struct macdrv_win_data *data = get_win_data(hwnd);
POINT pt;
- IDropTarget *droptarget;
-
- TRACE("win %p/%p x,y %d,%d op 0x%08x pasteboard %p\n", hwnd, query->window,
- query->drag_drop.x, query->drag_drop.y, query->drag_drop.op, query->drag_drop.pasteboard);
- if (!data)
- {
- WARN("no win_data for win %p/%p\n", hwnd, query->window);
- return FALSE;
- }
+ TRACE("win %p x,y %d,%d effect %x pasteboard %s\n", params->hwnd, params->x, params->y,
+ params->effect, wine_dbgstr_longlong(params->handle));
- pt.x = query->drag_drop.x + data->whole_rect.left;
- pt.y = query->drag_drop.y + data->whole_rect.top;
- release_win_data(data);
+ pt.x = params->x;
+ pt.y = params->y;
droptarget = get_droptarget_pointer(last_droptarget_hwnd);
if (droptarget)
{
HRESULT hr;
POINTL pointl;
- DWORD effect = drag_operations_to_dropeffects(query->drag_drop.op);
+ DWORD effect = params->effect;
if (!active_data_object)
{
WARN("shouldn't happen: no active IDataObject\n");
- active_data_object = create_data_object_for_pasteboard(query->drag_drop.pasteboard);
+ active_data_object = create_data_object_for_pasteboard((void *)(UINT_PTR)params->handle);
}
pointl.x = pt.x;
@@ -484,12 +476,12 @@ BOOL query_drag_drop(macdrv_query* query)
}
else
{
- hwnd = WindowFromPoint(pt);
+ HWND hwnd = WindowFromPoint(pt);
while (hwnd && !(GetWindowLongW(hwnd, GWL_EXSTYLE) & WS_EX_ACCEPTFILES))
hwnd = GetParent(hwnd);
if (hwnd)
{
- HDROP hdrop = macdrv_get_pasteboard_data(query->drag_drop.pasteboard, CF_HDROP);
+ HDROP hdrop = macdrv_get_pasteboard_data((void *)(UINT_PTR)params->handle, CF_HDROP);
DROPFILES *dropfiles = GlobalLock(hdrop);
if (dropfiles)
{
diff --git a/dlls/winemac.drv/event.c b/dlls/winemac.drv/event.c
index aed8f94076a..8432218d8d1 100644
--- a/dlls/winemac.drv/event.c
+++ b/dlls/winemac.drv/event.c
@@ -23,7 +23,7 @@
#include "config.h"
#include "macdrv.h"
-#include "winuser.h"
+#include "oleidl.h"
WINE_DEFAULT_DEBUG_CHANNEL(event);
WINE_DECLARE_DEBUG_CHANNEL(imm);
@@ -179,6 +179,46 @@ static void macdrv_sent_text_input(const macdrv_event *event)
}
+/**************************************************************************
+ * drag_operations_to_dropeffects
+ */
+static DWORD drag_operations_to_dropeffects(uint32_t ops)
+{
+ DWORD effects = 0;
+ if (ops & (DRAG_OP_COPY | DRAG_OP_GENERIC))
+ effects |= DROPEFFECT_COPY;
+ if (ops & DRAG_OP_MOVE)
+ effects |= DROPEFFECT_MOVE;
+ if (ops & (DRAG_OP_LINK | DRAG_OP_GENERIC))
+ effects |= DROPEFFECT_LINK;
+ return effects;
+}
+
+
+/**************************************************************************
+ * query_drag_drop
+ */
+static BOOL query_drag_drop(macdrv_query *query)
+{
+ HWND hwnd = macdrv_get_window_hwnd(query->window);
+ struct macdrv_win_data *data = get_win_data(hwnd);
+ struct dnd_query_drop_params params;
+
+ if (!data)
+ {
+ WARN("no win_data for win %p/%p\n", hwnd, query->window);
+ return FALSE;
+ }
+
+ params.hwnd = hwnd;
+ params.effect = drag_operations_to_dropeffects(query->drag_drop.op);
+ params.x = query->drag_drop.x + data->whole_rect.left;
+ params.y = query->drag_drop.y + data->whole_rect.top;
+ params.handle = (UINT_PTR)query->drag_drop.pasteboard;
+ release_win_data(data);
+ return macdrv_client_func(client_func_dnd_query_drop, ¶ms, sizeof(params));
+}
+
/**************************************************************************
* query_drag_exited
*/
diff --git a/dlls/winemac.drv/macdrv.h b/dlls/winemac.drv/macdrv.h
index 401ebab3bcc..a0ae0225423 100644
--- a/dlls/winemac.drv/macdrv.h
+++ b/dlls/winemac.drv/macdrv.h
@@ -260,7 +260,6 @@ extern BOOL macdrv_pasteboard_has_format(CFTypeRef pasteboard, UINT desired_form
extern UINT* macdrv_get_pasteboard_formats(CFTypeRef pasteboard, UINT* num_formats) DECLSPEC_HIDDEN;
extern BOOL query_drag_operation(macdrv_query* query) DECLSPEC_HIDDEN;
-extern BOOL query_drag_drop(macdrv_query* query) DECLSPEC_HIDDEN;
extern struct opengl_funcs *macdrv_wine_get_wgl_driver(UINT version) DECLSPEC_HIDDEN;
extern const struct vulkan_funcs *macdrv_wine_get_vulkan_driver(UINT version) DECLSPEC_HIDDEN;
@@ -296,6 +295,7 @@ extern NTSTATUS macdrv_notify_icon(void *arg) DECLSPEC_HIDDEN;
extern NTSTATUS macdrv_client_func(enum macdrv_client_funcs func, const void *params,
ULONG size) DECLSPEC_HIDDEN;
+extern NTSTATUS WINAPI macdrv_dnd_query_drop(void *arg, ULONG size) DECLSPEC_HIDDEN;
extern NTSTATUS WINAPI macdrv_dnd_query_exited(void *arg, ULONG size) DECLSPEC_HIDDEN;
/* user helpers */
diff --git a/dlls/winemac.drv/unixlib.h b/dlls/winemac.drv/unixlib.h
index 067f46c8f5d..a858b29baaa 100644
--- a/dlls/winemac.drv/unixlib.h
+++ b/dlls/winemac.drv/unixlib.h
@@ -67,12 +67,23 @@ struct notify_icon_params
/* driver client callbacks exposed with KernelCallbackTable interface */
enum macdrv_client_funcs
{
- client_func_dnd_query_exited = NtUserDriverCallbackFirst,
+ client_func_dnd_query_drop = NtUserDriverCallbackFirst,
+ client_func_dnd_query_exited,
client_func_ime_query_char_rect,
client_func_ime_set_text,
client_func_last
};
+/* macdrv_dnd_query_drop params */
+struct dnd_query_drop_params
+{
+ HWND hwnd;
+ UINT32 effect;
+ INT32 x;
+ INT32 y;
+ UINT64 handle;
+};
+
/* macdrv_dnd_query_exited params */
struct dnd_query_exited_params
{
--
GitLab
https://gitlab.winehq.org/wine/wine/-/merge_requests/177
June 3, 2022
[PATCH 01/11] winemac: Rename MOUSE_MOVE_RELATIVE to avoid collision with wincontypes.h.
by Jacek Caban
From: Jacek Caban <jacek(a)codeweavers.com>
Signed-off-by: Jacek Caban <jacek(a)codeweavers.com>
---
dlls/winemac.drv/cocoa_app.m | 4 ++--
dlls/winemac.drv/cocoa_event.m | 6 +++---
dlls/winemac.drv/event.c | 6 +++---
dlls/winemac.drv/macdrv_cocoa.h | 2 +-
dlls/winemac.drv/mouse.c | 4 ++--
5 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/dlls/winemac.drv/cocoa_app.m b/dlls/winemac.drv/cocoa_app.m
index b5a3059382e..b13bc678c6d 100644
--- a/dlls/winemac.drv/cocoa_app.m
+++ b/dlls/winemac.drv/cocoa_app.m
@@ -1188,7 +1188,7 @@ static NSString* WineLocalizedString(unsigned int stringID)
[eventQueuesLock lock];
for (queue in eventQueues)
{
- [queue discardEventsMatchingMask:event_mask_for_type(MOUSE_MOVED) |
+ [queue discardEventsMatchingMask:event_mask_for_type(MOUSE_MOVED_RELATIVE) |
event_mask_for_type(MOUSE_MOVED_ABSOLUTE)
forWindow:nil];
[queue resetMouseEventPositions:pos];
@@ -1444,7 +1444,7 @@ static NSString* WineLocalizedString(unsigned int stringID)
mouseMoveDeltaX += [anEvent deltaX];
mouseMoveDeltaY += [anEvent deltaY];
- event = macdrv_create_event(MOUSE_MOVED, targetWindow);
+ event = macdrv_create_event(MOUSE_MOVED_RELATIVE, targetWindow);
event->mouse_moved.x = mouseMoveDeltaX * scale;
event->mouse_moved.y = mouseMoveDeltaY * scale;
diff --git a/dlls/winemac.drv/cocoa_event.m b/dlls/winemac.drv/cocoa_event.m
index 868ce5a7813..24f69b17a0a 100644
--- a/dlls/winemac.drv/cocoa_event.m
+++ b/dlls/winemac.drv/cocoa_event.m
@@ -204,17 +204,17 @@ static const OSType WineHotKeySignature = 'Wine';
}];
[events removeObjectsAtIndexes:indexes];
- if ((event->event->type == MOUSE_MOVED ||
+ if ((event->event->type == MOUSE_MOVED_RELATIVE ||
event->event->type == MOUSE_MOVED_ABSOLUTE) &&
event->event->deliver == INT_MAX &&
(lastEvent = [events lastObject]) &&
- (lastEvent->event->type == MOUSE_MOVED ||
+ (lastEvent->event->type == MOUSE_MOVED_RELATIVE ||
lastEvent->event->type == MOUSE_MOVED_ABSOLUTE) &&
lastEvent->event->deliver == INT_MAX &&
lastEvent->event->window == event->event->window &&
lastEvent->event->mouse_moved.drag == event->event->mouse_moved.drag)
{
- if (event->event->type == MOUSE_MOVED)
+ if (event->event->type == MOUSE_MOVED_RELATIVE)
{
lastEvent->event->mouse_moved.x += event->event->mouse_moved.x;
lastEvent->event->mouse_moved.y += event->event->mouse_moved.y;
diff --git a/dlls/winemac.drv/event.c b/dlls/winemac.drv/event.c
index 361709010c9..aed8f94076a 100644
--- a/dlls/winemac.drv/event.c
+++ b/dlls/winemac.drv/event.c
@@ -44,7 +44,7 @@ static const char *dbgstr_event(int type)
"KEYBOARD_CHANGED",
"LOST_PASTEBOARD_OWNERSHIP",
"MOUSE_BUTTON",
- "MOUSE_MOVED",
+ "MOUSE_MOVED_RELATIVE",
"MOUSE_MOVED_ABSOLUTE",
"MOUSE_SCROLL",
"QUERY_EVENT",
@@ -100,7 +100,7 @@ static macdrv_event_mask get_event_mask(DWORD mask)
if (mask & QS_MOUSEMOVE)
{
- event_mask |= event_mask_for_type(MOUSE_MOVED);
+ event_mask |= event_mask_for_type(MOUSE_MOVED_RELATIVE);
event_mask |= event_mask_for_type(MOUSE_MOVED_ABSOLUTE);
}
@@ -325,7 +325,7 @@ void macdrv_handle_event(const macdrv_event *event)
case MOUSE_BUTTON:
macdrv_mouse_button(hwnd, event);
break;
- case MOUSE_MOVED:
+ case MOUSE_MOVED_RELATIVE:
case MOUSE_MOVED_ABSOLUTE:
macdrv_mouse_moved(hwnd, event);
break;
diff --git a/dlls/winemac.drv/macdrv_cocoa.h b/dlls/winemac.drv/macdrv_cocoa.h
index 94f9fbcfa17..27b130ca32e 100644
--- a/dlls/winemac.drv/macdrv_cocoa.h
+++ b/dlls/winemac.drv/macdrv_cocoa.h
@@ -328,7 +328,7 @@ enum {
KEYBOARD_CHANGED,
LOST_PASTEBOARD_OWNERSHIP,
MOUSE_BUTTON,
- MOUSE_MOVED,
+ MOUSE_MOVED_RELATIVE,
MOUSE_MOVED_ABSOLUTE,
MOUSE_SCROLL,
QUERY_EVENT,
diff --git a/dlls/winemac.drv/mouse.c b/dlls/winemac.drv/mouse.c
index 078b674d7c0..00ec9a36c38 100644
--- a/dlls/winemac.drv/mouse.c
+++ b/dlls/winemac.drv/mouse.c
@@ -892,14 +892,14 @@ void macdrv_mouse_button(HWND hwnd, const macdrv_event *event)
/***********************************************************************
* macdrv_mouse_moved
*
- * Handler for MOUSE_MOVED and MOUSE_MOVED_ABSOLUTE events.
+ * Handler for MOUSE_MOVED_RELATIVE and MOUSE_MOVED_ABSOLUTE events.
*/
void macdrv_mouse_moved(HWND hwnd, const macdrv_event *event)
{
UINT flags = MOUSEEVENTF_MOVE;
TRACE("win %p/%p %s (%d,%d) drag %d time %lu (%lu ticks ago)\n", hwnd, event->window,
- (event->type == MOUSE_MOVED) ? "relative" : "absolute",
+ (event->type == MOUSE_MOVED_RELATIVE) ? "relative" : "absolute",
event->mouse_moved.x, event->mouse_moved.y, event->mouse_moved.drag,
event->mouse_moved.time_ms, (NtGetTickCount() - event->mouse_moved.time_ms));
--
GitLab
https://gitlab.winehq.org/wine/wine/-/merge_requests/177
June 3, 2022
[PATCH 0/11] MR177: winemac: PE conversion
by Jacek Caban (@jacek)
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/177
June 3, 2022
Re: [PATCH 0/4] MR37: user32/tests: Fix message tests that fail on Vista, Win2003, or Win2008
by Zebediah Figura
On 6/2/22 18:37, Alex Henrie (@alexhenrie) wrote:
> Hi Rémi, thanks for the feedback. I wanted to make the tests pass on Windows Server 2003 and 2008 because testbot.winehq.org still supports both of them (although they are not enabled by default). After fixing the message tests for those two versions, I was going to drop the message test workarounds for Windows 2000 and earlier, which are no longer supported by the testbot and are definitely causing more trouble than they're worth. If we really do not care about anything before Windows 7 anymore, can we remove the XP, 2003, Vista, and 2008 VMs from the testbot, or at least add a note to the testbot user interface?
>
Even if we have removed those VMs from regular rotation, I'd like to ask
that the machines remain available for manual testing if possible. Some
tests are not interesting unless run with older machines, and I've often
found the testbot useful for this.
(Along the same lines I think it's a mistake to drop older test machines
for *all* tests, but that's a discussion for another time.)
June 2, 2022
Re: Gitlab experiment status
by Alex Henrie
On Fri, May 27, 2022 at 12:03 PM Zebediah Figura
<zfigura(a)codeweavers.com> wrote:
>
> On 5/27/22 10:46, Rémi Bernon wrote:
> > On 5/27/22 17:30, Zebediah Figura (she/her) wrote:
> >> On 5/27/22 07:34, Jacek Caban wrote:
> >>> * I think that a mailing list dominated by a bot does not give an
> >>> impression welcoming for general discussion. If we're moving forward
> >>> with this, I think we should move Gitlab bridge to a separated
> >>> mailing list. We had wine-patches in the past (although in this case
> >>> it would contain review comments as well).
> >>
> >> If our intent is to switch to gitlab because mailing lists are too
> >> difficult for people to work with, then it seems we shouldn't have any
> >> discussion at all take place on a mailing list, otherwise it'll be
> >> missed by the people who are only using gitlab. Not that I know of a
> >> better way to have such discussion...
> >>
> >
> >
> > Imho the mailing list still makes sense, for general Wine development
> > discussion, though the volume may be much smaller than what we currently
> > have.
> >
> > Maybe we don't currently have many discussion either because the mailing
> > list is felt more as a place for patches, and that discussions are
> > believed to happen elsewhere, or because discussions go more often
> > unnoticed under the volume of patches.
> >
>
> I've seen this kind of thought floated several times, and I'm not sure I
> understand the reasoning. What kind of discussions or replies are you
> expecting to see that don't currently happen?
This thread itself is an example: I didn't see it until today. GitLab
allows me to subscribe to the patch discussions that I care about
rather than getting the deafening torrent of every single message. So,
for me, resurrecting the wine-patches list as the GitLab bridge while
leaving process and architecture discussion on wine-devel would be a
welcome change. Mailing lists also aren't very friendly when a
newcomer wants to reply to a message that was sent before they were
subscribed to the list, but GitLab allows newcomers to jump right in.
-Alex
June 2, 2022
Re: [PATCH 0/4] MR37: user32/tests: Fix message tests that fail on Vista, Win2003, or Win2008
by Alex Henrie (@alexhenrie)
Hi Rémi, thanks for the feedback. I wanted to make the tests pass on Windows Server 2003 and 2008 because testbot.winehq.org still supports both of them (although they are not enabled by default). After fixing the message tests for those two versions, I was going to drop the message test workarounds for Windows 2000 and earlier, which are no longer supported by the testbot and are definitely causing more trouble than they're worth. If we really do not care about anything before Windows 7 anymore, can we remove the XP, 2003, Vista, and 2008 VMs from the testbot, or at least add a note to the testbot user interface?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/37#note_1546
June 2, 2022
[PATCH] joy.cpl: Resize text boxes
by Floris Renaud
Some translations need more space
Signed-off-by: Floris Renaud <jkfloris(a)dds.nl>
---
dlls/joy.cpl/joy.rc | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/dlls/joy.cpl/joy.rc b/dlls/joy.cpl/joy.rc
index c1d8380af37..6c4bb0053ae 100644
--- a/dlls/joy.cpl/joy.rc
+++ b/dlls/joy.cpl/joy.rc
@@ -40,11 +40,11 @@ FONT 8, "Ms Shell Dlg"
PUSHBUTTON "&Reset", IDC_BUTTONRESET, 200, 40, 60, 15
PUSHBUTTON "&Enable", IDC_BUTTONENABLE, 200, 190, 60, 15
PUSHBUTTON "&Override", IDC_BUTTONOVERRIDE, 200, 100, 60, 15
- LTEXT "Connected", IDC_STATIC, 10, 10, 100, 10
+ LTEXT "Connected", IDC_STATIC, 10, 10, 180, 10
LISTBOX IDC_JOYSTICKLIST, 10, 20, 180, 70, WS_TABSTOP | WS_VSCROLL | LBS_NOTIFY
- LTEXT "Connected (xinput device)", IDC_STATIC, 10, 90, 100, 10
+ LTEXT "Connected (xinput device)", IDC_STATIC, 10, 90, 180, 10
LISTBOX IDC_XINPUTLIST, 10, 100, 180, 70, WS_TABSTOP | WS_VSCROLL | LBS_NOTIFY
- LTEXT "Disabled", IDC_STATIC, 10, 180, 100, 10
+ LTEXT "Disabled", IDC_STATIC, 10, 180, 180, 10
LISTBOX IDC_DISABLEDLIST, 10, 190, 180, 70, WS_TABSTOP | WS_VSCROLL | LBS_NOTIFY
LTEXT "After disabling or enabling a device, the connected joysticks won't be updated here until you restart this applet.", IDC_STATIC, 10, 270, 200, 25
}
--
2.36.1
June 2, 2022
Re: [PATCH v4 0/5] MR139: winegstreamer: Implement video plane alignment for the H264 decoder. - approved
by Alexandre Julliard (@julliard)
This merge request was approved by Alexandre Julliard.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/139
June 2, 2022
Re: [PATCH v2 0/9] MR176: windows.media.speech: Bring synthesizer.c more in line with the rest of the Dll. - approved
by Alexandre Julliard (@julliard)
This merge request was approved by Alexandre Julliard.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/176
June 2, 2022