Bug#697396: more investigation

2013-01-05 Thread Josselin Jacquard
It looks like i made a mistake.
When xkl_engine_is_group_per_toplevel_window is true it means the setting
is not global but per windows. I was fooled bye the toplevel adjective,
with made me think "global".

Maybe this should be documented, that per_toplevel_window means per_app ?

Anyway, the patch is more like this now :
+if (xkl_engine_is_group_per_toplevel_window(engine) &&
!new_win_transparent) {

Bye


Bug#697396: libxklavier16: xklavier changes layouts when swithing windows with global layout enabled

2013-01-04 Thread Josselin Jacquard
Package: libxklavier16
Version: 5.2.1-1
Severity: important
Tags: l10n

The layout changes when switching windozs even with global layout enabled.
I debugged it and made the following patch



-- System Information:
Debian Release: 7.0
  APT prefers testing
  APT policy: (990, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 3.2.0-4-amd64 (SMP w/2 CPU cores)
Locale: LANG=fr_FR.utf8, LC_CTYPE=fr_FR.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages libxklavier16 depends on:
ii  libc6  2.13-37
ii  libglib2.0-0   2.33.12+really2.32.4-3
ii  libx11-6   2:1.5.0-1
ii  libxi6 2:1.6.1-1
ii  libxkbfile11:1.0.8-1
ii  libxml22.8.0+dfsg1-7
ii  x11-xkb-utils  7.7~1
ii  xkb-data   2.5.1-2.1

libxklavier16 recommends no packages.

Versions of packages libxklavier16 suggests:
ii  iso-codes  3.40-1

-- no debconf information
Description: Fix a bug that change layouts 
 Fix a bug that changes layouts when switching windows 
 with global layout enabled
Author: josselin.jacqu...@gmail.com
Origin: , 
Bug: 
Bug-: 
Forwarded: 
Applied-Upstream: 
Reviewed-by: 
Last-Update: 
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
Index: libxklavier-5.2.1/libxklavier/xklavier_evt.c
===
--- libxklavier-5.2.1.orig/libxklavier/xklavier_evt.c	2013-01-04 20:55:59.589719000 +0100
+++ libxklavier-5.2.1/libxklavier/xklavier_evt.c	2013-01-04 20:58:49.374549029 +0100
@@ -201,8 +201,8 @@
 xkl_debug(150,
 	  "Entering transparent window\n");
 
-			if (xkl_engine_is_group_per_toplevel_window(engine)
-			== !new_win_transparent) {
+			if (!xkl_engine_is_group_per_toplevel_window(engine)
+			&& !new_win_transparent) {
 /* We skip restoration only if we return to the same app window */
 gboolean do_skip = FALSE;
 if (xkl_engine_priv