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