winex11-CandidateWindowPos: Partially rebase, and document the reason for disabling.

This commit is contained in:
Zebediah Figura 2022-04-12 17:45:41 -05:00
parent 94f94f3843
commit de2f0fee6f
2 changed files with 24 additions and 10 deletions

View File

@ -1,4 +1,4 @@
From 25d01cd37109d7d28d001563b6baca6fe8d9042f Mon Sep 17 00:00:00 2001
From e7629ec320dcb35ad70e9dc31fbb0db5fb81cdc0 Mon Sep 17 00:00:00 2001
From: Felix Yan <felixonmars@gmail.com>
Date: Tue, 23 Sep 2014 23:22:17 +0800
Subject: [PATCH] winex11.drv: Update a candidate window's position with
@ -20,12 +20,13 @@ received a lot of help from Sebastian Lackner.
dlls/user32/caret.c | 3 ++
dlls/win32u/driver.c | 7 ++++
dlls/winex11.drv/init.c | 1 +
dlls/winex11.drv/x11drv.h | 1 +
dlls/winex11.drv/xim.c | 72 ++++++++++++++++++++++++++++++++++++++-
include/wine/gdi_driver.h | 2 ++
5 files changed, 84 insertions(+), 1 deletion(-)
6 files changed, 85 insertions(+), 1 deletion(-)
diff --git a/dlls/user32/caret.c b/dlls/user32/caret.c
index 8bf4962b708..52ebcb8baa9 100644
index 8bf4962b708..33954123efe 100644
--- a/dlls/user32/caret.c
+++ b/dlls/user32/caret.c
@@ -27,6 +27,7 @@
@ -85,7 +86,7 @@ index 6b6f1a64ce8..a073d05be27 100644
#undef SET_USER_FUNC
diff --git a/dlls/winex11.drv/init.c b/dlls/winex11.drv/init.c
index e5162928c07..beea28bc491 100644
index 6f24e1bf370..5c4caed9b29 100644
--- a/dlls/winex11.drv/init.c
+++ b/dlls/winex11.drv/init.c
@@ -415,6 +415,7 @@ static const struct user_driver_funcs x11drv_funcs =
@ -96,8 +97,20 @@ index e5162928c07..beea28bc491 100644
.pThreadDetach = X11DRV_ThreadDetach,
};
diff --git a/dlls/winex11.drv/x11drv.h b/dlls/winex11.drv/x11drv.h
index 2112980aab5..95a1dfdfa78 100644
--- a/dlls/winex11.drv/x11drv.h
+++ b/dlls/winex11.drv/x11drv.h
@@ -241,6 +241,7 @@ extern void X11DRV_WindowPosChanged( HWND hwnd, HWND insert_after, UINT swp_flag
struct window_surface *surface ) DECLSPEC_HIDDEN;
extern BOOL X11DRV_SystemParametersInfo( UINT action, UINT int_param, void *ptr_param,
UINT flags ) DECLSPEC_HIDDEN;
+extern void X11DRV_UpdateCandidatePos( HWND hwnd, const RECT *caret_rect ) DECLSPEC_HIDDEN;
extern void X11DRV_ThreadDetach(void) DECLSPEC_HIDDEN;
/* X11 driver internal functions */
diff --git a/dlls/winex11.drv/xim.c b/dlls/winex11.drv/xim.c
index 3994c2106cc..55132bc983e 100644
index 6adf2475de7..7a574e41e27 100644
--- a/dlls/winex11.drv/xim.c
+++ b/dlls/winex11.drv/xim.c
@@ -30,6 +30,7 @@
@ -105,10 +118,10 @@ index 3994c2106cc..55132bc983e 100644
#include "imm.h"
#include "wine/debug.h"
+#include "wine/server.h"
#include "wine/unicode.h"
WINE_DEFAULT_DEBUG_CHANNEL(xim);
@@ -456,6 +457,48 @@ static BOOL X11DRV_DestroyIC(XIC xic, XPointer p, XPointer data)
@@ -461,6 +462,48 @@ static BOOL X11DRV_DestroyIC(XIC xic, XPointer p, XPointer data)
return TRUE;
}
@ -157,7 +170,7 @@ index 3994c2106cc..55132bc983e 100644
XIC X11DRV_CreateIC(XIM xim, struct x11drv_win_data *data)
{
@@ -483,7 +526,7 @@ XIC X11DRV_CreateIC(XIM xim, struct x11drv_win_data *data)
@@ -488,7 +531,7 @@ XIC X11DRV_CreateIC(XIM xim, struct x11drv_win_data *data)
XNDestroyCallback, &destroy,
NULL);
data->xic = xic;
@ -166,7 +179,7 @@ index 3994c2106cc..55132bc983e 100644
}
/* create callbacks */
@@ -581,5 +624,32 @@ XIC X11DRV_CreateIC(XIM xim, struct x11drv_win_data *data)
@@ -586,5 +629,32 @@ XIC X11DRV_CreateIC(XIM xim, struct x11drv_win_data *data)
if (status != NULL)
XFree(status);
@ -213,5 +226,5 @@ index a63e2c3ceda..79e9f869b6e 100644
void (*pThreadDetach)(void);
};
--
2.35.1
2.34.1

View File

@ -1,2 +1,3 @@
Fixes: [30938] Update a XIM candidate position when cursor location changes
# Wait for SetCaretPos and ShowCaret to be moved to win32u.
Disabled: True