From 09e9cbea51f0dc5879e3ec8213655cd1b286a893 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 5 Mar 2026 11:58:15 +0530 Subject: [PATCH] Cleanup previous PR --- kitty/mouse.c | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/kitty/mouse.c b/kitty/mouse.c index 1b9eb4ee3..32c2db1e1 100644 --- a/kitty/mouse.c +++ b/kitty/mouse.c @@ -938,22 +938,6 @@ mouse_region(bool detect_borders, bool detect_title_bar) { } if (in_central && w->num_tabs > 0) { Tab *t = global_state.callback_os_window->tabs + global_state.callback_os_window->active_tab; - if (detect_title_bar) { - for (unsigned int i = 0; i < t->num_windows; i++) { - Window *win = t->windows + i; - if (!win->visible) continue; - const WindowRenderData *trd = &win->window_title_render_data; - if (trd->screen && trd->geometry.right > trd->geometry.left && trd->geometry.bottom > trd->geometry.top) { - if (w->mouse_x >= trd->geometry.left && w->mouse_x < trd->geometry.right && - w->mouse_y >= trd->geometry.top && w->mouse_y < trd->geometry.bottom) { - ans.in_title_bar = true; - ans.window = win; - ans.window_idx = i; - return ans; - } - } - } - } if (detect_borders && num_visible_windows(t) > 1) { id_type window_id = 0; double dpi = (w->fonts_data->logical_dpi_x + w->fonts_data->logical_dpi_y) / 2.; @@ -1001,8 +985,18 @@ mouse_region(bool detect_borders, bool detect_title_bar) { } } for (unsigned int i = 0; i < t->num_windows; i++) { - if (contains_mouse(t->windows + i) && t->windows[i].render_data.screen) { - ans.window_idx = i; ans.window = t->windows + i; + Window *win = t->windows + i; + if (contains_mouse(win) && win->render_data.screen) { + ans.window_idx = i; ans.window = win; break; + } else if (detect_title_bar && win->visible) { + const WindowRenderData *trd = &win->window_title_render_data; + if (trd->screen && trd->geometry.right > trd->geometry.left && trd->geometry.bottom > trd->geometry.top) { + if (w->mouse_x >= trd->geometry.left && w->mouse_x < trd->geometry.right && + w->mouse_y >= trd->geometry.top && w->mouse_y < trd->geometry.bottom) { + ans.in_title_bar = true; ans.window = win; ans.window_idx = i; + break; + } + } } } }