Bug 33189 - TCustomEdit прыжок курсора вправо при удалении
Summary: TCustomEdit прыжок курсора вправо при удалении
Status: CLOSED FIXED
Alias: None
Product: Branch p8
Classification: Distributions
Component: lazarus (show other bugs)
Version: не указана
Hardware: all Linux
: P3 normal
Assignee: Andrey Cherepanov
QA Contact: qa-p8@altlinux.org
URL: http://freepascal.ru/forum/viewtopic....
Keywords:
Depends on:
Blocks:
 
Reported: 2017-03-01 21:45 MSK by Артём
Modified: 2017-03-03 12:00 MSK (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Артём 2017-03-01 21:45:35 MSK
Просьба пропатчить два файла Лазаруса. Это реально критическая проблема, т.к. на всех собранный программах вылезает эта ошибка. Это пофиксят только в версии 1.8, которая неизвестно когда выйдет, но я взял этот фикс из того, что разработчики уже сделали:
В файле:
lcl/interfaces/gtk2/gtk2callback.inc
@@ -601,7 +601,7 @@
     begin
       {mark as invalid event for gtkchanged_editbox, so
        it doesn't update cursor pos or we have a mess.}
-      if (gtk_major_version = 2) and (gtk_minor_version < 17) then
+      // if (gtk_major_version = 2) and (gtk_minor_version < 17) then
       begin
         Info := GetWidgetInfo(Widget, False);
         include(Info^.Flags, wwiInvalidEvent);
И в файле:
lcl/interfaces/gtk2/gtk2widgetset.inc
@@ -465,7 +465,7 @@
          if GTK_IS_ENTRY(gObject) then
          begin
            ConnectSenderSignal(gObject,'backspace', @gtkchanged_editbox_backspace);
-           if (gtk_major_version = 2) and (gtk_minor_version < 17) then
+           // if (gtk_major_version = 2) and (gtk_minor_version < 17) then
              ConnectSenderSignal(gObject,'delete-from-cursor', @gtkchanged_editbox_delete);
          end;
          ConnectSenderSignal(gObject, 'changed', @gtkchanged_editbox);
Comment 1 Andrey Cherepanov 2017-03-02 12:08:25 MSK
Важность normal согласно https://www.altlinux.org/BugSeverityPolicy
Comment 2 Артём 2017-03-02 17:02:08 MSK
(В ответ на комментарий №1)
> Важность normal согласно https://www.altlinux.org/BugSeverityPolicy
Там написано:
major
    Ошибки, делающие пакет непригодным для использования широким кругом пользователей (в конфигурации по умолчанию, а также в других случаях по усмотрению мейнтейнера). 

Компонент Edit - он присутствует почти во всех программах на Lazarus. Глюк проявляется во всех производных: TEdit TCombobox TBDEdit и т.к., даже в редактируемых полях таблиц. Этот лазарус непригоден для использования в целях сборки почти любой программы, т.к. в этих полях невозможно использовать кнопки backspase и delete
Comment 3 Andrey Cherepanov 2017-03-02 17:28:32 MSK
(В ответ на комментарий №2)
> (В ответ на комментарий №1)
> > Важность normal согласно https://www.altlinux.org/BugSeverityPolicy
> Там написано:
> major
>     Ошибки, делающие пакет непригодным для использования широким кругом
> пользователей (в конфигурации по умолчанию, а также в других случаях по
> усмотрению мейнтейнера). 
> 
> Компонент Edit - он присутствует почти во всех программах на Lazarus. Глюк
> проявляется во всех производных: TEdit TCombobox TBDEdit и т.к., даже в
> редактируемых полях таблиц. Этот лазарус непригоден для использования в целях
> сборки почти любой программы, т.к. в этих полях невозможно использовать кнопки
> backspase и delete
Не горячитесь. В вышедшей вчера апстримной сборке 1.6.4 это исправлено. Сейчас я собираю ещё и новый fpc, поэтому нужно пару дней подождать.
Comment 4 Артём 2017-03-02 18:09:02 MSK
Я не горячился :-)
Я оправдывался за то, что поставил важность выше normal :-)
А Вам огромное спасибо за быструю реакцию на данную ошибку
Comment 5 Repository Robot 2017-03-03 12:00:34 MSK
lazarus-1:1.6.4-alt1 -> sisyphus:

* Thu Mar 02 2017 Andrey Cherepanov <cas@altlinux> 1:1.6.4-alt1
- New version (http://wiki.lazarus.freepascal.org/Lazarus_1.6.0_release_notes)
- Fix TCustomEdit behaviour in new upstream version (ALT #33189)