qnikst / kbdd

keyboard library for per-window keyboard layout
GNU General Public License v2.0
146 stars 16 forks source link

Setting default language for prev_layout #12

Closed imposeren closed 12 years ago

imposeren commented 12 years ago

It will be great if new windows had "previous layout" set by default for some value.

This will allow to use "group ring" easier.

Maybe just seting previous language to second layout by default would be fine

qnikst commented 12 years ago

will do

imposeren commented 12 years ago

dirty hack for version 0.5:

--- a/src/perwindow.c
+++ b/src/perwindow.c
@@ -84,7 +84,7 @@ _kbdd_perwindow_get_prev(WINDOW_TYPE win)
         group = (GROUP_TYPE)((GPOINTER_TO_UINT(value)>>8) & 0xFF );
     }
     else
-        group = 0;
+        group = 1;
     return group;
 }
imposeren commented 12 years ago

this "fix" works just sometimes. And also causes unexpected behaviour

imposeren commented 12 years ago

I think this solution is better but also may have bugs:

diff --git a/src/perwindow.c b/src/perwindow.c
index 7921d58..9c5147c 100644
--- a/src/perwindow.c
+++ b/src/perwindow.c
@@ -85,6 +85,10 @@ _kbdd_perwindow_get_prev(WINDOW_TYPE win)
     }
     else
         group = 0;
+       if ( _kbdd_perwindow_get(win) == group)
+       {
+               group++;
+       }
     return group;
 }

qnikst commented 12 years ago

Thanks for you comments. But I've implemented it in different aproach.

This updates can be tested in 0.5.1

Bug will be opened until I'll fix it in 0.6

qnikst commented 12 years ago

Fixed also in 0.6