diff --git a/data/rus/docs/guide/hardware_support.htm b/data/rus/docs/guide/hardware_support.htm index 88e3e03bca..1e9c29aa1b 100644 --- a/data/rus/docs/guide/hardware_support.htm +++ b/data/rus/docs/guide/hardware_support.htm @@ -61,6 +61,7 @@ USB 3.0 (XHCI) не поддерживается. Драйвер Поддерживаемые сетевые карты 3c59x 3Com Fast EtherLink (3c59x/450/555/556/575/900/905/980) +ar81xx Atheros 8161/8162/8171/8172 dec21x4x* Accton en1207B-TX, DEC 21140,.., VirtualPC forcedeth* nVidia nForce chipset integrated ethernet i8255x Intel eepro/100 (i8255x, i82562, i82801,..), QEMU diff --git a/programs/cmm/TWB/links.h b/programs/cmm/TWB/links.h index 003c61c6b8..94dfa9c487 100644 --- a/programs/cmm/TWB/links.h +++ b/programs/cmm/TWB/links.h @@ -24,6 +24,7 @@ struct LinksArray { unsigned int unic_count; unsigned int active; bool HoverAndProceed(); + bool Click(); void AddLink(); void AddText(); dword GetURL(); @@ -81,6 +82,36 @@ void LinksArray::DrawUnderline(dword und_id, list_first, list_y, color) PathShow_data status_text = {0, 17,250, 6, 250}; +bool LinksArray::Click(dword list_first) +{ + if (mouse.lkm) && (mouse.down) { + DrawRectangle(links[active].x, -list_first + links[active].y, + links[active].w, links[active].h, 0); + return false; + } + if (mouse.mkm) && (mouse.up) { + if (key_modifier&KEY_LSHIFT) || (key_modifier&KEY_RSHIFT) { + open_new_window = true; + EventClickLink(PageLinks.GetURL(PageLinks.active)); + open_new_window = false; + } else { + open_new_tab = true; + EventClickLink(PageLinks.GetURL(PageLinks.active)); + open_new_tab = false; + } + return false; + } + if (mouse.lkm) && (mouse.up) { + CursorPointer.Restore(); + EventClickLink(PageLinks.GetURL(PageLinks.active)); + return false; + } + if (mouse.pkm) && (mouse.up) { + EventShowLinkMenu(); + return false; + } +} + bool LinksArray::HoverAndProceed(dword mx, my, list_y, list_first) { int i; @@ -91,46 +122,22 @@ bool LinksArray::HoverAndProceed(dword mx, my, list_y, list_first) && (mxlist_y+list_first) { - if (mouse.lkm) && (mouse.down) { - DrawRectangle(links[active].x, -list_first + links[active].y, - links[active].w, links[active].h, 0); - return false; - } - if (mouse.mkm) && (mouse.up) { - if (key_modifier&KEY_LSHIFT) || (key_modifier&KEY_RSHIFT) { - open_new_window = true; - EventClickLink(PageLinks.GetURL(PageLinks.active)); - open_new_window = false; - } else { - open_new_tab = true; - EventClickLink(PageLinks.GetURL(PageLinks.active)); - open_new_tab = false; + if (active!=i) { + CursorPointer.Load(#CursorFile); + CursorPointer.Set(); + + if (links[active].underline) { + DrawUnderline(active, list_first, list_y, link_color_default); } - return false; - } - if (mouse.lkm) && (mouse.up) { - CursorPointer.Restore(); - EventClickLink(PageLinks.GetURL(PageLinks.active)); - return false; - } - if (mouse.pkm) && (mouse.up) { - EventShowLinkMenu(); - return false; - } - if (active==i) return false; - CursorPointer.Load(#CursorFile); - CursorPointer.Set(); - if (links[active].underline) { - DrawUnderline(active, list_first, list_y, link_color_default); - } + if (links[i].underline) { + DrawUnderline(i, list_first, list_y, page_bg); + } - if (links[i].underline) { - DrawUnderline(i, list_first, list_y, page_bg); + active = i; + DrawStatusBar(links[active].link); } - - active = i; - DrawStatusBar(links[active].link); + Click(list_first); return true; } } diff --git a/programs/cmm/browser/WebView.c b/programs/cmm/browser/WebView.c index 6c871f0c61..be58799dd3 100644 --- a/programs/cmm/browser/WebView.c +++ b/programs/cmm/browser/WebView.c @@ -131,6 +131,8 @@ void HandleParam() } else if (!strncmp(#param, "-source ", 8)) { source_mode = true; history.add(#param + 8); + } else if (!strncmp(#param, "-new ", 5)) { + history.add(#param + 5); } else { if (GetProcessesCount("WEBVIEW") == 1) { history.add(#param); @@ -163,8 +165,8 @@ void main() case evMouse: edit_box_mouse stdcall (#address_box); mouse.get(); - if (PageLinks.HoverAndProceed(mouse.x, WB1.list.first + mouse.y, WB1.list.y, WB1.list.first)) - && (mouse.pkm) && (mouse.up) { + PageLinks.HoverAndProceed(mouse.x, WB1.list.first + mouse.y, WB1.list.y, WB1.list.first); + if (PageLinks.active == -1) && (mouse.pkm) && (mouse.up) { if (WB1.list.MouseOver(mouse.x, mouse.y)) EventShowPageMenu(); break; } @@ -628,11 +630,14 @@ void OpenPage(dword _open_URL) void EventClickLink(dword _click_URL) { char new_url[URL_SIZE+1]; + char new_url_full[URL_SIZE+1]; if (open_new_window) { - strcpy(#new_url, _click_URL); + strncpy(#new_url, _click_URL, sizeof(new_url)); GetAbsoluteURL(#new_url, history.current()); - RunProgram(#program_path, #new_url); + strcpy(#new_url_full, "-new "); + strncat(#new_url_full, #new_url, sizeof(new_url_full)); + RunProgram(#program_path, #new_url_full); return; } diff --git a/programs/cmm/browser/texts.h b/programs/cmm/browser/texts.h index bcfc1e0978..277ab5a90f 100644 --- a/programs/cmm/browser/texts.h +++ b/programs/cmm/browser/texts.h @@ -1,4 +1,4 @@ -char version[]="WebView 2.5b"; +char version[]="WebView 2.5c"; #ifdef LANG_RUS char page_not_found[] = FROM "html\\page_not_found_ru.htm""\0";