From e3c7350a96b4b1e1df450fed5b1f109231b08884 Mon Sep 17 00:00:00 2001 From: Alec Murphy Date: Thu, 10 Apr 2025 15:11:40 -0400 Subject: [PATCH] Applications/Internet/Cyberia: Familiarize address bar onclick behavior We match the following address bar behavior from Chrome and Firefox: - When the address bar is clicked, select all text on mouse up if no selection currently exists. - On address bar blur, clear the selection. --- Applications/Internet/Cyberia.app/Cyberia.HC | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Applications/Internet/Cyberia.app/Cyberia.HC b/Applications/Internet/Cyberia.app/Cyberia.HC index 3502623..67f83e3 100644 --- a/Applications/Internet/Cyberia.app/Cyberia.HC +++ b/Applications/Internet/Cyberia.app/Cyberia.HC @@ -307,8 +307,20 @@ U0 @cyberia_unset_status_text() previous_hovered_href = NULL; } +U0 @cyberia_addressbar_clicked(Widget*) +{ + if (StrLen(&addressbar1->text) && addressbar1->selected_region_start == -1 && addressbar1->selected_region_end == -1) { + addressbar1->selected_region_start = 0; + addressbar1->selected_region_end = StrLen(&addressbar1->text) - 1; + } +} + U0 @cyberia_win_mouseat(Window*) { + if (addressbar1 && win->focused_widget != addressbar1) { + addressbar1->selected_region_start = -1; + addressbar1->selected_region_end = -1; + } if (!win->hovered_widget || !win->hovered_widget->pointer) { @cyberia_unset_status_text; @@ -388,6 +400,7 @@ U0 @cyberia_init() addressbar1 = Gui.CreateWidget(win, WIDGET_TYPE_INPUT, 99, 6, 320, 16); Gui.Widget.SetFont(addressbar1, "Eight Bit Dragon"); + Gui.Widget.SetCallback(addressbar1, "clicked", &@cyberia_addressbar_clicked); Gui.Window.SetCallback(win, "keypress", &@cyberia_win_keypress); widgets_base = win->widget;