]> git.cworth.org Git - acre/blobdiff - acre-x.c
Add another dataset style: ACRE_STYLE_BARS
[acre] / acre-x.c
index e89c7fcf285f556d1b402a245cd3f43f42f57f1a..c375c36efddee95a1d7afd4e74262a3d740f4cbd 100644 (file)
--- a/acre-x.c
+++ b/acre-x.c
@@ -103,6 +103,7 @@ handle_events(Display *dpy, Window window, Visual *visual,
 {
         XEvent xev;
         KeyCode quit_code = XKeysymToKeycode (dpy, XStringToKeysym("Q"));
+        KeyCode escape_code = XKeysymToKeycode (dpy, XStringToKeysym("Escape"));
         KeyCode left_code = XKeysymToKeycode (dpy, XStringToKeysym("Left"));
         KeyCode right_code = XKeysymToKeycode (dpy, XStringToKeysym("Right"));
         KeyCode plus_code = XKeysymToKeycode (dpy, XStringToKeysym("plus"));
@@ -125,8 +126,10 @@ handle_events(Display *dpy, Window window, Visual *visual,
                XNextEvent (dpy, &xev);
                 switch (xev.type) {
                 case KeyPress:
+                       need_redraw = true;
                        keycode = xev.xkey.keycode;
-                       if (keycode == quit_code)
+                       if (keycode == quit_code ||
+                           keycode == escape_code)
                        {
                                 return;
                        }
@@ -151,7 +154,7 @@ handle_events(Display *dpy, Window window, Visual *visual,
                        }
                        else if (keycode == minus_code)
                        {
-                               shift = (1- 2*ZOOM) * (x_max - x_min);
+                               shift = (ZOOM/(1 - 2 * ZOOM)) * (x_max - x_min);
                                x_min -= shift;
                                x_max += shift;
                        }
@@ -159,7 +162,10 @@ handle_events(Display *dpy, Window window, Visual *visual,
                        {
                                acre_get_x_axis_data_range (acre, &x_min, &x_max);
                        }
-                       need_redraw = 1;
+                       else
+                       {
+                               need_redraw = false;
+                       }
                        break;
                 case ConfigureNotify:
                         width = xev.xconfigure.width;