Win32 IME: Remove the get_window_position util function

It always returns (0, 0)
This commit is contained in:
Luca Bacci 2022-02-21 12:32:20 +01:00
parent f41fe7b8e4
commit 56fd3af4d0

View File

@ -124,9 +124,6 @@ gtk_im_context_ime_message_filter (GdkWin32Display *display,
MSG *msg, MSG *msg,
int *ret_valp, int *ret_valp,
gpointer data); gpointer data);
static void get_window_position (GdkSurface *win,
int *x,
int *y);
G_DEFINE_TYPE_WITH_CODE (GtkIMContextIME, gtk_im_context_ime, GTK_TYPE_IM_CONTEXT, G_DEFINE_TYPE_WITH_CODE (GtkIMContextIME, gtk_im_context_ime, GTK_TYPE_IM_CONTEXT,
gtk_im_module_ensure_extension_point (); gtk_im_module_ensure_extension_point ();
@ -766,7 +763,6 @@ static void
gtk_im_context_ime_set_cursor_location (GtkIMContext *context, gtk_im_context_ime_set_cursor_location (GtkIMContext *context,
GdkRectangle *area) GdkRectangle *area)
{ {
int wx = 0, wy = 0;
GtkIMContextIME *context_ime; GtkIMContextIME *context_ime;
COMPOSITIONFORM cf; COMPOSITIONFORM cf;
HWND hwnd; HWND hwnd;
@ -788,10 +784,10 @@ gtk_im_context_ime_set_cursor_location (GtkIMContext *context,
return; return;
scale = gdk_surface_get_scale_factor (context_ime->client_surface); scale = gdk_surface_get_scale_factor (context_ime->client_surface);
get_window_position (context_ime->client_surface, &wx, &wy);
cf.dwStyle = CFS_POINT; cf.dwStyle = CFS_POINT;
cf.ptCurrentPos.x = (wx + context_ime->cursor_location.x) * scale; cf.ptCurrentPos.x = context_ime->cursor_location.x * scale;
cf.ptCurrentPos.y = (wy + context_ime->cursor_location.y) * scale; cf.ptCurrentPos.y = context_ime->cursor_location.y * scale;
ImmSetCompositionWindow (himc, &cf); ImmSetCompositionWindow (himc, &cf);
ImmReleaseContext (hwnd, himc); ImmReleaseContext (hwnd, himc);
@ -979,7 +975,6 @@ gtk_im_context_ime_message_filter (GdkWin32Display *display,
CANDIDATEFORM cf; CANDIDATEFORM cf;
int scale = gdk_surface_get_scale_factor (context_ime->client_surface); int scale = gdk_surface_get_scale_factor (context_ime->client_surface);
get_window_position (context_ime->client_surface, &wx, &wy);
/* FIXME! */ /* FIXME! */
{ {
HWND impl_hwnd; HWND impl_hwnd;
@ -997,9 +992,8 @@ gtk_im_context_ime_message_filter (GdkWin32Display *display,
} }
cf.dwIndex = 0; cf.dwIndex = 0;
cf.dwStyle = CFS_CANDIDATEPOS; cf.dwStyle = CFS_CANDIDATEPOS;
cf.ptCurrentPos.x = (wx + context_ime->cursor_location.x) * scale; cf.ptCurrentPos.x = context_ime->cursor_location.x * scale;
cf.ptCurrentPos.y = (wy + context_ime->cursor_location.y cf.ptCurrentPos.y = (context_ime->cursor_location.y + context_ime->cursor_location.height) * scale;
+ context_ime->cursor_location.height) * scale;
ImmSetCandidateWindow (himc, &cf); ImmSetCandidateWindow (himc, &cf);
if ((msg->lParam & GCS_COMPSTR)) if ((msg->lParam & GCS_COMPSTR))
@ -1069,30 +1063,3 @@ gtk_im_context_ime_message_filter (GdkWin32Display *display,
ImmReleaseContext (hwnd, himc); ImmReleaseContext (hwnd, himc);
return retval; return retval;
} }
/*
* x and y must be initialized to 0.
*/
static void
get_window_position (GdkSurface *surface, int *x, int *y)
{
GdkSurface *parent, *toplevel;
g_return_if_fail (GDK_IS_SURFACE (surface));
g_return_if_fail (x && y);
if (GDK_IS_POPUP (surface))
{
parent = gdk_popup_get_parent (GDK_POPUP (surface));
toplevel = surface;
}
else
{
parent = NULL;
toplevel = surface;
}
if (parent && parent != toplevel)
get_window_position (parent, x, y);
}