Полезная информация

Mozilla Россия — свежие версии программ Mozilla, а также масса полезной информации по каждому продукту.

№5115-08-2009 04:40:48

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 3.5

Re: Разработка Сustom Buttons

Эта идея требует тщательного обдумывания.
Может быть, когда-нибудь потом, но не сейчас.

Если уже все починилось, то это не приоритетно, разумеется. Однако это мне видится несколько более простым подходом, чем правка оверлея «на лету».

Первоначальный вопрос, напомню, был "Что не так с компонентой" : )

Бррр... так я совсем запутаюсь.
Итого: компонента работает, chrome.manifest – нет.
А я имел в виду, что раз проблема в chrome.manifest, в нем и баг, точнее, в том, как этот файл обрабатывается при запуске приложения.
В общем, проехали.

Наверное, если поставить observer вместо null, который будет загружать следующий оверлей, падать не будет.

Вполне возможно, там в комментах к багу есть хитрый код для загрузки нескольких оверлеев (var overlay_loader= ...) и, вроде как, с observer'ом тоже баг:

Выделить код

Код:

observe: function(subject,topic,data)
    {
    // don't bother to do anything because we cannot
    // guarantee that this observer will be called anyway
    }

Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№5215-08-2009 18:52:47

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: Разработка Сustom Buttons

Однако это мне видится несколько более простым подходом, чем правка оверлея «на лету».

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


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№5315-08-2009 19:41:45

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 3.5

Re: Разработка Сustom Buttons

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

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


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№5415-08-2009 20:08:37

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: Разработка Сustom Buttons

А биндинги нельзя повесить вручную

Уже не надо. Вот так: http://www.mozdev.org/source/browse/custombuttons/src/chrome/custombuttons/content/custombuttons/tcbbutton.xul?rev=1.1.8.2;content-type=text%2Fplain;f=h работает.
Не нравится, правда, что в некоторых случаях (http://forum.mozilla-russia.org/viewtopic.php?pid=282054#p282054) это может зависеть от порядка следования элементов <script>


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№5515-08-2009 20:42:37

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 3.5

Re: Разработка Сustom Buttons

А если как-то так:

Выделить код

Код:

<script type="application/x-javascript;version=1.8" src="chrome://custombuttons/content/cbbutton-loader.js"/>
<script type="application/x-javascript;version=1.7" src="chrome://custombuttons/content/cbbutton-loader.js"/>
<script type="application/x-javascript;version=1.6" src="chrome://custombuttons/content/cbbutton-loader.js"/>
<script type="application/x-javascript" src="chrome://custombuttons/content/cbbutton-loader.js"/>

cbbutton-loader.js:

Выделить код

Код:

if(!("custombuttonsLoaded" in window)) {
	Components.classes["@mozilla.org/moz/jssubscript-loader;1"]
		.getService(Components.interfaces.mozIJSSubScriptLoader)
		.loadSubScript("chrome://custombuttons/content/cbbutton.js");
	window.custombuttonsLoaded = true;
}

?
(И перечислять версии от новых к старым.)


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№5615-08-2009 20:52:21

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: Разработка Сustom Buttons

Infocatcher пишет

А если как-то так:

Выделить код

Код:

<script type="application/x-javascript;version=1.8" src="chrome://custombuttons/content/cbbutton-loader.js"/>
<script type="application/x-javascript;version=1.7" src="chrome://custombuttons/content/cbbutton-loader.js"/>
<script type="application/x-javascript;version=1.6" src="chrome://custombuttons/content/cbbutton-loader.js"/>
<script type="application/x-javascript" src="chrome://custombuttons/content/cbbutton-loader.js"/>

cbbutton-loader.js:

Выделить код

Код:

if(!("custombuttonsLoaded" in window)) {
	Components.classes["@mozilla.org/moz/jssubscript-loader;1"]
		.getService(Components.interfaces.mozIJSSubScriptLoader)
		.loadSubScript("chrome://custombuttons/content/cbbutton.js");
	window.custombuttonsLoaded = true;
}

?
(И перечислять версии от новых к старым.)

Не пойму, в чём суть.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№5715-08-2009 20:53:59

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 3.5

Re: Разработка Сustom Buttons

Не пойму, в чём суть.

Суть в том, что скрипты из chrome://custombuttons/content/cbbutton.js гарантированно выполнятся только один раз и с наибольшей версией js. Ну, в теории. =)

Отредактировано Infocatcher (15-08-2009 20:54:29)


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№5815-08-2009 21:04:59

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: Разработка Сustom Buttons

Суть в том, что скрипты из chrome://custombuttons/content/cbbutton.js гарантированно выполнятся только один раз и с наибольшей версией js. Ну, в теории.

Ну, может быть.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№5916-08-2009 00:48:28

Al_H
Away
 
Группа: Members
Откуда: SPb
Зарегистрирован: 10-06-2005
Сообщений: 5508
UA: Shiretoko 3.5

Re: Разработка Сustom Buttons

Anton пишет

Впрочем, можешь пировать победу над селектором версий

Какая фраза!

Прошу пардона, а с селектором стиль-тема все глухо пока?

Отсутствует

 

№6016-08-2009 00:59:08

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: Разработка Сustom Buttons

Al_H
http://forum.mozilla-russia.org/viewtopic.php?pid=359992#p359992


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№6120-08-2009 17:41:00

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: Разработка Сustom Buttons

Размышляю по поводу http://forum.mozilla-russia.org/viewtopic.php?pid=365834#p365834
Стоит или не стоит добавлять в "api" что-нибудь вроде sendKey, и если стоит, какая у этой функции должна быть сигнатура ?


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№6220-08-2009 20:23:00

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 3.5

Re: Разработка Сustom Buttons

Anton пишет

Стоит или не стоит добавлять в "api" что-нибудь вроде sendKey

Ну, самый удобный вариант – это как в Mouse Gestures Redox, чтобы с диалогом. Но количество кода для реализации плохо соотносится с получаемой пользой, по-моему. А в противном случае не особо ясно, куда там сокращать код – и так не много, а тем, кто «в курсе» – наоборот труднее будет, с нестандартной функцией-то (а в код расширения лезть, разумеется, лень :D).
К тому же, вроде бы, что-то может реагировать на keyup. Или тогда всю последовательность keydown -> keypress -> keyup эмулировать.
Вот как-то так:

Выделить код

Код:

custombuttons.dispatchKeyEvent(
	["keydown", "keypress", "keyup"],
	true /*ctrlKey*/, false /*altKey*/, false /*shiftKey*/, false /*metaKey*/,
    "VK_SPACE"
);

Добавлено 20-08-2009 20:30:06
А, может, custombuttons.sendKey и лучше будет.
При желании можно и просто sendKey, если передавать эту функцию в виде аргумента.


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№6320-08-2009 21:23:02

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: Разработка Сustom Buttons

Ну, я предполагал по типу ms wsh object. sendKeys (string)
Примерно sendKey (key[, object])
Но, наверное, не такая уж востребованная функция.

startProcess часто используется, как будто бы, но не знаю, как она работает в не-windows системах.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№6426-08-2009 08:18:47

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 3.5

Re: Разработка Сustom Buttons

Мне тут про деструкторы кнопок подумалось.
А не достаточно ли просто перед каждым вызовом инициализации проверять, есть ли у кнопки метод destroy, и запускать его при наличии. Ну, а при unload окна пусть этот метод вызывается из XBL-деструктора.

Примерно в таком духе:

Выделить код

Код:

var button = ...;
if("destroy" in button && (!("hasOwnProperty" in button) || button.hasOwnProperty("destroy")))
	button.destroy.call(button); // Кнопка уже была инициализирована и определила метод "destroy"
try {
	new Function("arg0,arg1", button.getAttribute("cb-init")).call(button, arg0, arg1);
}
...

(А destroy может всплыть от Object.prototype, а также можно сделать this.__proto__ = null; в инициализации кнопки.)

Отредактировано Infocatcher (26-08-2009 08:30:48)


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№6526-08-2009 18:02:26

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: Разработка Сustom Buttons

перед каждым вызовом инициализации проверять, есть ли у кнопки метод destroy

В конструкторе такая проверка есть давно.

а также можно сделать this.__proto__ = null; в инициализации кнопки.

: )
И как потом быть с интерфейсом nsIDOMNode ?


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№6626-08-2009 19:53:46

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 3.5

Re: Разработка Сustom Buttons

Anton пишет

В конструкторе такая проверка есть давно.

Хы, а я как-то только про потерявшиеся XBL-деструкторы осознал, а прочие эффекты или пропустил, или не уловил из пояснений.
А проверить поленился. =)

И как потом быть с интерфейсом nsIDOMNode ?

Туго без него, ага. Пожалуй, все равно без Object.prototype в начале цепочки прототипов ничего полезного не получится.

P.S. Странно, не вызывается this.destroy.
Инициализация:

Выделить код

Код:

this.clickHandler = function() {
	setTimeout(function() { throw "Click"; }, 0);
}
window.addEventListener("click", this.clickHandler, true);
this.destroy = function() {
	alert("destroy");
	window.removeEventListener("click", this.clickHandler, true);
};
var _this = this;
window.addEventListener("dblclick", function f() {
	window.removeEventListener("dblclick", f, true);
	setTimeout(function() { throw "dblclick -> destroy()"; }, 0);
	_this.destroy();
}, true);

Или я снова что-то не учел?

Добавлено 26-08-2009 19:56:44
P.P.S. Увидел, что контекст выполнения в destroy() не передается. Но это в данном случае не важно – alert все равно не выскакивает.

Добавлено 26-08-2009 20:04:18
Ну, и с вот таким кодом – тоже не вызывается:

Выделить код

Код:

this.clickHandler = function() {
	setTimeout(function() { throw "Click"; }, 0);
}
var _this = this;
window.addEventListener("click", this.clickHandler, true);
this.destroy = function() {
	alert("destroy");
	window.removeEventListener("click", _this.clickHandler, true);
};
window.addEventListener("dblclick", function f() {
	window.removeEventListener("dblclick", f, true);
	setTimeout(function() { throw "dblclick -> destroy()"; }, 0);
	_this.destroy();
}, true);

Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№6726-08-2009 20:06:15

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: Разработка Сustom Buttons

Infocatcher пишет

Странно, не вызывается this.destroy.

Ну так деструктора в toolbarbutton.xml нет - кто его позовёт ? : )


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№6826-08-2009 21:03:57

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 3.5

Re: Разработка Сustom Buttons

Anton пишет

Ну так деструктора в toolbarbutton.xml нет - кто его позовёт ? : )

Речь шла о пересоздании кнопки aka кнопка Применить в редакторе.
Т.е. destroy средствами CB вообще никогда не вызывается. Или я как-то не так тестирую.

Добавлено 26-08-2009 21:05:46
Это я вот это тестирую:

перед каждым вызовом инициализации проверять, есть ли у кнопки метод destroy

В конструкторе такая проверка есть давно.

Отредактировано Infocatcher (26-08-2009 21:06:32)


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№6926-08-2009 21:24:01

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: Разработка Сustom Buttons

Infocatcher пишет

Т.е. destroy средствами CB вообще никогда не вызывается.

Ну почему не вызывается - при удалении кнопки вызывается. При инициализации не вызывается, это верно. Как верно и то, что в конструкторе есть вызов destroy : )

С деструкторами я запамятовал - задумывалось, что штатным обработчиком кнопки будет onDestroy, а destroy - это служебная функция в cbbuttonimpl.js.
Но раз уж это случилось, теперь будут два штатных обработчика - destroy/onDestroy.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№7026-08-2009 22:56:58

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 3.5

Re: Разработка Сustom Buttons

А еще может быть ondestroy. =)
А штатный обработчик, по-моему, лучше делать, например, в виде cbDestroy. Впрочем, уже и так весьма разнообразно и нету какого-то особенного отличительного признака у «внутренних» полей.

Кстати, можно еще передавать в функцию-деструктор параметр, определяющий, удаление это или обновление кода.


И несколько идей касательно интерфейса.

1. «Кнопка была успешно создана. Вы можете добавить её на любую панель инструментов через меню "Вид -> Панели инструментов -> Настроить..."»
Можно заменить многоточие одним юникодным символом (…) – по аналогии с надписями в самом Firefox. И остальных местах тогда тоже заменить.

И, мне кажется, удобнее сделать как-то так:
v Больше не показывать это сообщение
[Ok] [Настроить…]

[Настроить…] открывает диалог настройки панелей инструментов.

2. «Обновить кнопку " ... " кодом кнопки " ... " ?»
Аналогично:
[Ok] [Редактировать…] [Отмена]

Собственно, хотя вряд ли кто проверяет, но запускать что-то там, не видя кода, как-то не особо. =)

3. Не прикрутить ли контекстное меню к диалогу настройки панелей инструментов? И там, соответственно, как минимум, «редактировать» и «удалить».


[UPD]
Немного подкорректировал.

Отредактировано Infocatcher (26-08-2009 23:07:04)


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№7127-08-2009 18:33:13

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: Разработка Сustom Buttons

Infocatcher
Постараюсь не забыть.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№7214-12-2009 23:27:03

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 3.5

Re: Разработка Сustom Buttons

Мне тут подумалось, что хорошо бы сделать возможность редактирования произвольной кнопки (а не той, что видна и с контекстным меню).
А то пару раз уже приходилось делать разные финты ушами из-за неточностей в коде, делавших недоступной или саму кнопку, или контекстное меню.
Тут мне видятся два пути – или «редактор редакторов» со списком всех кнопок, или возможность выбора редактируемой кнопки в уже имеющемся редакторе.

И, пожалуй, не помешает возможность отключения инициализации кнопок при запуске. Мало ли, что там, не руками же из-за этого XML'ку править. Можно и руками, конечно, но только удалять – править уже муторно.
Например, при запуске с неким параметром командной строки (как в Stylish).


Также при поиске по Ctrl+/ хочется навигации по результатам через Enter/Shift+Enter или стрелки вниз/вверх (а то Enter мимо поля закроет диалог).
И, возможно, не стоит закрывать диалог поиска по Ctrl+F (не припомню ни одного примера, чтобы подобные окошки сразу закрывались).


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№7315-12-2009 17:00:58

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: Разработка Сustom Buttons

Infocatcher

хорошо бы сделать возможность редактирования произвольной кнопки (а не той, что видна и с контекстным меню).

Я помню про контекстное меню в диалоге настройки панелей инструментов.
И не только меню.
В этом году уже вряд ли сделаю, в чём винюсь конечно, но ничего не поделаешь.

возможность отключения инициализации кнопок при запуске. Мало ли, что там, не руками же из-за этого XML'ку править. Можно и руками, конечно, но только удалять – править уже муторно.
Например, при запуске с неким параметром командной строки (как в Stylish).

Если будут предложения по наименованию параметра командной строки - готов рассмотреть, если нет - придумаю сам : )

Также при поиске по Ctrl+/ хочется навигации по результатам через Enter/Shift+Enter или стрелки вниз/вверх (а то Enter мимо поля закроет диалог).
И, возможно, не стоит закрывать диалог поиска по Ctrl+F (не припомню ни одного примера, чтобы подобные окошки сразу закрывались).

Вот насчет первого - не знаю. Есть ведь навигация по F3/Shift+F3. Завершение по Enter - почти как в Emacs, вроде удобно. А "Enter мимо поля закроет диалог" - это как воспроизвести ?
Насчёт второго - может быть, но за пример брал PSPad, там именно так. Дальше можно по F3/Shift+F3.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№7415-12-2009 18:11:51

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 3.5

Re: Разработка Сustom Buttons

Я помню про контекстное меню в диалоге настройки панелей инструментов.

И это тоже. Но меня тут угораздило чуть промахнуться с кодом и скрыть кнопку «пользовательским» стилем (да еще и с important-флагом). К счастью, промахнулся я не до конца, и кнопку можно было показать добавлением атрибута.

Если будут предложения по наименованию параметра командной строки - готов рассмотреть, если нет - придумаю сам : )

Ну, «custombuttons» там должно в любом случае присутствовать. =)
Что-то вроде «-custombuttons-disable-initialization», хотя и длинновато.
Или даже «-custombuttons-safe-mode».
Первое лучше отражает суть, второе – понятнее для «непосвященных».
Возможно, второй вариант практичнее – вдруг когда-нибудь потом понадобится отключать что-то еще. Те же хоткеи. Допустим, стороннее расширение устраивает вечный полноэкранный режим, а выход из него – только переназначенным через CB хоткеем. Пример сферичен, конечно (к тому же, встроенный -safe-mode должен позволить все лишнее поотключать), но мало ли.

Есть ведь навигация по F3/Shift+F3.

А тут простой пример в лице поиска в Firefox. (Shift+)F3 есть, но есть и (Shift+)Enter.

А "Enter мимо поля закроет диалог" - это как воспроизвести ?

Там же <dialog>, и если не перехватить нажатие Enter, то он выполнит умолчальное действие (эквивалент нажатия на Ok) и закроется. А разный эффект от одного и того же действия далеко не всегда удобен.

Насчёт второго - может быть, но за пример брал PSPad, там именно так. Дальше можно по F3/Shift+F3.

Тогда не знаю. Или вот настройку добавить – для привыкших к иному поведению или сторонников орудовать мышкой. =)
С тем же успехом можно добавить галочку для учета регистра на панель быстрого поиска.

P.S.

В этом году уже вряд ли сделаю, в чём винюсь конечно, но ничего не поделаешь.

Торопиться особо некуда. Было бы определенное сочетание необходимости и наличия свободного времени, сам бы докрутил что-нибудь. =) Но я же ленюсь. :D

Добавлено 15-12-2009 18:21:01
Заодно небольшой баг:
Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.5) Gecko/20091204 Thunderbird/3.0
65def966cc61.png

sizeToContent(), что ли, делать...

И, раз уж на то пошло, в заголовке хочется написать «Custom Buttons: ...».

Отредактировано Infocatcher (15-12-2009 18:22:23)


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№7515-12-2009 18:43:35

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: Разработка Сustom Buttons

Там же <dialog>, и если не перехватить нажатие Enter, то он выполнит умолчальное действие (эквивалент нажатия на Ok) и закроется. А разный эффект от одного и того же действия далеко не всегда удобен.

Не понимаю.
По Ctrl+/ открывается поле поиска, фокус передается ему.
По Enter поле поиска закрывается.
Без разного эффекта для Enter не обойтись всё равно, потому что в кодовых textbox'ах Enter должен вставлять перевод строки.

sizeToContent(), что ли, делать...

Он там есть, по onload и по oncommand. Правда, почему-то по onload в Thunderbird 3 не срабатывает.
Ладно, разберусь.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]