Bug 33189

Summary: TCustomEdit прыжок курсора вправо при удалении
Product: Branch p8 Reporter: Артём <temap>
Component: lazarusAssignee: Andrey Cherepanov <cas>
Status: CLOSED FIXED QA Contact: qa-p8 <qa-p8>
Severity: normal    
Priority: P3    
Version: не указана   
Hardware: all   
OS: Linux   
URL: http://freepascal.ru/forum/viewtopic.php?t=17326

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)