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.
This commit is contained in:
Alec Murphy 2025-04-10 15:11:40 -04:00
parent c45b862b2b
commit e3c7350a96

View file

@ -307,8 +307,20 @@ U0 @cyberia_unset_status_text()
previous_hovered_href = NULL; 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*) 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) { if (!win->hovered_widget || !win->hovered_widget->pointer) {
@cyberia_unset_status_text; @cyberia_unset_status_text;
@ -388,6 +400,7 @@ U0 @cyberia_init()
addressbar1 = Gui.CreateWidget(win, WIDGET_TYPE_INPUT, 99, 6, 320, 16); addressbar1 = Gui.CreateWidget(win, WIDGET_TYPE_INPUT, 99, 6, 320, 16);
Gui.Widget.SetFont(addressbar1, "Eight Bit Dragon"); Gui.Widget.SetFont(addressbar1, "Eight Bit Dragon");
Gui.Widget.SetCallback(addressbar1, "clicked", &@cyberia_addressbar_clicked);
Gui.Window.SetCallback(win, "keypress", &@cyberia_win_keypress); Gui.Window.SetCallback(win, "keypress", &@cyberia_win_keypress);
widgets_base = win->widget; widgets_base = win->widget;