Em 11-03-2011 09:47, Rui Miguel Silva Seabra escreveu:
Em 11-03-2011 04:02, Christopher Michael escreveu:
On 03/10/2011 06:49 PM, Rui Miguel Silva Seabra wrote:
Hi,
I'm completely unsure of this patch and haven't had the change of
testing it.
The desired behavior is to have a shit key that will alternate between
shift, capslock and then normal state.
This would allow a caps lock in the Default.kbd without adding another
virtual key.
I'm thinking of adding other special kinds of keys which will do things
like "change layout to keyboard type fubar" (rather than just sliding up
on the keyboard).
Specially to dh, am I going in the right direction with this patch?
Rui
1) Thanks for the patch :)
2) I'm currently away from home with very limited 'net access (if any @
all sometimes) and don't have my comp with me, so I can't apply this and
test it (yet).
I should be back 'online' (hopefully) Saturday night/Sunday (monday @
the latest). I'll have a look @ this patch then.
Thanks,
Please look at this patch instead, as it has a bit operation bug (in my
changes) fixed.
Rui
My lil'bernie gave a few minutes to test at least compilation, THIS
attached version at least compiles.
Rui
Index: src/modules/illume-keyboard/e_kbd_int.c
===================================================================
--- src/modules/illume-keyboard/e_kbd_int.c (revision 57681)
+++ src/modules/illume-keyboard/e_kbd_int.c (working copy)
@@ -174,6 +174,8 @@
if ((ki->layout.state & CTRL) && (ky->is_ctrl)) selected = 1;
if ((ki->layout.state & ALT) && (ky->is_alt)) selected = 1;
if ((ki->layout.state & CAPSLOCK) && (ky->is_capslock)) selected = 1;
+ if ((ki->layout.state & SHIFT) && (ky->tern_shift)) selected = 1;
+ if ((ki->layout.state & CAPSLOCK) && (ky->tern_shift)) selected = 1;
if (selected)
{
if (!ky->selected)
@@ -351,6 +353,20 @@
_e_kbd_int_layout_state_update(ki);
return;
}
+ if (ky->tern_shift)
+ {
+ if (ki->layout.state & SHIFT)
+ {
+ ki->layout.state &= (~(SHIFT));
+ ki->layout.state |= CAPSLOCK;
+ }
+ else if (ki->layout.state & CAPSLOCK)
+ ki->layout.state &= (~(CAPSLOCK));
+ else
+ ki->layout.state |= SHIFT;
+ _e_kbd_int_layout_state_update(ki);
+ return;
+ }
if (ky->is_ctrl)
{
if (ki->layout.state & CTRL) ki->layout.state &= (~(CTRL));
@@ -574,6 +590,8 @@
if ((ki->layout.state & CTRL) && (ky->is_ctrl)) selected = 1;
if ((ki->layout.state & ALT) && (ky->is_alt)) selected = 1;
if ((ki->layout.state & CAPSLOCK) && (ky->is_capslock)) selected = 1;
+ if ((ki->layout.state & SHIFT) && (ky->tern_shift)) selected = 1;
+ if ((ki->layout.state & CAPSLOCK) && (ky->tern_shift)) selected = 1;
if (selected)
edje_object_signal_emit(o, "e,state,selected", "e");
if (!selected)
@@ -997,6 +1015,7 @@
st->out = eina_stringshare_add(str);
}
if (!strcmp(str, "is_shift")) ky->is_shift = 1;
+ if (!strcmp(str, "tern_shift")) ky->tern_shift = 1;
if (!strcmp(str, "is_ctrl")) ky->is_ctrl = 1;
if (!strcmp(str, "is_alt")) ky->is_alt = 1;
if (!strcmp(str, "is_capslock")) ky->is_capslock = 1;
------------------------------------------------------------------------------
Colocation vs. Managed Hosting
A question and answer guide to determining the best fit
for your organization - today and in the future.
http://p.sf.net/sfu/internap-sfd2d
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel