fix left/right mouse config init.

SVN revision: 69870
This commit is contained in:
Carsten Haitzler 2012-04-02 20:30:01 +00:00
parent 250d570004
commit d19c20d85a
1 changed files with 22 additions and 7 deletions

View File

@ -3,7 +3,7 @@
EAPI int
e_mouse_update(void)
{
unsigned char map[256];
unsigned char map[256] = { 0 };
int n;
if (!ecore_x_pointer_control_set(e_config->mouse_accel_numerator,
@ -11,15 +11,30 @@ e_mouse_update(void)
e_config->mouse_accel_threshold))
return 0;
if (!(n = ecore_x_pointer_mapping_get(map, 256))) return 0;
if (!ecore_x_pointer_mapping_get(map, 256)) return 0;
if (((e_config->mouse_hand == E_MOUSE_HAND_LEFT) && (map[2] != 1)) ||
((e_config->mouse_hand == E_MOUSE_HAND_RIGHT) && (map[0] != 1)))
for (n = 0; n < 256; n++)
{
const unsigned char tmp = map[0];
map[0] = map[2]; map[2] = tmp;
if (ecore_x_pointer_mapping_set(map, n)) return 0;
if (!map[n]) break;
}
if (n < 3)
{
map[0] = 1;
map[1] = 2;
map[2] = 3;
n = 3;
}
if (e_config->mouse_hand == E_MOUSE_HAND_RIGHT)
{
map[0] = 1;
map[2] = 3;
}
else if (e_config->mouse_hand == E_MOUSE_HAND_LEFT)
{
map[0] = 3;
map[2] = 1;
}
if (ecore_x_pointer_mapping_set(map, n)) return 0;
return 1;
}