summaryrefslogtreecommitdiff
path: root/libxklavier/xklavier.c
diff options
context:
space:
mode:
Diffstat (limited to 'libxklavier/xklavier.c')
-rw-r--r--libxklavier/xklavier.c30
1 files changed, 13 insertions, 17 deletions
diff --git a/libxklavier/xklavier.c b/libxklavier/xklavier.c
index 3d55451..154208c 100644
--- a/libxklavier/xklavier.c
+++ b/libxklavier/xklavier.c
@@ -176,12 +176,10 @@ xkl_engine_start_listen(XklEngine * engine, guint what)
{
int i;
guchar *cntr = xkl_engine_priv(engine, listener_type_counters);
- for (i = 0; i < XKL_NUMBER_OF_LISTEN_MODES; i++, cntr++)
+ for (i = 0; i < XKLL_NUMBER_OF_LISTEN_MODES; i++, cntr++)
if (what & (1 << i))
(*cntr)++;
- xkl_engine_priv(engine, listener_type) |= what;
-
if (!
(xkl_engine_priv(engine, features) &
XKLF_REQUIRES_MANUAL_LAYOUT_MANAGEMENT)
@@ -202,12 +200,10 @@ xkl_engine_stop_listen(XklEngine * engine, guint what)
int i;
xkl_engine_pause_listen(engine);
guchar *cntr = xkl_engine_priv(engine, listener_type_counters);
- for (i = 0; i < XKL_NUMBER_OF_LISTEN_MODES; i++, cntr++) {
+ for (i = 0; i < XKLL_NUMBER_OF_LISTEN_MODES; i++, cntr++) {
int mask = 1 << i;
if (what & mask) {
- if (!--(*cntr))
- xkl_engine_priv(engine, listener_type) &=
- !mask;
+ (*cntr)--;
}
}
@@ -358,8 +354,7 @@ xkl_engine_load_window_tree(XklEngine * engine)
int revert;
gboolean retval = TRUE, have_toplevel_win;
- if (xkl_engine_priv(engine, listener_type) &
- XKLL_MANAGE_WINDOW_STATES)
+ if (xkl_engine_is_listening_for(engine, XKLL_MANAGE_WINDOW_STATES))
retval =
xkl_engine_load_subtree(engine,
xkl_engine_priv(engine,
@@ -577,8 +572,7 @@ xkl_engine_lock_group(XklEngine * engine, int group)
gint
xkl_engine_pause_listen(XklEngine * engine)
{
- xkl_debug(150, "Pause listening (listenerType: %x)\n",
- xkl_engine_priv(engine, listener_type));
+ xkl_debug(150, "Pause listening\n");
xkl_engine_ensure_vtable_inited(engine);
return xkl_engine_vcall(engine, pause_listen) (engine);
}
@@ -587,14 +581,16 @@ gint
xkl_engine_resume_listen(XklEngine * engine)
{
xkl_engine_ensure_vtable_inited(engine);
- int listener_type = xkl_engine_priv(engine, listener_type);
- xkl_debug(150, "Resume listening, listenerType: %x (%s%s%s)\n",
- listener_type,
- (listener_type & XKLL_MANAGE_WINDOW_STATES) ?
+ guchar *listener_type_counters =
+ xkl_engine_priv(engine, listener_type_counters);
+ xkl_debug(150, "Resume listening, listenerType: (%s%s%s)\n",
+ (listener_type_counters
+ [XKLL_MANAGE_WINDOW_STATES_OFFSET]) ?
"XKLL_MANAGE_WINDOW_STATES " : "",
- (listener_type & XKLL_TRACK_KEYBOARD_STATE) ?
+ (listener_type_counters
+ [XKLL_TRACK_KEYBOARD_STATE_OFFSET]) ?
"XKLL_TRACK_KEYBOARD_STATE " : "",
- (listener_type & XKLL_MANAGE_LAYOUTS) ?
+ (listener_type_counters[XKLL_MANAGE_LAYOUTS_OFFSET]) ?
"XKLL_MANAGE_LAYOUTS " : "");
if (xkl_engine_vcall(engine, resume_listen) (engine))
return 1;