SASGIS

Веб-картография и навигация


View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000456SAS.Планета[All Projects] Багpublic11-03-2011 19:2410-10-2012 11:50
Reporternafa 
Assigned Tovdemidov 
PrioritynoneSeverityminorReproducibilityalways
StatusclosedResolutionfixed 
Platformx86OSWindows XP ProfessionalOS VersionSP2
Product Version110216 
Target Version120808Fixed in Version120808 
Summary0000456: "Горячие" клавиши срабатывают в окне браузера
DescriptionПри двойном клике мышки по метке из KML слоя (например, Panoramio) открывается окно браузера с описанием этой метки. Если в описании, или в страницах, куда переходишь по ссылкам описания, если форма ввода (HTML тег FORM), то при попытке ввода в поля формы срабатывают "горячие" клавиши. Например, нажимаю кнопку g - вместо ввода этого символа происходит переключение карты на Google и т.п.
Steps To Reproduce1. Включить карту Яндекс
2. Включить слой Panoramio. Дождаться загрузки слоя.
3. Ткнуть мышкой в любую метку Panoramio
4. В открывшемся окне бразуера перейти по например по любой ссылке на страницу, где есть форма ввода. Например, по ссылке "Misplaced" или "Загрузить свои фотографии" -откроется форма авторизации Google/Panoramio
5. Поставить курсор в поле формы ввода (например, поле логин)
6. Переключить клавиатуру на английскую раскладку
7. Нажать кнопку, соответствующую "горячей клавише" для другой карты (например, g для Google) - вместо ввода символа произойдет переключение на другую карту.
Tagspanoramio, браузер, горячие клавиши
Attached Files

- Relationships
has duplicate 0000882closedvdemidov При включенном слое wikimapia невозможно печатать в редакторе, используются быстрые клавиши программы. 
related to 0000916closedvdemidov Невозможно ввести текст в диалоге Selection Manager 

-  Notes
(0001180)
vdemidov (manager)
11-03-2011 20:40

Очень подозреваю, что ничего сделать с этим не смогу. Останется или поменять все хоткеи на что-то более сложное или не пытаться в водить ничего во встроенном браузере.
(0001193)
nafa (reporter)
12-03-2011 16:35
edited on: 12-03-2011 16:35

Возможно ли решить проблему например следующим образом:
Если пользователь во время двойного клика удерживает клавишу Shift то:
содержание описания точки записывается во временный файл с расширением htm а затем этот файл запускается для открытия в установленном в системе браузере по умолчанию (подобно тому, как пользователь просто кликнул бы на нем мышкой в "проводнике").
Если вышеуказанное возможно, то желательно также сделать в программе настройку, определяющую способ открытия метки по умолчанию - во встроенном браузере или во внешнем (т.е. при включении "внешнего" кнопка Shift наоборот открывает во встроенном).

(0001194)
vasketsov (manager)
12-03-2011 20:14

Куда проще вообще перекрыть DocumentNew (если не подводит склероз, сто лет не общался программно с IE) и вообще никуда не давать переходить в ЭТОМ окне.
(0001195)
nafa (reporter)
12-03-2011 20:28

Предложение "не давать" не способствует удобству работы с программой. Проблема реально возникает только когда начинаешь вводить данные методом нажатия клавиш. Если же просто ходишь по ссылкам, или в форме ввода исключительно флажки/поля выбора, то проблемы нет.
(0001196)
vasketsov (manager)
12-03-2011 21:11

>не способствует удобству работы с программой
У удобства есть разное понимание. Прежде всего, ответные действия программы должны быть прогнозируемые. А если при отображении фотки с панорамио программа перестанет реагировать на горячие клавиши (подсказываю, на веб-странице могут быть определены свои горячие клавиши, а куда можно уйти по ссылкам с панорамио - никому не известно, скорее всего куда угодно, а при установке хоткея никакой информации пользователю не выводится) - это будет реальный косяк.

Суть предложения в том, что когда тыкаешься в ссылку, там внутри броузера вызывается некая процедура, которой надо дать параметром новое окно (интерфейс), где откроется ссылка. Сейчас там по умолчанию подставляется "само себя". Если это будет "пустой" интерфейс, ссылка просто откроется в новом окне. Для пользователя это не несёт никакой проблемы, просто все клики из встроенного окошка будут открываться в новом окне. Со своими произвольными формами, хоткеями и прочими ссылками. В итоге кесарю кесарево,...
(0001197)
nafa (reporter)
12-03-2011 21:45
edited on: 12-03-2011 21:45

> А если при отображении фотки с панорамио программа перестанет реагировать на горячие клавиши - ... - это будет реальный косяк

Косяка вобщем-то не вижу. Это принцип работы самой операционной системы Windows - сообщение отрабатывается сначала в верхнем окне, если не отработано в верхнем окне - передается ниже и т.п. При открытии окна с настройками программы или окна для сохранения области горячие клавиши карты тоже перестают работать - и это нормально. Кстати в окне с настройками также могут быть определены горячие клавииши (например, для быстрой активизации конкретного поля) - это ведь проблем не вызывает.

Что касается открытия ссылок в новом окне
1. Во-первых, много окон - не всем удобно (если 20 переходов по ссылкам - это что 20 окон?)
2. Во-вторых, это и сейчас легко делается. В окне, которой открывается по двойному клику на метке переходим по ссылке с нажатой Shift - и открывается еще одно окно, но уже не SAS Планеты а IE и в нем горячие клавиши уже естественно относятся к IE.
Но:
- Так можно открыть только окно по ссылке, а первичное окно (по метке) сейчас так не откроешь
- При этом оказываются открытыми как минимум два окна, причем разных по поведению. Например, окно IE с клавиатуры надо закрывать Alt-F4, а окно браузера в SAS Планете надо закрывать Esc, а если нажать Alt-F4 то закроется сама SAS Планета. Вот это действительно неудобно.

(0001198)
vasketsov (manager)
12-03-2011 21:45

что-то типа такого (на форме эдитка и кнопка, под ними броузер):

procedure TForm1.btnGOClick(Sender: TObject);
begin
  bGO:=TRUE;
  try
    obj.Navigate(edAddress.Text);
  finally
    bGO:=FALSE;
  end;
end;

procedure TForm1.objNewWindow2(Sender: TObject; var ppDisp: IDispatch; var Cancel: WordBool);
begin
  ppDisp:=nil;
  Cancel:=FALSE;
end;

procedure TForm1.objBeforeNavigate2(Sender: TObject;
  const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
var f: OleVariant;
begin
  if not bGO then
  begin
    Cancel:=TRUE;
    f:=navOpenInNewWindow;
    obj.Navigate(URL,f);
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  bGO:=FALSE;
end;

в итоге по кнопке открывается только адрес из эдитки, а все переходы открываются в новом окне.
(0001199)
vasketsov (manager)
12-03-2011 22:07

>сообщение отрабатывается сначала в верхнем окне, если не отработано в верхнем окне - передается ниже
Я даже с трудом могу понять, о чём идёт речь. О z-order или о parent-child или по alt-tab? или ещё о чём? Сейчас разговор о хоткеях, а они к сообщениям имеют весьма далёкое отношение. В любом случае не припомню такого принципа, всё это рулится в оконной процедуре.

>При открытии окна с настройками программы или окна для сохранения области горячие клавиши карты тоже перестают работать - и это нормально
Это имеет немного другое объяснение, чем некий "принцип" и "нормальность". Это следствие конкретной реализации модальности и того способа, которым навешан хоткей. Попробуйте сами потыкаться хоткеями при активном окне операции с выделенной областью (модальном) и при активном окне загрузки тайлов (немодальном), разницу думаю увидите. Это при том, что возможно реализовать и глобальный хоткей, который бы работал и при модальных дочерних окнах. Блокировка хоткеев в немодальном встроенном окне IE как раз и будет попыткой удалить гланды через анус.

>если 20 переходов по ссылкам - это что 20 окон?
Зачем 20 окон? Минимум одно внутреннее и одно внешнее, максимум сколько угодно внешних, как душа пожелает. Если просто тыкаться по меткам панорамио в программе, внешние окна не будут появляться. Если тыкаться во встроенном окне, всегда откроется новое, если уже в новом тыкаться, оно будет внутри себя открываться или в новом как обычное окно IE, по желанию юзера или вебмастера.

>При этом оказываются открытыми как минимум два окна, причем разных по поведению
Ну по идее хотелка открывать по шифту ссылку в панорамио сразу в новом окне несколько обособлена от хотелки насчёт хоткеев. И она вполне решит эту проблему. Надо - сразу откроется внешнее окно.

Насчёт последнего неудобства не понял. Напишите в M$, пусть научатся закрывать IE по ESC.
(0001206)
nafa (reporter)
13-03-2011 20:14

Это не хотелка, это обходной способ решения проблемы. Внутреннее окно для меня предпочтительнее, т.к. оно открывается мгновенно, а IE даже 6й грузится с ощутимой задержкой не говоря уж про более современных монстров. Но если разработчики говорят, что ничего с горячими клавишами сделать не могут, то готов и потерпеть.

- Users who viewed this issue
User List Anonymous (2582x), hrucker (3x)
Total Views 2585
Last View 16-04-2024 18:08

- Issue History
Date Modified Username Field Change
11-03-2011 19:24 nafa New Issue
11-03-2011 20:40 vdemidov Note Added: 0001180
11-03-2011 20:40 vdemidov Status new => acknowledged
12-03-2011 04:03 gpsMax Tag Attached: panoramio
12-03-2011 04:03 gpsMax Tag Attached: браузер
12-03-2011 16:35 nafa Note Added: 0001193
12-03-2011 16:35 nafa Note Edited: 0001193 View Revisions
12-03-2011 20:14 vasketsov Note Added: 0001194
12-03-2011 20:28 nafa Note Added: 0001195
12-03-2011 21:11 vasketsov Note Added: 0001196
12-03-2011 21:45 nafa Note Added: 0001197
12-03-2011 21:45 nafa Note Edited: 0001197 View Revisions
12-03-2011 21:45 vasketsov Note Added: 0001198
12-03-2011 22:07 vasketsov Note Added: 0001199
13-03-2011 20:14 nafa Note Added: 0001206
16-03-2011 13:11 vdemidov Target Version => 40xxxx
07-04-2011 02:58 gpsMax Tag Attached: горячие клавиши
11-04-2011 07:11 vdemidov Status acknowledged => confirmed
06-06-2011 21:42 gpsMax Priority normal => none
21-07-2011 19:32 vdemidov Relationship added has duplicate 0000882
17-08-2011 08:18 vdemidov Status confirmed => resolved
17-08-2011 08:18 vdemidov Fixed in Version => 120808
17-08-2011 08:18 vdemidov Resolution open => fixed
17-08-2011 08:18 vdemidov Assigned To => vdemidov
17-08-2011 08:18 vdemidov Target Version 40xxxx => 120808
17-08-2011 08:18 vdemidov Relationship added related to 0000916
10-10-2012 11:50 Tolik Status resolved => closed



Copyright © 2007 - 2024 SAS.Planet Team