X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=acre-x.c;h=c375c36efddee95a1d7afd4e74262a3d740f4cbd;hb=refs%2Fheads%2Fmaster;hp=e89c7fcf285f556d1b402a245cd3f43f42f57f1a;hpb=12b6b0f6a439c7838daac5e2a1e5764bd0218936;p=acre diff --git a/acre-x.c b/acre-x.c index e89c7fc..c375c36 100644 --- 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;