2007-11-07 Mackenzie Morgan <macoafi@gmail.com>
* src/main.c:
* src/gsynaptics.h:
* src/gsynaptics.c:
* data/gsynaptics.glade:
Added AccelFactor, MinSpeed, and MaxSpeed
@@ -1,2 +1,3 @@ | ||
1 | 1 | Hiroyuki Ikezoe <poincare@ikezoe.net> |
2 | 2 | Takuro Ashie <ashie@homa.ne.jp> |
3 | +Mackenzie Morgan <macoafi@gmail.com> (AccelFactor and speed) |
@@ -1,3 +1,11 @@ | ||
1 | +2007-11-07 Mackenzie Morgan <macoafi@gmail.com> | |
2 | + | |
3 | + * src/main.c: | |
4 | + * src/gsynaptics.h: | |
5 | + * src/gsynaptics.c: | |
6 | + * data/gsynaptics.glade: | |
7 | + Added AccelFactor, MinSpeed, and MaxSpeed | |
8 | + | |
1 | 9 | 2007-11-07 Pat suwalski <pats@xandros.com> |
2 | 10 | |
3 | 11 | * src/gsynaptics.c: Fix value check for sensitivity. |
@@ -373,6 +373,57 @@ | ||
373 | 373 | } |
374 | 374 | } |
375 | 375 | |
376 | +gdouble | |
377 | +g_synaptics_accel_delta (GSynaptics *synaptics) | |
378 | +{ | |
379 | + GSynapticsPrivate *priv = G_SYNAPTICS_GET_PRIVATE (synaptics); | |
380 | + if (!g_synaptics_is_valid(synaptics)) | |
381 | + return 0; | |
382 | + | |
383 | + if (priv->synclient) | |
384 | + { | |
385 | + return (gdouble)g_synaptics_get_value_from_synclient ("AccelFactor"); | |
386 | + } | |
387 | + else | |
388 | + { | |
389 | + return SYNSHM(synaptics)->accl; | |
390 | + } | |
391 | +} | |
392 | + | |
393 | +gdouble | |
394 | +g_synaptics_min_speed_delta (GSynaptics *synaptics) | |
395 | +{ | |
396 | + GSynapticsPrivate *priv = G_SYNAPTICS_GET_PRIVATE (synaptics); | |
397 | + if (!g_synaptics_is_valid(synaptics)) | |
398 | + return 0; | |
399 | + | |
400 | + if (priv->synclient) | |
401 | + { | |
402 | + return (gdouble)g_synaptics_get_value_from_synclient ("MinSpeed"); | |
403 | + } | |
404 | + else | |
405 | + { | |
406 | + return SYNSHM(synaptics)->min_speed; | |
407 | + } | |
408 | +} | |
409 | + | |
410 | +gdouble | |
411 | +g_synaptics_max_speed_delta (GSynaptics *synaptics) | |
412 | +{ | |
413 | + GSynapticsPrivate *priv = G_SYNAPTICS_GET_PRIVATE (synaptics); | |
414 | + if (!g_synaptics_is_valid(synaptics)) | |
415 | + return 0; | |
416 | + | |
417 | + if (priv->synclient) | |
418 | + { | |
419 | + return (gdouble)g_synaptics_get_value_from_synclient ("MaxSpeed"); | |
420 | + } | |
421 | + else | |
422 | + { | |
423 | + return SYNSHM(synaptics)->max_speed; | |
424 | + } | |
425 | +} | |
426 | + | |
376 | 427 | gboolean |
377 | 428 | g_synaptics_is_coasting_enabled (GSynaptics *synaptics) |
378 | 429 | { |
@@ -649,6 +700,72 @@ | ||
649 | 700 | } |
650 | 701 | |
651 | 702 | void |
703 | +g_synaptics_set_accel(GSynaptics *synaptics, gdouble delta) | |
704 | +{ | |
705 | + GSynapticsPrivate *priv = G_SYNAPTICS_GET_PRIVATE (synaptics); | |
706 | + if (!g_synaptics_is_valid(synaptics)) | |
707 | + return; | |
708 | + | |
709 | + if (priv->synclient) | |
710 | + { | |
711 | + gchar *command; | |
712 | + command = g_strdup_printf ("synclient AccelFactor=%lf", | |
713 | + delta); | |
714 | + /* TODO check that %lf is right*/ | |
715 | + g_spawn_command_line_async (command, NULL); | |
716 | + g_free (command); | |
717 | + } | |
718 | + else | |
719 | + { | |
720 | + SYNSHM(synaptics)->accl = delta; | |
721 | + } | |
722 | +} | |
723 | + | |
724 | +void | |
725 | +g_synaptics_set_max_speed(GSynaptics *synaptics, gdouble delta) | |
726 | +{ | |
727 | + GSynapticsPrivate *priv = G_SYNAPTICS_GET_PRIVATE (synaptics); | |
728 | + if (!g_synaptics_is_valid(synaptics)) | |
729 | + return; | |
730 | + | |
731 | + if (priv->synclient) | |
732 | + { | |
733 | + gchar *command; | |
734 | + command = g_strdup_printf ("synclient MaxSpeed=%lf", | |
735 | + delta); | |
736 | + /* TODO check that %lf is right */ | |
737 | + g_spawn_command_line_async (command, NULL); | |
738 | + g_free (command); | |
739 | + } | |
740 | + else | |
741 | + { | |
742 | + SYNSHM(synaptics)->max_speed = delta; | |
743 | + } | |
744 | +} | |
745 | + | |
746 | +void | |
747 | +g_synaptics_set_min_speed(GSynaptics *synaptics, gdouble delta) | |
748 | +{ | |
749 | + GSynapticsPrivate *priv = G_SYNAPTICS_GET_PRIVATE (synaptics); | |
750 | + if (!g_synaptics_is_valid(synaptics)) | |
751 | + return; | |
752 | + | |
753 | + if (priv->synclient) | |
754 | + { | |
755 | + gchar *command; | |
756 | + command = g_strdup_printf ("synclient MinSpeed=%lf", | |
757 | + delta); | |
758 | + /* TODO check that %lf is right */ | |
759 | + g_spawn_command_line_async (command, NULL); | |
760 | + g_free (command); | |
761 | + } | |
762 | + else | |
763 | + { | |
764 | + SYNSHM(synaptics)->min_speed = delta; | |
765 | + } | |
766 | +} | |
767 | + | |
768 | +void | |
652 | 769 | g_synaptics_set_circular_scroll_enabled (GSynaptics *synaptics, gboolean enable) |
653 | 770 | { |
654 | 771 | GSynapticsPrivate *priv = G_SYNAPTICS_GET_PRIVATE (synaptics); |
@@ -704,7 +821,7 @@ | ||
704 | 821 | if (priv->synclient) |
705 | 822 | { |
706 | 823 | gchar *command; |
707 | - command = g_strdup_printf ("synclient CoastingSpeedThreashold=%f", | |
824 | + command = g_strdup_printf ("synclient CoastingSpeedThreshold=%f", | |
708 | 825 | thresh); |
709 | 826 | g_spawn_command_line_async (command, NULL); |
710 | 827 | g_free (command); |
@@ -42,9 +42,9 @@ | ||
42 | 42 | }; |
43 | 43 | |
44 | 44 | static void |
45 | -dialog_button_clicked_cb (GtkDialog *dialog, gint response_id) | |
45 | +dialog_button_clicked_cb (GtkDialog *dialog, gint response_id) | |
46 | 46 | { |
47 | - if (response_id == GTK_RESPONSE_HELP) | |
47 | + if (response_id == GTK_RESPONSE_HELP) | |
48 | 48 | { |
49 | 49 | GError *error = NULL; |
50 | 50 | GdkScreen *screen; |
@@ -476,6 +476,45 @@ | ||
476 | 476 | gconf_client_set_bool (gconf, EDGEMOTIONUSEALWAYS_KEY, value, NULL); |
477 | 477 | } |
478 | 478 | |
479 | +static gboolean | |
480 | +cb_accel_change (GtkRange *range, GtkScrollType scroll, | |
481 | + gdouble value, GladeXML *dialog) | |
482 | +{ | |
483 | + GSynaptics *synaptics; | |
484 | + | |
485 | + synaptics = g_object_get_qdata (G_OBJECT(dialog), synaptics_quark); | |
486 | + | |
487 | + g_synaptics_set_accel(synaptics, value); | |
488 | + | |
489 | + return FALSE; | |
490 | +} | |
491 | + | |
492 | +static gboolean | |
493 | +cb_min_speed_change (GtkRange *range, GtkScrollType scroll, | |
494 | + gdouble value, GladeXML *dialog) | |
495 | +{ | |
496 | + GSynaptics *synaptics; | |
497 | + | |
498 | + synaptics = g_object_get_qdata (G_OBJECT(dialog), synaptics_quark); | |
499 | + | |
500 | + g_synaptics_set_min_speed(synaptics, value); | |
501 | + | |
502 | + return FALSE; | |
503 | +} | |
504 | + | |
505 | +static gboolean | |
506 | +cb_max_speed_change (GtkRange *range, GtkScrollType scroll, | |
507 | + gdouble value, GladeXML *dialog) | |
508 | +{ | |
509 | + GSynaptics *synaptics; | |
510 | + | |
511 | + synaptics = g_object_get_qdata (G_OBJECT(dialog), synaptics_quark); | |
512 | + | |
513 | + g_synaptics_set_max_speed(synaptics, value); | |
514 | + | |
515 | + return FALSE; | |
516 | +} | |
517 | + | |
479 | 518 | static void |
480 | 519 | setup_dialog (GladeXML *dialog) |
481 | 520 | { |
@@ -490,7 +529,7 @@ | ||
490 | 529 | |
491 | 530 | synaptics = g_object_get_qdata (G_OBJECT(dialog), synaptics_quark); |
492 | 531 | |
493 | - /* first pain */ | |
532 | + /* first pane */ | |
494 | 533 | check = WID ("touchpad_check"); |
495 | 534 | g_signal_connect (G_OBJECT (check), "toggled", |
496 | 535 | G_CALLBACK (cb_touchpad_toggled), dialog); |
@@ -506,7 +545,7 @@ | ||
506 | 545 | g_signal_connect (G_OBJECT (scale), "change-value", |
507 | 546 | G_CALLBACK (cb_sensitivity_change), dialog); |
508 | 547 | |
509 | - /* second pain (tapping) */ | |
548 | + /* second pane (tapping) */ | |
510 | 549 | check = WID ("faster_tapping_check"); |
511 | 550 | g_signal_connect (G_OBJECT (check), "toggled", |
512 | 551 | G_CALLBACK (cb_fast_taps_toggled), dialog); |
@@ -527,7 +566,7 @@ | ||
527 | 566 | gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check), |
528 | 567 | value); |
529 | 568 | |
530 | - /* third pain (scroll) */ | |
569 | + /* third pane (scroll) */ | |
531 | 570 | scale = WID ("vertical_scroll_scale"); |
532 | 571 | num = g_synaptics_vertical_scroll_delta (synaptics); |
533 | 572 | gtk_range_set_value (GTK_RANGE (scale), num * -1); |
@@ -579,6 +618,7 @@ | ||
579 | 618 | button = WID ("trigger_right_edge_toggle"); |
580 | 619 | g_signal_connect (G_OBJECT (button), "button_press_event", |
581 | 620 | G_CALLBACK (cb_trigger_right_pressed),dialog); |
621 | + | |
582 | 622 | button = WID ("trigger_top_left_corner_toggle"); |
583 | 623 | g_signal_connect (G_OBJECT (button), "button_press_event", |
584 | 624 | G_CALLBACK (cb_trigger_top_left_pressed),dialog); |
@@ -610,6 +650,27 @@ | ||
610 | 650 | g_signal_connect (G_OBJECT (check), "toggled", |
611 | 651 | G_CALLBACK (cb_cursor_movement_toggled), dialog); |
612 | 652 | |
653 | + /* fourth pane */ | |
654 | + scale = WID ("accel_scale"); | |
655 | + /*num = g_synaptics_accel_delta (synaptics);*/ | |
656 | + /* TODO figure out what to do with this g_synaptics_*_delta bit | |
657 | + * or if it's even needed... */ | |
658 | + /*gtk_range_set_value (GTK_RANGE (scale), num * -1);*/ | |
659 | + g_signal_connect (G_OBJECT (scale), "change-value", | |
660 | + G_CALLBACK (cb_accel_change), dialog); | |
661 | + | |
662 | + scale = WID ("min_speed_scale"); | |
663 | + num = g_synaptics_min_speed_delta (synaptics); | |
664 | + gtk_range_set_value (GTK_RANGE (scale), num * -1); | |
665 | + g_signal_connect (G_OBJECT (scale), "change-value", | |
666 | + G_CALLBACK (cb_min_speed_change), dialog); | |
667 | + | |
668 | + scale = WID ("max_speed_scale"); | |
669 | + num = g_synaptics_max_speed_delta (synaptics); | |
670 | + gtk_range_set_value (GTK_RANGE (scale), num * -1); | |
671 | + g_signal_connect (G_OBJECT (scale), "change-value", | |
672 | + G_CALLBACK (cb_max_speed_change), dialog); | |
673 | + | |
613 | 674 | /* dialog window */ |
614 | 675 | widget = WID ("gsynaptics_dialog"); |
615 | 676 | g_signal_connect (G_OBJECT (widget), "response", |
@@ -84,6 +84,9 @@ | ||
84 | 84 | gint g_synaptics_vertical_scroll_delta (GSynaptics *synaptics); |
85 | 85 | gboolean g_synaptics_is_edge_motion_enabled (GSynaptics *synaptics); |
86 | 86 | gboolean g_synaptics_is_coasting_enabled (GSynaptics *synaptics); |
87 | +gdouble g_synaptics_accel_delta (GSynaptics *synaptics); | |
88 | +gdouble g_synaptics_min_speed_delta (GSynaptics *synaptics); | |
89 | +gdouble g_synaptics_max_speed_delta (GSynaptics *synaptics); | |
87 | 90 | gboolean g_synaptics_is_circular_scroll_enabled (GSynaptics *synaptics); |
88 | 91 | gint g_synaptics_circular_scroll_delta (GSynaptics *synaptics); |
89 | 92 | ScrollTrigger g_synaptics_circular_scroll_trigger (GSynaptics *synaptics); |
@@ -107,6 +110,12 @@ | ||
107 | 110 | gint delta); |
108 | 111 | void g_synaptics_set_vertical_scroll_delta (GSynaptics *synaptics, |
109 | 112 | gint delta); |
113 | +void g_synaptics_set_accel (GSynaptics *synaptics, | |
114 | + gdouble delta); | |
115 | +void g_synaptics_set_max_speed (GSynaptics *synaptics, | |
116 | + gdouble delta); | |
117 | +void g_synaptics_set_min_speed (GSynaptics *synaptics, | |
118 | + gdouble delta); | |
110 | 119 | void g_synaptics_set_circular_scroll_enabled (GSynaptics *synaptics, |
111 | 120 | gboolean enable); |
112 | 121 | void g_synaptics_set_edge_motion_enabled (GSynaptics *synaptics, |