diff --git a/files/bin/executables/ImageViewer.exe b/files/bin/executables/ImageViewer.exe
index 5a1f311..cac0f21 100644
Binary files a/files/bin/executables/ImageViewer.exe and b/files/bin/executables/ImageViewer.exe differ
diff --git a/src/ImageViewer.lpi b/src/ImageViewer.lpi
index 427118b..e715f8a 100644
--- a/src/ImageViewer.lpi
+++ b/src/ImageViewer.lpi
@@ -14,6 +14,7 @@
+
@@ -26,9 +27,8 @@
-
-
-
+
+
diff --git a/src/ImageViewer.res b/src/ImageViewer.res
index 388dbbb..f8bbfd8 100644
Binary files a/src/ImageViewer.res and b/src/ImageViewer.res differ
diff --git a/src/ufullscreen.lfm b/src/ufullscreen.lfm
index f89ae78..c1f23a7 100644
--- a/src/ufullscreen.lfm
+++ b/src/ufullscreen.lfm
@@ -23,7 +23,7 @@ object frmFullscreen: TfrmFullscreen
OnShow = FormShow
PopupMenu = PopupMenu1
Position = poOwnerFormCenter
- LCLVersion = '2.2.4.0'
+ LCLVersion = '3.4.0.0'
object Image1: TImage
Left = 0
Height = 241
diff --git a/src/ufullscreen.pas b/src/ufullscreen.pas
index 8a80f02..d5a907e 100644
--- a/src/ufullscreen.pas
+++ b/src/ufullscreen.pas
@@ -302,6 +302,12 @@ procedure TfrmFullscreen.FormCreate(Sender: TObject);
MenuItemMoniters.Add(childItem);
end;
+ // disable StayOnToo menu because somehow setting it off causes app close when start inFrame mode from command-line.
+ if (not FisStartNormal) then
+ begin
+ MenuItemStayOnTop.Enabled:=false;
+ end;
+
self.Visible:=false; // Don't set to true.
self.ShowInTaskBar:=stNever;
@@ -428,7 +434,6 @@ procedure TfrmFullscreen.StartSlideshow(startIndex:integer);
Shuffle(FFileList);
TimerInterval.tag:= RandomRange(0,FFileList.Count-1);
end;
-
end else
begin
TimerInterval.tag:=0;
@@ -752,9 +757,6 @@ procedure TfrmFullscreen.ResizeImage();
curWidth := screen.Monitors[FOptIntMoniter].Width;
curHeight:= screen.Monitors[FOptIntMoniter].Height;
end;
- {$ifdef Mydebug}
- OutputDebugString(PChar(TrimRight( 'curWidth: ->' + intToStr(curWidth))));
- {$endif}
if FStretch then begin
Image1.Stretch:=true;
@@ -956,6 +958,9 @@ procedure TfrmFullscreen.TimerFadeInTimer(Sender: TObject);
var
iNext:integer;
begin
+ {$ifdef Mydebug}
+ OutputDebugString(PChar(TrimRight( 'TimerFadeInTimer') ));
+ {$endif}
if FFileList.Count = 0 then
begin
TimerInterval.Enabled:=false;
diff --git a/src/umain.pas b/src/umain.pas
index 8443753..b224401 100644
--- a/src/umain.pas
+++ b/src/umain.pas
@@ -6,7 +6,7 @@
* No extra components required.
### Compiled and tested on
- Windows 11: Lazarus 2.2.2 FPC 3.2.2 x86_64-win64-win32/win64
+ Windows 11: Lazarus 3.4 FPC 3.2.2 x86_64-win64-win32/win64
Windows 10: Lazarus 1.8.0 r56594 FPC 3.0.4 x86_64-win64-win32/win64
Ubuntu 22.04.1 LTS: Lazarus 2.2.0 FPC 3.2.2 x86_64-linux-gtk2
Ubuntu 17.10 (64bit): Lazarus 1.8.0 rc4+dfsg-1 FPC 3.0.2 x86_64-linux-gtk2
@@ -15,11 +15,12 @@
macOS 10.11.6 (64bit) El Capitan: Lazarus 1.9.0 carbon trunk, FPC 3.0.4
### Known issues and bugs:
- On Windows, inFrame "window" does not have shaddow. < Fixed by EnableBlur.
+ On Windows, inFrame "window" does not have shaddow. < Fixed with EnableBlur.
On Windows, PNG (depth 24) antialising isn't working when stretch.
https://forum.lazarus.freepascal.org/index.php?topic=24408.0
http://forum.lazarus.freepascal.org/index.php?topic=19542.0
On Ubuntu, inFrame transit effect doesn't seem to be working..
+ On Ubuntu 24.04, BorderStyle:=bsSizeable has some issues.
On macOS, inFrame transit effect won't work?
On macOS El Capitan, the top bar won't hide. It's fine on High Sierra.
On macOS, trayicon won't show up correctly. Black filled.->disabled
@@ -27,9 +28,8 @@
Cocoa based 64bit apps for macOS may not be ready some time soon...
### TODO:
-* StayOnTop on/off when inFrame mode.
* Blur effect on/off option. Need to find a way to enable on fullscreen with a modal window first...
-* WebP support.
+* WebP support. Preferably without Dlls or external components.
* Better zooming.
### Backlog:
@@ -304,7 +304,7 @@ procedure TfrmMain.FormCreate(Sender: TObject);
i,f:integer;
configFile:string;
begin
- FstrAppVer:='1.3.9.3';
+ FstrAppVer:='1.4.0.1';
// Init Main form properties.
self.Caption:=ReplaceStr(ExtractFileName(ParamStr(0)),ExtractFileExt(ParamStr(0)),'');
@@ -1682,8 +1682,6 @@ procedure TfrmMain.MenuItemSlideshowInFrameClick(Sender: TObject);
FOrigWndState:=WindowState;
FOrigBounds:= BoundsRect;
- Hide;
-
// a little hack. to workaround some issue for inFrame start and image cripping.
if FisStartNormal then
begin
@@ -1699,8 +1697,6 @@ procedure TfrmMain.MenuItemSlideshowInFrameClick(Sender: TObject);
EnableBlur; // TODO: make this an option.
end;
- Show;
-
if FisStartNormal then
begin
self.left := self.left + GetSystemMetrics(SM_CYFRAME);
@@ -1733,7 +1729,7 @@ procedure TfrmMain.MenuItemSlideshowInFrameClick(Sender: TObject);
self.Caption:='InFrame Slideshow';
frmFullscreen := TfrmFullscreen.create(self);
frmFullScreen.StartWith:=FiCurrentFileIndex;
- frmFullscreen.Color := self.color; ;
+ frmFullscreen.Color := self.color;
frmFullscreen.Parent := self;
// Set main form popup.
self.PopupMenu:= frmFullscreen.PopupMenu;
@@ -1794,15 +1790,6 @@ procedure TfrmMain.DoneInFrame(strCurr :string);
// https://forum.lazarus.freepascal.org/index.php?topic=38675.0
Hide;
self.BorderStyle:=bsSizeable;
-
- Form := TForm.Create(nil);
- try
- Parent := Form;
- Parent := nil;
- finally
- Form.Free;
- end;
-
Show;
//BoundsRect:= FOrigBounds;
@@ -1886,29 +1873,33 @@ procedure TfrmMain.SetStayOnTop(bln:Boolean);
{$ifdef windows}
if FisInFrame then
begin
- // "FormStyle:=fsNormal" causes window pos to move to 0,0 so..
- BeforeBounds:= BoundsRect;
+ if FisStartNormal then
+ begin
+ // "FormStyle:=fsNormal" causes window pos to move to 0,0 so..
+ BeforeBounds:= BoundsRect;
- // This isn't working for windows... calling this(FormStyle:=fsNormal) twice seems to work but...
- self.FormStyle:=fsNormal;
+ // This isn't working for windows... calling this(FormStyle:=fsNormal) twice seems to work but...
+ self.FormStyle:=fsNormal;
- MenuItemStayOnTop.Checked:=false;
- self.FoptStayOnTop:=false;
+ MenuItemStayOnTop.Checked:=false;
+ self.FoptStayOnTop:=false;
- if FisStartNormal then
- begin
- self.BorderStyle:=bsNone; // Forgot what this was for. Why did I put this here?
- end;
+ //self.BorderStyle:=bsNone; // Forgot what this is for. Why did I put this here?
- // Needed to this HERE again.... I don't know why.
- self.FormStyle:=fsNormal;
+ // Needed to this HERE again.... I don't know why.
+ self.FormStyle:=fsNormal;
- // Blur again
- DoubleBuffered := True;
- EnableBlur;
+ // Blur again
+ DoubleBuffered := True;
+ EnableBlur;
- // re-set position.
- BoundsRect := BeforeBounds;
+ // re-set position.
+ BoundsRect := BeforeBounds;
+ end else
+ begin
+ // (FOptStartInFrame) somehow setting it off causes app to close.
+
+ end;
end else
begin
self.FormStyle:=fsNormal;
@@ -1925,8 +1916,7 @@ procedure TfrmMain.SetStayOnTop(bln:Boolean);
{$endif}
end;
end;
- //self.FoptStayOnTop:=bln;
- //MenuItemStayOnTop.Checked:=bln;
+
end;
procedure TfrmMain.ApplicationProperties1Exception(Sender: TObject; E: Exception);