Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

28 Сентябрь 2020, 20:18 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Здесь можно поблагодарить участников форума Улыбка
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Как показать нужную страницу  (Прочитано 589 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Борис_С
Форумчанин
***
Offline Offline

Сообщений: 83


« Стартовое сообщение: 5 Август 2020, 15:28 »

Всем доброго дня!
Столкнулся с такой проблемой: могу переместить курсор на нужную страницу (метод jumpToPage(n)),
но при этом на экране не высвечивается страница, на которую переместился курсор.
Как показать на экране нужную страницу?
Записан
Борис_С
Форумчанин
***
Offline Offline

Сообщений: 83


« Ответ #1: 12 Август 2020, 16:21 »

Разобрался. Когда работаю с макросом как с расширением, все работает как нужно.
Когда работаю с макросом в отладчике, результаты другие: нужная страница не высвечивается.
Наверное, нужно рассказать об этой ошибке разработчикам.
Кто-нибудь знает, как с ними связаться?
Записан
mikekaganski
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 2 043


« Ответ #2: 12 Август 2020, 16:35 »

Почему Вы считаете это ошибкой? Метод jumpToPage меняет положение курсора, а не переключает активные окна. Всё правильно.
Записан

С уважением,
Михаил Каганский
Борис_С
Форумчанин
***
Offline Offline

Сообщений: 83


« Ответ #3: 12 Август 2020, 17:22 »

А разве это правильно получать разные результаты в отладчике и в расширении, которые работают с одним и тем же макросом?
Записан
mikekaganski
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 2 043


« Ответ #4: 12 Август 2020, 17:26 »

Что значит "разные"? Результат - перемещение курсора. Это происходит в любом случае. Если при этом окно Writer неактивно (потому что активно окно отладчика), оно и остаётся неактивным.

Или Вы говорите, что в Writer Ваш (неизвестный) код не перемещает курсор? Без нормального описания, кода и тестового документа ничего сказать нельзя.
Записан

С уважением,
Михаил Каганский
Борис_С
Форумчанин
***
Offline Offline

Сообщений: 83


« Ответ #5: 12 Август 2020, 17:41 »

Я делаю окно Writer активным, но оно остается в том же состоянии, что и до перемещения курсора.
Записан
mikekaganski
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 2 043


« Ответ #6: 12 Август 2020, 18:27 »

Так и не увидев конкретный код, проверил это на документе Writer с несколькими страницами под LO 7.0.0.3:

Код:
ThisComponent.CurrentController.ViewCursor.jumpToPage(3)

Как и ожидалось, курсор перемещается нормально в обоих случаях. При этом в случае если окно Writer активно, вид также перемещается за курсором; если неактивно - вид не обновляется (как и реализовано в SwCursorShell::UpdateCursor).

Так что всё работает как задумано. Курсор перемещается корректно. То, что при активном окне дополнительно и вид перемещается, чтобы не вводить пользователя в заблуждение - это побочный эффект, и это не связано с отладчиком: то же самое будет и без отладчика, если работа происходит в неактивном окне (скажем, другой документ или другое приложение активны при срабатывании таймера).

Логика в том, что неактивный документ не должен мельтешить на заднем плане - не с ним идёт работа; при этом не тратятся ресурсы на никому не нужную перерисовку.
Записан

С уважением,
Михаил Каганский
Борис_С
Форумчанин
***
Offline Offline

Сообщений: 83


« Ответ #7: 12 Август 2020, 19:11 »

Возможно, так и было задумано, но для отладки расширения это очень неудобно.
Записан
mikekaganski
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 2 043


« Ответ #8: 13 Август 2020, 11:49 »

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

Но возможно, Вы могли бы написать enhancement request на тему "опция для активации окна текущего документа по F5 в отладчике".
« Последнее редактирование: 13 Август 2020, 11:54 от mikekaganski » Записан

С уважением,
Михаил Каганский
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!