Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package xcb-imdkit for openSUSE:Factory checked in at 2024-01-29 22:33:34 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/xcb-imdkit (Old) and /work/SRC/openSUSE:Factory/.xcb-imdkit.new.1815 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "xcb-imdkit" Mon Jan 29 22:33:34 2024 rev:4 rq:1142392 version:1.0.6 Changes: -------- --- /work/SRC/openSUSE:Factory/xcb-imdkit/xcb-imdkit.changes 2023-03-31 21:15:56.946503652 +0200 +++ /work/SRC/openSUSE:Factory/.xcb-imdkit.new.1815/xcb-imdkit.changes 2024-01-29 22:34:23.681126441 +0100 @@ -1,0 +2,6 @@ +Sat Jan 27 17:25:20 UTC 2024 - Dirk Müller <dmueller@suse.com> + +- update to 1.0.6: + * Try alternative way to set event mask + +------------------------------------------------------------------- Old: ---- xcb-imdkit-1.0.5.tar.xz New: ---- xcb-imdkit-1.0.6.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xcb-imdkit.spec ++++++ --- /var/tmp/diff_new_pack.RnhSu6/_old 2024-01-29 22:34:24.109141933 +0100 +++ /var/tmp/diff_new_pack.RnhSu6/_new 2024-01-29 22:34:24.109141933 +0100 @@ -1,7 +1,7 @@ # # spec file for package xcb-imdkit # -# Copyright (c) 2023 SUSE LLC +# Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,7 +18,7 @@ %define _suffix 1 Name: xcb-imdkit -Version: 1.0.5 +Version: 1.0.6 Release: 0 Summary: An implementation of xim protocol in xcb License: LGPL-2.1-only ++++++ xcb-imdkit-1.0.5.tar.xz -> xcb-imdkit-1.0.6.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xcb-imdkit-1.0.5/CMakeLists.txt new/xcb-imdkit-1.0.6/CMakeLists.txt --- old/xcb-imdkit-1.0.5/CMakeLists.txt 2023-03-11 05:01:16.642233800 +0100 +++ new/xcb-imdkit-1.0.6/CMakeLists.txt 2024-01-02 18:31:13.565625000 +0100 @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.8) -project(xcb-imdkit VERSION 1.0.5) +project(xcb-imdkit VERSION 1.0.6) find_package(ECM 0.0.11 REQUIRED NO_MODULE) set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH}) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xcb-imdkit-1.0.5/src/imdkit.c new/xcb-imdkit-1.0.6/src/imdkit.c --- old/xcb-imdkit-1.0.5/src/imdkit.c 2022-11-13 03:21:06.846635800 +0100 +++ new/xcb-imdkit-1.0.6/src/imdkit.c 2024-01-02 06:43:45.080808400 +0100 @@ -891,22 +891,19 @@ } void xcb_im_preedit_start(xcb_im_t *im, xcb_im_input_context_t *ic) { - if (im->onKeys.nKeys == 0 && im->offKeys.nKeys == 0) { + if (!_xcb_im_has_trigger_key(im)) { return; } - uint32_t sync_event_mask = im->use_sync_event ? 0 : im->event_mask; - sync_event_mask = ~sync_event_mask; - _xcb_im_set_event_mask(im, ic->client, ic->id, im->event_mask, - sync_event_mask); + _xcb_im_set_ic_event_mask(im, ic); } void xcb_im_preedit_end(xcb_im_t *im, xcb_im_input_context_t *ic) { - if (im->onKeys.nKeys == 0 && im->offKeys.nKeys == 0) { + if (!_xcb_im_has_trigger_key(im)) { return; } - _xcb_im_set_event_mask(im, ic->client, ic->id, 0, 0); + _xcb_im_send_set_event_mask(im, ic->client, ic->id, 0, 0); } void xcb_im_sync_xlib(xcb_im_t *im, xcb_im_input_context_t *ic) { @@ -1019,9 +1016,9 @@ im->free_list = client; } -void _xcb_im_set_event_mask(xcb_im_t *im, xcb_im_client_t *client, - uint32_t icid, uint32_t forward_event_mask, - uint32_t sync_mask) { +void _xcb_im_send_set_event_mask(xcb_im_t *im, xcb_im_client_t *client, + uint32_t icid, uint32_t forward_event_mask, + uint32_t sync_mask) { xcb_im_set_event_mask_fr_t frame; frame.forward_event_mask = forward_event_mask; frame.synchronous_event_mask = sync_mask; @@ -1169,6 +1166,22 @@ return false; } +void _xcb_im_set_ic_event_mask(xcb_im_t *im, xcb_im_input_context_t *ic) { + DebugLog("xcb_im_set_ic_event_mask"); + uint32_t sync_event_mask = im->use_sync_event ? 0 : im->event_mask; + sync_event_mask = ~sync_event_mask; + _xcb_im_send_set_event_mask(im, ic->client, ic->id, im->event_mask, + sync_event_mask); +} + +void _xcb_im_set_im_event_mask(xcb_im_t *im, xcb_im_client_t *client) { + DebugLog("xcb_im_set_im_event_mask"); + uint32_t sync_event_mask = im->use_sync_event ? 0 : im->event_mask; + sync_event_mask = ~sync_event_mask; + // Zero id means set im forward mask. + _xcb_im_send_set_event_mask(im, client, 0, im->event_mask, sync_event_mask); +} + void xcb_im_input_context_set_data(xcb_im_input_context_t *ic, void *data, xcb_im_free_function free_data_function) { if (ic->free_data_function) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xcb-imdkit-1.0.5/src/imdkit.h new/xcb-imdkit-1.0.6/src/imdkit.h --- old/xcb-imdkit-1.0.5/src/imdkit.h 2020-12-07 18:10:57.877028700 +0100 +++ new/xcb-imdkit-1.0.6/src/imdkit.h 2024-01-02 06:40:20.535967000 +0100 @@ -7,6 +7,7 @@ #ifndef _XCB_IMDKIT_IMDKIT_H_ #define _XCB_IMDKIT_IMDKIT_H_ +#include "xcbimdkit_export.h" #include "ximcommon.h" #include "ximproto.h" #include <stdbool.h> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xcb-imdkit-1.0.5/src/imdkit_p.h new/xcb-imdkit-1.0.6/src/imdkit_p.h --- old/xcb-imdkit-1.0.5/src/imdkit_p.h 2022-11-13 03:21:06.899969300 +0100 +++ new/xcb-imdkit-1.0.6/src/imdkit_p.h 2024-01-02 06:40:20.535967000 +0100 @@ -275,11 +275,16 @@ void _xcb_im_destroy_client(xcb_im_t *im, xcb_im_client_t *client); void _xcb_im_destroy_ic(xcb_im_t *im, xcb_im_input_context_t *ic); -void _xcb_im_set_event_mask(xcb_im_t *im, xcb_im_client_t *client, - uint32_t icid, uint32_t forward_event_mask, - uint32_t sync_mask); +void _xcb_im_send_set_event_mask(xcb_im_t *im, xcb_im_client_t *client, + uint32_t icid, uint32_t forward_event_mask, + uint32_t sync_mask); +void _xcb_im_set_ic_event_mask(xcb_im_t *im, xcb_im_input_context_t *client); +void _xcb_im_set_im_event_mask(xcb_im_t *im, xcb_im_client_t *ic); void _xcb_im_add_queue(xcb_im_t *im, xcb_im_client_t *client, uint16_t icid, const xcb_im_packet_header_fr_t *hdr, xcb_im_forward_event_fr_t *frame, uint8_t *data); void _xcb_im_process_queue(xcb_im_t *im, xcb_im_client_t *client); +static inline bool _xcb_im_has_trigger_key(xcb_im_t *im) { + return im->onKeys.nKeys || im->offKeys.nKeys; +} #endif // _XCB_IMDKIT_IMDKIT_P_H_ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xcb-imdkit-1.0.5/src/protocolhandler.c new/xcb-imdkit-1.0.6/src/protocolhandler.c --- old/xcb-imdkit-1.0.5/src/protocolhandler.c 2021-03-01 02:39:14.402083400 +0100 +++ new/xcb-imdkit-1.0.6/src/protocolhandler.c 2024-01-02 07:16:15.430445700 +0100 @@ -63,10 +63,6 @@ } xcb_im_open_fr_free(&frame); - /*endif*/ - if (im->onKeys.nKeys || im->offKeys.nKeys) { - _xcb_im_send_trigger_key(im, client); - } xcb_im_open_reply_fr_t reply_frame; reply_frame.input_method_ID = client->connect_id; @@ -76,6 +72,11 @@ reply_frame.IC_attribute_supported.items = im->icattr; _xcb_im_send_frame(im, client, reply_frame, true); + if (_xcb_im_has_trigger_key(im)) { + _xcb_im_send_trigger_key(im, client); + } else { + _xcb_im_set_im_event_mask(im, client); + } } void _xcb_im_handle_close(xcb_im_t *im, xcb_im_client_t *client, @@ -363,11 +364,8 @@ } _xcb_im_send_frame(im, client, reply_frame, true); - if (im->onKeys.nKeys == 0 && im->offKeys.nKeys == 0) { - uint32_t sync_event_mask = im->use_sync_event ? 0 : im->event_mask; - sync_event_mask = ~sync_event_mask; - _xcb_im_set_event_mask(im, client, reply_frame.input_context_ID, - im->event_mask, sync_event_mask); + if (!_xcb_im_has_trigger_key(im)) { + _xcb_im_set_ic_event_mask(im, ic); } xcb_im_create_ic_fr_free(&frame); return; @@ -602,6 +600,9 @@ break; } + if (!_xcb_im_has_trigger_key(im)) { + _xcb_im_set_ic_event_mask(im, ic); + } if (im->callback) { im->callback(im, client, ic, hdr, &frame, NULL, im->user_data); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xcb-imdkit-1.0.5/src/ximproto_p.h new/xcb-imdkit-1.0.6/src/ximproto_p.h --- old/xcb-imdkit-1.0.5/src/ximproto_p.h 2022-09-16 09:09:56.424637600 +0200 +++ new/xcb-imdkit-1.0.6/src/ximproto_p.h 2024-01-02 06:43:45.694136100 +0100 @@ -7,52 +7,51 @@ #ifndef _XCB_IMDKIT_XIMPROTO_P_H_ #define _XCB_IMDKIT_XIMPROTO_P_H_ -#define XIM_PROTO_FRAME_OPCODE(FRAME) \ - _Generic((FRAME), xcb_im_connect_reply_fr_t \ - : XCB_XIM_CONNECT_REPLY, xcb_im_open_fr_t \ - : XCB_XIM_OPEN, xcb_im_open_reply_fr_t \ - : XCB_XIM_OPEN_REPLY, xcb_im_close_fr_t \ - : XCB_XIM_CLOSE, xcb_im_close_reply_fr_t \ - : XCB_XIM_CLOSE_REPLY, xcb_im_query_extension_fr_t \ - : XCB_XIM_QUERY_EXTENSION, xcb_im_query_extension_reply_fr_t \ - : XCB_XIM_QUERY_EXTENSION_REPLY, xcb_im_encoding_negotiation_fr_t \ - : XCB_XIM_ENCODING_NEGOTIATION, \ - xcb_im_encoding_negotiation_reply_fr_t \ - : XCB_XIM_ENCODING_NEGOTIATION_REPLY, xcb_im_get_im_values_fr_t \ - : XCB_XIM_GET_IM_VALUES, xcb_im_get_im_values_reply_fr_t \ - : XCB_XIM_GET_IM_VALUES_REPLY, xcb_im_set_event_mask_fr_t \ - : XCB_XIM_SET_EVENT_MASK, xcb_im_create_ic_fr_t \ - : XCB_XIM_CREATE_IC, xcb_im_create_ic_reply_fr_t \ - : XCB_XIM_CREATE_IC_REPLY, xcb_im_set_ic_values_fr_t \ - : XCB_XIM_SET_IC_VALUES, xcb_im_set_ic_values_reply_fr_t \ - : XCB_XIM_SET_IC_VALUES_REPLY, xcb_im_get_ic_values_fr_t \ - : XCB_XIM_GET_IC_VALUES, xcb_im_get_ic_values_reply_fr_t \ - : XCB_XIM_GET_IC_VALUES_REPLY, xcb_im_register_triggerkeys_fr_t \ - : XCB_XIM_REGISTER_TRIGGERKEYS, xcb_im_destroy_ic_fr_t \ - : XCB_XIM_DESTROY_IC, xcb_im_destroy_ic_reply_fr_t \ - : XCB_XIM_DESTROY_IC_REPLY, xcb_im_reset_ic_fr_t \ - : XCB_XIM_RESET_IC, xcb_im_reset_ic_reply_fr_t \ - : XCB_XIM_RESET_IC_REPLY, xcb_im_trigger_notify_fr_t \ - : XCB_XIM_TRIGGER_NOTIFY, xcb_im_trigger_notify_reply_fr_t \ - : XCB_XIM_TRIGGER_NOTIFY_REPLY, xcb_im_preedit_start_fr_t \ - : XCB_XIM_PREEDIT_START, xcb_im_preedit_draw_fr_t \ - : XCB_XIM_PREEDIT_DRAW, xcb_im_preedit_caret_fr_t \ - : XCB_XIM_PREEDIT_CARET, xcb_im_preedit_done_fr_t \ - : XCB_XIM_PREEDIT_DONE, xcb_im_status_start_fr_t \ - : XCB_XIM_STATUS_START, xcb_im_status_draw_text_fr_t \ - : XCB_XIM_STATUS_DRAW, xcb_im_status_draw_bitmap_fr_t \ - : XCB_XIM_STATUS_DRAW, xcb_im_status_done_fr_t \ - : XCB_XIM_STATUS_DONE, xcb_im_commit_chars_fr_t \ - : XCB_XIM_COMMIT, xcb_im_commit_both_fr_t \ - : XCB_XIM_COMMIT, xcb_im_connect_fr_t \ - : XCB_XIM_CONNECT, xcb_im_disconnect_fr_t \ - : XCB_XIM_DISCONNECT, xcb_im_disconnect_reply_fr_t \ - : XCB_XIM_DISCONNECT_REPLY, xcb_im_set_ic_focus_fr_t \ - : XCB_XIM_SET_IC_FOCUS, xcb_im_unset_ic_focus_fr_t \ - : XCB_XIM_UNSET_IC_FOCUS, xcb_im_sync_fr_t \ - : XCB_XIM_SYNC, xcb_im_sync_reply_fr_t \ - : XCB_XIM_SYNC_REPLY, xcb_im_geometry_fr_t \ - : XCB_XIM_GEOMETRY) +#define XIM_PROTO_FRAME_OPCODE(FRAME) \ + _Generic((FRAME), \ + xcb_im_connect_reply_fr_t: XCB_XIM_CONNECT_REPLY, \ + xcb_im_open_fr_t: XCB_XIM_OPEN, \ + xcb_im_open_reply_fr_t: XCB_XIM_OPEN_REPLY, \ + xcb_im_close_fr_t: XCB_XIM_CLOSE, \ + xcb_im_close_reply_fr_t: XCB_XIM_CLOSE_REPLY, \ + xcb_im_query_extension_fr_t: XCB_XIM_QUERY_EXTENSION, \ + xcb_im_query_extension_reply_fr_t: XCB_XIM_QUERY_EXTENSION_REPLY, \ + xcb_im_encoding_negotiation_fr_t: XCB_XIM_ENCODING_NEGOTIATION, \ + xcb_im_encoding_negotiation_reply_fr_t: XCB_XIM_ENCODING_NEGOTIATION_REPLY, \ + xcb_im_get_im_values_fr_t: XCB_XIM_GET_IM_VALUES, \ + xcb_im_get_im_values_reply_fr_t: XCB_XIM_GET_IM_VALUES_REPLY, \ + xcb_im_set_event_mask_fr_t: XCB_XIM_SET_EVENT_MASK, \ + xcb_im_create_ic_fr_t: XCB_XIM_CREATE_IC, \ + xcb_im_create_ic_reply_fr_t: XCB_XIM_CREATE_IC_REPLY, \ + xcb_im_set_ic_values_fr_t: XCB_XIM_SET_IC_VALUES, \ + xcb_im_set_ic_values_reply_fr_t: XCB_XIM_SET_IC_VALUES_REPLY, \ + xcb_im_get_ic_values_fr_t: XCB_XIM_GET_IC_VALUES, \ + xcb_im_get_ic_values_reply_fr_t: XCB_XIM_GET_IC_VALUES_REPLY, \ + xcb_im_register_triggerkeys_fr_t: XCB_XIM_REGISTER_TRIGGERKEYS, \ + xcb_im_destroy_ic_fr_t: XCB_XIM_DESTROY_IC, \ + xcb_im_destroy_ic_reply_fr_t: XCB_XIM_DESTROY_IC_REPLY, \ + xcb_im_reset_ic_fr_t: XCB_XIM_RESET_IC, \ + xcb_im_reset_ic_reply_fr_t: XCB_XIM_RESET_IC_REPLY, \ + xcb_im_trigger_notify_fr_t: XCB_XIM_TRIGGER_NOTIFY, \ + xcb_im_trigger_notify_reply_fr_t: XCB_XIM_TRIGGER_NOTIFY_REPLY, \ + xcb_im_preedit_start_fr_t: XCB_XIM_PREEDIT_START, \ + xcb_im_preedit_draw_fr_t: XCB_XIM_PREEDIT_DRAW, \ + xcb_im_preedit_caret_fr_t: XCB_XIM_PREEDIT_CARET, \ + xcb_im_preedit_done_fr_t: XCB_XIM_PREEDIT_DONE, \ + xcb_im_status_start_fr_t: XCB_XIM_STATUS_START, \ + xcb_im_status_draw_text_fr_t: XCB_XIM_STATUS_DRAW, \ + xcb_im_status_draw_bitmap_fr_t: XCB_XIM_STATUS_DRAW, \ + xcb_im_status_done_fr_t: XCB_XIM_STATUS_DONE, \ + xcb_im_commit_chars_fr_t: XCB_XIM_COMMIT, \ + xcb_im_commit_both_fr_t: XCB_XIM_COMMIT, \ + xcb_im_connect_fr_t: XCB_XIM_CONNECT, \ + xcb_im_disconnect_fr_t: XCB_XIM_DISCONNECT, \ + xcb_im_disconnect_reply_fr_t: XCB_XIM_DISCONNECT_REPLY, \ + xcb_im_set_ic_focus_fr_t: XCB_XIM_SET_IC_FOCUS, \ + xcb_im_unset_ic_focus_fr_t: XCB_XIM_UNSET_IC_FOCUS, \ + xcb_im_sync_fr_t: XCB_XIM_SYNC, \ + xcb_im_sync_reply_fr_t: XCB_XIM_SYNC_REPLY, \ + xcb_im_geometry_fr_t: XCB_XIM_GEOMETRY) #define XCB_XIM_ATOM_ROTATION_SIZE 1024
participants (1)
-
Source-Sync