MaxRusov / far-plugins

Automatically exported from code.google.com/p/far-plugins
49 stars 12 forks source link

Review и b5838+ - попытаемся починить #58

Open VictorVG opened 3 years ago

VictorVG commented 3 years ago

В b5838 было удалено событие _DNENTERIDLE - выписка из changelog фар-а:

drkns 29.06.2021 00:41:42 +0100 - build 5838

  1. Eradicate idle events. Use ACTL_SYNCHRO if you need one.

а вместо него предлагается использовать ACTL_SYNCHRO. В Review событие _DNENTERIDLE используется в ReviewClasses.pas::TModalStateDlg.DialogHandler():

  function TModalStateDlg.DialogHandler(Msg :Integer; Param1 :Integer; Param2 :TIntPtr) :TIntPtr; {override;}
  begin
//  Result := 1;
    case Msg of
      DN_RESIZECONSOLE:
        begin
          ResizeDialog;
          FarAdvControl(ACTL_SYNCHRO, SyncCmdUpdateTitle);
        end;
//    DN_HELP:
//      Review.SyncDelayed(SyncCmdUpdateWin, 100);  *)
      DN_ENTERIDLE:
        begin
          if FHidden then
            Review.UpdateWindowPos;
        end;
    end;
    Result := inherited DialogHandler(Msg, Param1, Param2);
  end;

как вариант я думаю можно выкинуть проверку

DN_ENTERIDLE:
        begin
          if FHidden then
            Review.UpdateWindowPos;
        end;

только не понятно чем заменить событие DN_ENTERIDLE, разве что позвать ACTL_SYNCHRO(,null)?

VictorVG commented 3 years ago

Вдогонку - кроме Review проверка выловила и другие плагины (авторы разные, но сам факт поломки общий):

Вот с ходу список поломанного:

проверено на b5839:

Sniffer - выбираем сеть, запускаем ловлю пакетов и бесконечное "Ожидание внешнего модуля" PlgMenu - в списке плагинов курсор перескакивает чётные строки, потому эти плагины не управляемы Review - запустился - закрылся, но если держать нажатым хоткей запуска то пару секунд видео сыграет... AltHistory - В окне любого фильтра при вводе любого символа он удваивается