Stefan Dirsch
6586cebbd2
U_0002-Revert-imDefLkup-Commit-first-info-in-XimCommitInfo.patch U_0003-Revert-ximcp-Unmark-to-fabricate-key-events-with-XKe.patch * fix regressions in 1.8.8 (issues #204, #205, #206, #207, #208) OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/libX11?expand=0&rev=115
147 lines
3.5 KiB
Diff
147 lines
3.5 KiB
Diff
From 3ea9f4f769fecbbc8c5210c5833ad83ab8d9e97e Mon Sep 17 00:00:00 2001
|
|
From: Peter Hutterer <peter.hutterer@who-t.net>
|
|
Date: Fri, 5 Apr 2024 13:14:33 +1000
|
|
Subject: [PATCH 2/3] Revert "imDefLkup: Commit first info in XimCommitInfo"
|
|
|
|
This commit causes a regression, see #205, #206, #207, #208.
|
|
|
|
This reverts commit 041b5291f0956c5cda5054be2981c0d02b009a4c.
|
|
---
|
|
modules/im/ximcp/imDefLkup.c | 60 +++++++-----------------------------
|
|
1 file changed, 11 insertions(+), 49 deletions(-)
|
|
|
|
diff --git a/modules/im/ximcp/imDefLkup.c b/modules/im/ximcp/imDefLkup.c
|
|
index 6ffe6f48..5192e8c1 100644
|
|
--- a/modules/im/ximcp/imDefLkup.c
|
|
+++ b/modules/im/ximcp/imDefLkup.c
|
|
@@ -640,47 +640,22 @@ _XimRegCommitInfo(
|
|
}
|
|
|
|
static void
|
|
-_XimUnregRealCommitInfo(
|
|
- Xic ic,
|
|
- Bool reverse)
|
|
+_XimUnregCommitInfo(
|
|
+ Xic ic)
|
|
{
|
|
XimCommitInfo info;
|
|
- XimCommitInfo prev_info = NULL;
|
|
|
|
- info = ic->private.proto.commit_info;
|
|
- while (reverse && info) {
|
|
- if (!info->next)
|
|
- break;
|
|
- prev_info = info;
|
|
- info = info->next;
|
|
- }
|
|
- if (!info)
|
|
+ if (!(info = ic->private.proto.commit_info))
|
|
return;
|
|
|
|
+
|
|
Xfree(info->string);
|
|
Xfree(info->keysym);
|
|
- if (prev_info)
|
|
- prev_info->next = info->next;
|
|
- else
|
|
- ic->private.proto.commit_info = info->next;
|
|
+ ic->private.proto.commit_info = info->next;
|
|
Xfree(info);
|
|
return;
|
|
}
|
|
|
|
-static void
|
|
-_XimUnregCommitInfo(
|
|
- Xic ic)
|
|
-{
|
|
- _XimUnregRealCommitInfo(ic, False);
|
|
-}
|
|
-
|
|
-static void
|
|
-_XimUnregFirstCommitInfo(
|
|
- Xic ic)
|
|
-{
|
|
- _XimUnregRealCommitInfo(ic, True);
|
|
-}
|
|
-
|
|
void
|
|
_XimFreeCommitInfo(
|
|
Xic ic)
|
|
@@ -690,19 +665,6 @@ _XimFreeCommitInfo(
|
|
return;
|
|
}
|
|
|
|
-static XimCommitInfo
|
|
-_XimFirstCommitInfo(
|
|
- Xic ic)
|
|
-{
|
|
- XimCommitInfo info = ic->private.proto.commit_info;
|
|
- while (info) {
|
|
- if (!info->next)
|
|
- break;
|
|
- info = info->next;
|
|
- }
|
|
- return info;
|
|
-}
|
|
-
|
|
static Bool
|
|
_XimProcKeySym(
|
|
Xic ic,
|
|
@@ -1097,7 +1059,7 @@ _XimProtoMbLookupString(
|
|
state = &tmp_state;
|
|
|
|
if ((ev->type == KeyPress) && (ev->keycode == 0)) { /* Filter function */
|
|
- if (!(info = _XimFirstCommitInfo(ic))) {
|
|
+ if (!(info = ic->private.proto.commit_info)) {
|
|
*state = XLookupNone;
|
|
return 0;
|
|
}
|
|
@@ -1113,7 +1075,7 @@ _XimProtoMbLookupString(
|
|
else
|
|
*state = XLookupKeySym;
|
|
}
|
|
- _XimUnregFirstCommitInfo(ic);
|
|
+ _XimUnregCommitInfo(ic);
|
|
|
|
} else if (ev->type == KeyPress) {
|
|
ret = _XimLookupMBText(ic, ev, buffer, bytes, keysym, NULL);
|
|
@@ -1160,7 +1122,7 @@ _XimProtoWcLookupString(
|
|
state = &tmp_state;
|
|
|
|
if (ev->type == KeyPress && ev->keycode == 0) { /* Filter function */
|
|
- if (!(info = _XimFirstCommitInfo(ic))) {
|
|
+ if (!(info = ic->private.proto.commit_info)) {
|
|
*state = XLookupNone;
|
|
return 0;
|
|
}
|
|
@@ -1176,7 +1138,7 @@ _XimProtoWcLookupString(
|
|
else
|
|
*state = XLookupKeySym;
|
|
}
|
|
- _XimUnregFirstCommitInfo(ic);
|
|
+ _XimUnregCommitInfo(ic);
|
|
|
|
} else if (ev->type == KeyPress) {
|
|
ret = _XimLookupWCText(ic, ev, buffer, bytes, keysym, NULL);
|
|
@@ -1223,7 +1185,7 @@ _XimProtoUtf8LookupString(
|
|
state = &tmp_state;
|
|
|
|
if (ev->type == KeyPress && ev->keycode == 0) { /* Filter function */
|
|
- if (!(info = _XimFirstCommitInfo(ic))) {
|
|
+ if (!(info = ic->private.proto.commit_info)) {
|
|
*state = XLookupNone;
|
|
return 0;
|
|
}
|
|
@@ -1239,7 +1201,7 @@ _XimProtoUtf8LookupString(
|
|
else
|
|
*state = XLookupKeySym;
|
|
}
|
|
- _XimUnregFirstCommitInfo(ic);
|
|
+ _XimUnregCommitInfo(ic);
|
|
|
|
} else if (ev->type == KeyPress) {
|
|
ret = _XimLookupUTF8Text(ic, ev, buffer, bytes, keysym, NULL);
|
|
--
|
|
2.35.3
|
|
|