diff --git a/include/components/bar.hpp b/include/components/bar.hpp
index bb447e47..8b569d9d 100644
--- a/include/components/bar.hpp
+++ b/include/components/bar.hpp
@@ -68,7 +68,6 @@ class bar : public xpp::event::sink<evt::button_press, evt::expose, evt::propert
   std::mutex m_mutex{};
 
   event_timer m_buttonpress{0L, 5L};
-  event_timer m_doubleclick{0L, 250L};
 };
 
 POLYBAR_NS_END
diff --git a/include/components/types.hpp b/include/components/types.hpp
index cb751321..e2dda121 100644
--- a/include/components/types.hpp
+++ b/include/components/types.hpp
@@ -33,7 +33,7 @@ enum class syntaxtag : uint8_t {
   u,  // underline color
 };
 
-enum class mousebtn : uint8_t { NONE = 0U, LEFT, MIDDLE, RIGHT, SCROLL_UP, SCROLL_DOWN, DOUBLE_CLICK };
+enum class mousebtn : uint8_t { NONE = 0U, LEFT, MIDDLE, RIGHT, SCROLL_UP, SCROLL_DOWN };
 
 enum class strut : uint16_t {
   LEFT = 0U,
@@ -96,6 +96,10 @@ struct action_block : public action {
   uint16_t width() const {
     return static_cast<uint16_t>(end_x - start_x + 0.5);
   }
+
+  bool test(int16_t point) const {
+    return static_cast<int16_t>(start_x) < point && static_cast<int16_t>(end_x) >= point;
+  }
 };
 
 struct bar_settings {
diff --git a/src/components/bar.cpp b/src/components/bar.cpp
index 1a7e98a6..5a67d446 100644
--- a/src/components/bar.cpp
+++ b/src/components/bar.cpp
@@ -150,7 +150,6 @@ bar::bar(connection& conn, signal_emitter& emitter, const config& config, const
   actions.emplace_back(action{mousebtn::RIGHT, m_conf.get<string>(bs, "click-right", "")});
   actions.emplace_back(action{mousebtn::SCROLL_UP, m_conf.get<string>(bs, "scroll-up", "")});
   actions.emplace_back(action{mousebtn::SCROLL_DOWN, m_conf.get<string>(bs, "scroll-down", "")});
-  actions.emplace_back(action{mousebtn::DOUBLE_CLICK, m_conf.get<string>(bs, "click-double", "")});
 
   for (auto&& act : actions) {
     if (!act.command.empty()) {
@@ -502,6 +501,7 @@ void bar::handle(const evt::button_press& evt) {
   }
 
   std::lock_guard<std::mutex> guard(m_mutex, std::adopt_lock);
+
   if (m_buttonpress.deny(evt->time)) {
     return m_log.trace_x("bar: Ignoring button press (throttled)...");
   }
@@ -509,22 +509,8 @@ void bar::handle(const evt::button_press& evt) {
   m_log.trace("bar: Received button press: %i at pos(%i, %i)", evt->detail, evt->event_x, evt->event_y);
   mousebtn button{static_cast<mousebtn>(evt->detail)};
 
-  // Using the event_timer so if the event gets denied
-  // we are within the double click time window
-  if (button == mousebtn::LEFT && m_doubleclick.deny(evt->time)) {
-    button = mousebtn::DOUBLE_CLICK;
-  }
-
   for (auto&& action : m_renderer->get_actions()) {
-    if (action.active) {
-      continue;
-    } else if (action.button != button) {
-      continue;
-    } else if (action.start_x >= evt->event_x) {
-      continue;
-    } else if (action.end_x < evt->event_x) {
-      continue;
-    } else {
+    if (!action.active && action.button == button && action.test(evt->event_x)) {
       m_log.trace("Found matching input area");
       m_sig.emit(button_press{string{action.command}});
       return;