diff options
| author | Jari Vetoniemi <mailroxas@gmail.com> | 2014-11-02 07:58:45 +0200 | 
|---|---|---|
| committer | Jari Vetoniemi <mailroxas@gmail.com> | 2014-11-02 07:58:45 +0200 | 
| commit | a90bf2f512e9b3cdb6436cf7dce71ec33d1fa680 (patch) | |
| tree | 52638346972553e09953aa0ed38087cdfc175514 /lib | |
| parent | e8fc51d80cdd955f47113f63e22068f3a00d4224 (diff) | |
| download | bemenu-a90bf2f512e9b3cdb6436cf7dce71ec33d1fa680.tar.gz bemenu-a90bf2f512e9b3cdb6436cf7dce71ec33d1fa680.tar.bz2 bemenu-a90bf2f512e9b3cdb6436cf7dce71ec33d1fa680.zip | |
Redraw only when input changed.
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/renderers/wayland/registry.c | 1 | ||||
| -rw-r--r-- | lib/renderers/wayland/wayland.c | 11 | ||||
| -rw-r--r-- | lib/renderers/wayland/wayland.h | 1 | 
3 files changed, 9 insertions, 4 deletions
| diff --git a/lib/renderers/wayland/registry.c b/lib/renderers/wayland/registry.c index 9521374..d83c797 100644 --- a/lib/renderers/wayland/registry.c +++ b/lib/renderers/wayland/registry.c @@ -369,6 +369,7 @@ bm_wl_registry_register(struct wayland *wayland)          return false;      set_repeat_info(&wayland->input, 40, 400); +    wayland->input.last_code = 0xDEADBEEF;      return true;  } diff --git a/lib/renderers/wayland/wayland.c b/lib/renderers/wayland/wayland.c index 2cdedec..3852a6d 100644 --- a/lib/renderers/wayland/wayland.c +++ b/lib/renderers/wayland/wayland.c @@ -38,10 +38,13 @@ render(const struct bm_menu *menu)          }      } -    uint32_t count; -    bm_menu_get_filtered_items(menu, &count); -    uint32_t lines = (count < menu->lines ? count : menu->lines) + 1; -    bm_wl_window_render(&wayland->window, menu, lines); +    if (wayland->input.code != wayland->input.last_code) { +        uint32_t count; +        bm_menu_get_filtered_items(menu, &count); +        uint32_t lines = (count < menu->lines ? count : menu->lines) + 1; +        bm_wl_window_render(&wayland->window, menu, lines); +        wayland->input.last_code = wayland->input.code; +    }  }  static enum bm_key diff --git a/lib/renderers/wayland/wayland.h b/lib/renderers/wayland/wayland.h index 50455b5..886a0fd 100644 --- a/lib/renderers/wayland/wayland.h +++ b/lib/renderers/wayland/wayland.h @@ -51,6 +51,7 @@ struct input {      xkb_keysym_t sym;      uint32_t code; +    uint32_t last_code;      uint32_t modifiers;      xkb_keysym_t repeat_sym; | 
