View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0013397 | Lazarus | Widgetset | public | 2009-03-25 16:04 | 2017-07-28 01:03 |
Reporter | Troodon | Assigned To | Ondrej Pokorny | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Product Version | 0.9.26 | ||||
Summary | 0013397: Lack of preview of minimized window on taskbar icon mouseover | ||||
Description | On Windows Vista, upon application window minimization, the icon in the task bar does not show a window preview (dynamic "thumbnail") on mouse over. This is (or should be) the default behaviour on Vista, however, it currently does not seem to work with the Win32 or the Gtk2 widgetsets. It does work as expected with the Qt4 widgetset (using Qt-4.3 for win32 runtime). | ||||
Tags | patch, thumbnail, vista, Windows 7 | ||||
Fixed in Revision | |||||
LazTarget | - | ||||
Widgetset | Win32/Win64 | ||||
Attached Files |
|
related to | 0017294 | resolved | Ondrej Pokorny | ShowInTaskBar = stNever does nothing |
child of | 0018499 | acknowledged | Lack of preview of minimized window on Flip3d |
|
1. Do you know how to enable that thumbnails? I'm trying with windows7 beta and all other application does not have them. 2. Can you attach some thumbnail example? |
|
Maybe this article will show the "trick": http://www.installationexcellence.com/articles/VistaWithDelphi/Original/Index.html Check the "Where’s My Induction (or, Why the Secret Window)?" This is a common problem with applications that have a hidden window (like Delphi ones). |
|
The technique in that link does not work, as Lazarus does not have the Application.Handle. I am not sure if Lazarus uses the "hidden window" triack that Delphi does, but implementing the solution provided in the link, substituting Application.Hnadle for Self.Handle does not work. |
|
After a bit of research the problem is how Lazarus handles the main form. In a regular windows application the main form is the main window, meanwhile in Lazarus and Delphi the main form is a hidden window which act as a "father" for all other forms. Once a window is minimized, it is not in fact minimized but hidden, that's the reason that we can not see the minimize effect in WinXP and up. As the window is hidden when Vista/Seven "ask" for the thumbnail inspecting the window it will catch the "hidden" flag and presents the "fancy" no preview thumbnail. So the only one solution is to not hide the main form, but this could end with a bunch of side effects. |
|
I guess (out of my hat) that Windows do the preview by sending a WM_PAINT message with DC; if that's the case maybe you we could redirect it to the main form. |
|
Strange, I have preview on my Windows 7. |
|
@Flávio: The window is hidden, not minimized so I think no paint message is sent at all, at least the form does not receive any LM_PAINT message. So the question is why Win32/64 forms are hidden instead minimized ? |
|
I had found several reasons to not get the preview when minimized and all work together to get get the "defect". 1) In win32callback.inc in the SC_MINIMIZE handler the window is hidden instead minimized. Using SW_MINIMIZE instead SW_HIDE do not seems to show any problem in a single regular form program. 2) In win32callback.inc in the SC_RESTORE handler the window is restored with SW_SHOWNA, using SW_SHOWNORMAL do not seems to show any problem in a single and regular form application. 3) In Win32WSForms in the CreateHandle function at the lines: if ((Application = nil) or (Application.MainForm <> lForm)) and ( not (csDesigning in lForm.ComponentState) and (lForm.ShowInTaskBar = stAlways)) then FlagsEx := FlagsEx or WS_EX_APPWINDOW; if lForm.AlphaBlend then FlagsEx := FlagsEx or WS_EX_LAYERED; The WS_EX_APPWINDOW is never applied as Application is not nil and Application.Mainform is always equal to lForm (AWincontrol) and also lForm.ShowInTaskBar should be in that case "<> stNever". I think this piece of code needs a rewrite like: if (( Application = nil ) or ( Application.MainForm = lForm ) or ( lForm.ShowInTaskBar = stAlways )) and not ( csDesigning in lForm.ComponentState ) then FlagsEx := FlagsEx or WS_EX_APPWINDOW; Applying this changes a regular form is minimized and maximized as any other windows application and preview is available when minimized. Side effects of this change not checked by now. |
|
Moving to 1.2 since requires rather big reimplementation of win32 AppHandle and MainForm usage. |
2011-01-25 07:43
|
preview.patch (2,622 bytes)
Index: lcl/interfaces/win32/win32callback.inc =================================================================== --- lcl/interfaces/win32/win32callback.inc (revision 29190) +++ lcl/interfaces/win32/win32callback.inc (working copy) @@ -799,34 +799,27 @@ SC_MINIMIZE: begin - if (Application <> nil) and (lWinControl <> nil) and - (Application.MainForm <> nil) and - (Application.MainForm = lWinControl) then - Window := TWin32WidgetSet(WidgetSet).AppHandle;//redirection - - if (Window = TWin32WidgetSet(WidgetSet).AppHandle) and - (Application <> nil) then + if Application <> nil then begin - if (Application.MainForm <> nil) then - begin - Windows.SetWindowPos(Window, HWND_TOP, + if (lWinControl <> nil) and (Application.MainForm = lWinControl) then begin + Windows.SetWindowPos(WidgetSet.AppHandle, HWND_TOP, Application.MainForm.Left, Application.MainForm.Top, Application.MainForm.Width, 0, SWP_NOACTIVATE); if Application.MainForm.HandleAllocated then Windows.ShowWindow(Application.MainForm.Handle, SW_HIDE); + end else if Window = WidgetSet.AppHandle then + begin + PLMsg^.Result := Windows.DefWindowProc(Window, WM_SYSCOMMAND, WParam, LParam); + WinProcess := False; + Application.IntfAppMinimize; end; - - PLMsg^.Result := Windows.DefWindowProc(Window, WM_SYSCOMMAND, WParam, LParam); - WinProcess := False; - Application.IntfAppMinimize; end; end; SC_RESTORE: begin - if (Window = TWin32WidgetSet(WidgetSet).AppHandle) and - (Application <> nil) then + if (Window = WidgetSet.AppHandle) and (Application <> nil) then begin PLMsg^.Result := Windows.DefWindowProc(Window, WM_SYSCOMMAND, WParam, LParam); WinProcess := False; @@ -2301,14 +2294,6 @@ begin Msg := LM_SIZE; SizeType := WParam or Size_SourceIsInterface; - if Window = TWin32WidgetSet(WidgetSet).AppHandle then - begin - if Assigned(Application.MainForm) and Application.MainForm.HandleAllocated then - begin - lWinControl := Application.MainForm; - Window := Application.MainForm.Handle; - end; - end; if IsIconic(Window) then begin GetWindowPlacement(Window, @WindowPlacement); |
|
I created the patch for this issue. |
2011-01-26 05:46
|
preview2.patch (4,173 bytes)
Index: lcl/include/customform.inc =================================================================== --- lcl/include/customform.inc (revision 29203) +++ lcl/include/customform.inc (working copy) @@ -632,7 +632,8 @@ DebugLn(['[TCustomForm.WMSize] ',DbgSName(Self),' Message.SizeType=',Message.SizeType,' Message.Width=',Message.Width,' Message.Height=',Message.Height,' AutoSizeDelayed=',AutoSizeDelayed]); {$ENDIF} - if (Parent=nil) and ((Message.SizeType and SIZE_SourceIsInterface)>0) then + if (BoundsLockCount = 0) and + (Parent=nil) and ((Message.SizeType and SIZE_SourceIsInterface)>0) then begin // this is a top level form (constraints depend on window manager) // and the widgetset set a size @@ -644,7 +645,8 @@ end; Assert(False, 'Trace:WMSIZE in TCustomForm'); - if not (csDesigning in ComponentState) then + if (BoundsLockCount = 0) and + not (csDesigning in ComponentState) then begin OldState := FWindowState; case (Message.SizeType and not SIZE_SourceIsInterface) of @@ -675,7 +677,9 @@ end; end; + BeginUpdateBounds; inherited WMSize(Message); + EndUpdateBounds; if (Message.SizeType and Size_Restored)>0 then begin Index: lcl/interfaces/win32/win32callback.inc =================================================================== --- lcl/interfaces/win32/win32callback.inc (revision 29203) +++ lcl/interfaces/win32/win32callback.inc (working copy) @@ -799,23 +799,12 @@ SC_MINIMIZE: begin - if (Application <> nil) and (lWinControl <> nil) and - (Application.MainForm <> nil) and - (Application.MainForm = lWinControl) then - Window := TWin32WidgetSet(WidgetSet).AppHandle;//redirection - - if (Window = TWin32WidgetSet(WidgetSet).AppHandle) and - (Application <> nil) then + if (Window = WidgetSet.AppHandle) and (Application <> nil) then begin - if (Application.MainForm <> nil) then - begin - Windows.SetWindowPos(Window, HWND_TOP, + if Application.MainForm <> nil then + Windows.SetWindowPos(WidgetSet.AppHandle, HWND_TOP, Application.MainForm.Left, Application.MainForm.Top, Application.MainForm.Width, 0, SWP_NOACTIVATE); - if Application.MainForm.HandleAllocated then - Windows.ShowWindow(Application.MainForm.Handle, SW_HIDE); - end; - PLMsg^.Result := Windows.DefWindowProc(Window, WM_SYSCOMMAND, WParam, LParam); WinProcess := False; Application.IntfAppMinimize; @@ -825,16 +814,10 @@ SC_RESTORE: begin - if (Window = TWin32WidgetSet(WidgetSet).AppHandle) and - (Application <> nil) then + if (Window = WidgetSet.AppHandle) and (Application <> nil) then begin PLMsg^.Result := Windows.DefWindowProc(Window, WM_SYSCOMMAND, WParam, LParam); WinProcess := False; - if (Application.MainForm <> nil) and Application.MainForm.HandleAllocated then - begin - if Application.MainForm.HandleObjectShouldBeVisible then - Windows.ShowWindow(Application.MainForm.Handle, SW_SHOWNA); - end; Application.IntfAppRestore; end; end; @@ -2297,18 +2280,15 @@ end; WM_SIZE: begin + if Window = WidgetSet.AppHandle then + begin + LMessage.Msg := LM_NULL; // no need to go through delivermessage + LMessage.Result := 0; + end else with TLMSize(LMessage) do begin Msg := LM_SIZE; SizeType := WParam or Size_SourceIsInterface; - if Window = TWin32WidgetSet(WidgetSet).AppHandle then - begin - if Assigned(Application.MainForm) and Application.MainForm.HandleAllocated then - begin - lWinControl := Application.MainForm; - Window := Application.MainForm.Handle; - end; - end; if IsIconic(Window) then begin GetWindowPlacement(Window, @WindowPlacement); |
|
I uploaded preview2.patch. I fixed a related bug(WMSize raises two times that is cause of IDE does not minimize). |
|
BeginUpdateBounds and EndUpdateBounds were wrong... I uploaded preview3.patch. Please change using global var "flag" to better way. I have no idea. |
2011-01-26 07:49
|
preview3.patch (5,107 bytes)
Index: lcl/include/customform.inc =================================================================== --- lcl/include/customform.inc (revision 29203) +++ lcl/include/customform.inc (working copy) @@ -617,6 +617,8 @@ if Assigned(FOnDeactivate) then FOnDeactivate(Self); end; +var + flag : boolean; {------------------------------------------------------------------------------ Method: TCustomForm.WMSize Params: Msg: The Size message @@ -632,7 +634,8 @@ DebugLn(['[TCustomForm.WMSize] ',DbgSName(Self),' Message.SizeType=',Message.SizeType,' Message.Width=',Message.Width,' Message.Height=',Message.Height,' AutoSizeDelayed=',AutoSizeDelayed]); {$ENDIF} - if (Parent=nil) and ((Message.SizeType and SIZE_SourceIsInterface)>0) then + if not flag and + (Parent=nil) and ((Message.SizeType and SIZE_SourceIsInterface)>0) then begin // this is a top level form (constraints depend on window manager) // and the widgetset set a size @@ -644,7 +647,8 @@ end; Assert(False, 'Trace:WMSIZE in TCustomForm'); - if not (csDesigning in ComponentState) then + if not flag and + not (csDesigning in ComponentState) then begin OldState := FWindowState; case (Message.SizeType and not SIZE_SourceIsInterface) of @@ -675,7 +679,9 @@ end; end; + flag := True; inherited WMSize(Message); + flag := False; if (Message.SizeType and Size_Restored)>0 then begin Index: lcl/interfaces/win32/win32callback.inc =================================================================== --- lcl/interfaces/win32/win32callback.inc (revision 29203) +++ lcl/interfaces/win32/win32callback.inc (working copy) @@ -799,42 +799,33 @@ SC_MINIMIZE: begin - if (Application <> nil) and (lWinControl <> nil) and - (Application.MainForm <> nil) and - (Application.MainForm = lWinControl) then - Window := TWin32WidgetSet(WidgetSet).AppHandle;//redirection - - if (Window = TWin32WidgetSet(WidgetSet).AppHandle) and - (Application <> nil) then + if (Window = WidgetSet.AppHandle) and (Application <> nil) then begin - if (Application.MainForm <> nil) then - begin - Windows.SetWindowPos(Window, HWND_TOP, - Application.MainForm.Left, Application.MainForm.Top, - Application.MainForm.Width, 0, SWP_NOACTIVATE); - if Application.MainForm.HandleAllocated then - Windows.ShowWindow(Application.MainForm.Handle, SW_HIDE); + if (Application.MainForm <> nil) and + (Application.MainForm.WindowState <> wsMinimized) then begin + // Click TaskBar button! + PLMsg^.Result := Windows.DefWindowProc(Application.MainForm.Handle, WM_SYSCOMMAND, WParam, LParam); + WinProcess := False; + end else begin + // Click MainForm button! + if Application.MainForm <> nil then + Windows.SetWindowPos(WidgetSet.AppHandle, HWND_TOP, + Application.MainForm.Left, Application.MainForm.Top, + Application.MainForm.Width, 0, SWP_NOACTIVATE); + PLMsg^.Result := Windows.DefWindowProc(Window, WM_SYSCOMMAND, WParam, LParam); + WinProcess := False; + Application.IntfAppMinimize; end; - - PLMsg^.Result := Windows.DefWindowProc(Window, WM_SYSCOMMAND, WParam, LParam); - WinProcess := False; - Application.IntfAppMinimize; end; end; SC_RESTORE: begin - if (Window = TWin32WidgetSet(WidgetSet).AppHandle) and - (Application <> nil) then + if (Window = WidgetSet.AppHandle) and (Application <> nil) then begin PLMsg^.Result := Windows.DefWindowProc(Window, WM_SYSCOMMAND, WParam, LParam); WinProcess := False; - if (Application.MainForm <> nil) and Application.MainForm.HandleAllocated then - begin - if Application.MainForm.HandleObjectShouldBeVisible then - Windows.ShowWindow(Application.MainForm.Handle, SW_SHOWNA); - end; Application.IntfAppRestore; end; end; @@ -2297,18 +2288,15 @@ end; WM_SIZE: begin + if Window = WidgetSet.AppHandle then + begin + LMessage.Msg := LM_NULL; // no need to go through delivermessage + LMessage.Result := 0; + end else with TLMSize(LMessage) do begin Msg := LM_SIZE; SizeType := WParam or Size_SourceIsInterface; - if Window = TWin32WidgetSet(WidgetSet).AppHandle then - begin - if Assigned(Application.MainForm) and Application.MainForm.HandleAllocated then - begin - lWinControl := Application.MainForm; - Window := Application.MainForm.Handle; - end; - end; if IsIconic(Window) then begin GetWindowPlacement(Window, @WindowPlacement); |
2011-01-28 04:45
|
preview4.patch (4,938 bytes)
Index: lcl/include/customform.inc =================================================================== --- lcl/include/customform.inc (revision 29226) +++ lcl/include/customform.inc (working copy) @@ -617,6 +617,8 @@ if Assigned(FOnDeactivate) then FOnDeactivate(Self); end; +var + flag : boolean; {------------------------------------------------------------------------------ Method: TCustomForm.WMSize Params: Msg: The Size message @@ -632,7 +634,8 @@ DebugLn(['[TCustomForm.WMSize] ',DbgSName(Self),' Message.SizeType=',Message.SizeType,' Message.Width=',Message.Width,' Message.Height=',Message.Height,' AutoSizeDelayed=',AutoSizeDelayed]); {$ENDIF} - if (Parent=nil) and ((Message.SizeType and SIZE_SourceIsInterface)>0) then + if not flag and + (Parent=nil) and ((Message.SizeType and SIZE_SourceIsInterface)>0) then begin // this is a top level form (constraints depend on window manager) // and the widgetset set a size @@ -644,7 +647,8 @@ end; Assert(False, 'Trace:WMSIZE in TCustomForm'); - if not (csDesigning in ComponentState) then + if not flag and + not (csDesigning in ComponentState) then begin OldState := FWindowState; case (Message.SizeType and not SIZE_SourceIsInterface) of @@ -675,7 +679,9 @@ end; end; + flag := True; inherited WMSize(Message); + flag := False; if (Message.SizeType and Size_Restored)>0 then begin Index: lcl/interfaces/win32/win32callback.inc =================================================================== --- lcl/interfaces/win32/win32callback.inc (revision 29226) +++ lcl/interfaces/win32/win32callback.inc (working copy) @@ -799,34 +799,37 @@ SC_MINIMIZE: begin - if (Application <> nil) and (lWinControl <> nil) and - (Application.MainForm <> nil) and - (Application.MainForm = lWinControl) then - Window := TWin32WidgetSet(WidgetSet).AppHandle;//redirection - - if (Window = TWin32WidgetSet(WidgetSet).AppHandle) and - (Application <> nil) then + if (Application <> nil) then begin - if (Application.MainForm <> nil) then - begin - Windows.SetWindowPos(Window, HWND_TOP, - Application.MainForm.Left, Application.MainForm.Top, - Application.MainForm.Width, 0, SWP_NOACTIVATE); + if (Application.MainForm = lWinControl) then begin if Application.MainForm.HandleAllocated then Windows.ShowWindow(Application.MainForm.Handle, SW_HIDE); + end else + if (Window = WidgetSet.AppHandle) then + begin + if (Application.MainForm <> nil) and + (Application.MainForm.WindowState <> wsMinimized) then begin + // TaskBar button is clicked! + PLMsg^.Result := Windows.DefWindowProc(Application.MainForm.Handle, WM_SYSCOMMAND, WParam, LParam); + WinProcess := False; + end else begin + // MainForm button is clicked! + if Application.MainForm <> nil then + Windows.SetWindowPos(WidgetSet.AppHandle, HWND_TOP, + Application.MainForm.Left, Application.MainForm.Top, + Application.MainForm.Width, 0, SWP_NOACTIVATE); + PLMsg^.Result := Windows.DefWindowProc(Window, WM_SYSCOMMAND, WParam, LParam); + WinProcess := False; + Application.IntfAppMinimize; + end; end; - - PLMsg^.Result := Windows.DefWindowProc(Window, WM_SYSCOMMAND, WParam, LParam); - WinProcess := False; - Application.IntfAppMinimize; end; end; SC_RESTORE: begin - if (Window = TWin32WidgetSet(WidgetSet).AppHandle) and - (Application <> nil) then + if (Window = WidgetSet.AppHandle) and (Application <> nil) then begin PLMsg^.Result := Windows.DefWindowProc(Window, WM_SYSCOMMAND, WParam, LParam); WinProcess := False; @@ -2297,18 +2300,15 @@ end; WM_SIZE: begin + if Window = WidgetSet.AppHandle then + begin + LMessage.Msg := LM_NULL; // no need to go through delivermessage + LMessage.Result := 0; + end else with TLMSize(LMessage) do begin Msg := LM_SIZE; SizeType := WParam or Size_SourceIsInterface; - if Window = TWin32WidgetSet(WidgetSet).AppHandle then - begin - if Assigned(Application.MainForm) and Application.MainForm.HandleAllocated then - begin - lWinControl := Application.MainForm; - Window := Application.MainForm.Handle; - end; - end; if IsIconic(Window) then begin GetWindowPlacement(Window, @WindowPlacement); |
|
I uploaded preview4.patch. I fixed a minor bug(minimizing animation on the classic style design). |
|
Does Application.MainFormOnTaskbar := True fixes the problems you have? |
|
I have just tested this with a very simple test application, and Application.MainFormOnTaskbar := True does not fix the problem. |
|
This patch has been completely ignored for almost 4 years. Now it cannot be applied any more due to merge conflicts. This is bad! Even Paul did not test the patch while adding notes. Could someone please do some digging and make another working patch. The "flag" variable must be implemented better but that is another issue. |
|
AFAIR Ondrej fixed issues with Application.MainFormOnTaskbar := True, but let him look into this specific issue about Vista. |
|
My tests show that previews work now well for MainFormOnTaskbar both True and False. I tested Windows 10 only. I can test Windows 7 as well but not Vista - sorry, I trashed that crap about 1 week after buying a laptop with that OS (already several years ago). Can anybody reproduce this issue? If not, I'll resolve it. |
|
Probably fixed in the meantime. |
|
Works under Windows 7 |
Date Modified | Username | Field | Change |
---|---|---|---|
2009-03-25 16:04 | Troodon | New Issue | |
2009-03-25 16:04 | Troodon | Widgetset | => Win32 |
2009-04-12 13:40 | Paul Ishenin | Tag Attached: vista | |
2009-04-12 13:40 | Paul Ishenin | LazTarget | => 1.0 |
2009-04-12 13:40 | Paul Ishenin | Status | new => acknowledged |
2009-04-12 13:40 | Paul Ishenin | Target Version | => 1.0.0 |
2009-04-12 15:43 | Paul Ishenin | Note Added: 0026718 | |
2009-04-12 15:43 | Paul Ishenin | Status | acknowledged => feedback |
2009-04-12 19:38 | José Mejuto | Note Added: 0026726 | |
2009-09-12 10:53 | Paul Ishenin | Status | feedback => acknowledged |
2010-01-08 17:53 | Tristan Linnell | Note Added: 0033516 | |
2010-01-08 17:58 | Tristan Linnell | Tag Attached: Windows 7 | |
2010-01-08 17:58 | Tristan Linnell | Tag Attached: thumbnail | |
2010-01-08 19:48 | José Mejuto | Note Added: 0033517 | |
2010-03-13 07:28 | Flávio Etrusco | Note Added: 0035426 | |
2010-05-04 03:42 | Paul Ishenin | Note Added: 0037216 | |
2010-05-05 01:19 | José Mejuto | Note Added: 0037267 | |
2010-05-05 23:58 | José Mejuto | Note Added: 0037312 | |
2010-07-06 16:25 | Paul Ishenin | LazTarget | 1.0 => 1.2 |
2010-07-06 16:25 | Paul Ishenin | Note Added: 0039076 | |
2010-07-06 16:33 | Paul Ishenin | Target Version | 1.0.0 => |
2011-01-25 07:43 | malcome | File Added: preview.patch | |
2011-01-25 07:45 | malcome | Note Added: 0045462 | |
2011-01-26 05:46 | malcome | File Added: preview2.patch | |
2011-01-26 05:47 | malcome | Note Added: 0045482 | |
2011-01-26 05:54 | malcome | Note Edited: 0045482 | |
2011-01-26 07:47 | malcome | Note Added: 0045484 | |
2011-01-26 07:49 | malcome | File Added: preview3.patch | |
2011-01-27 09:52 | Vincent Snijders | Relationship added | child of 0018499 |
2011-01-28 04:45 | malcome | File Added: preview4.patch | |
2011-01-28 04:50 | malcome | Note Added: 0045518 | |
2011-03-09 05:15 | Paul Ishenin | Note Added: 0046531 | |
2011-03-09 05:15 | Paul Ishenin | Status | acknowledged => feedback |
2011-10-02 23:06 | Felipe Monteiro de Carvalho | Relationship added | related to 0017294 |
2012-10-03 12:39 | Tristan Linnell | Note Added: 0062846 | |
2014-01-14 15:16 | Martin Friebe | LazTarget | 1.2 => 1.4 |
2014-09-16 12:21 | Mike Thompson | Tag Attached: patch | |
2014-09-16 19:55 | Juha Manninen | Note Added: 0077306 | |
2014-10-09 19:56 | Mike Thompson | Assigned To | => Mike Thompson |
2014-10-09 19:56 | Mike Thompson | Status | feedback => assigned |
2015-04-27 21:59 | Juha Manninen | LazTarget | 1.4 => - |
2016-03-16 09:11 | Juha Manninen | Assigned To | Mike Thompson => Juha Manninen |
2016-03-16 09:50 | Ondrej Pokorny | Assigned To | Juha Manninen => Ondrej Pokorny |
2016-03-16 09:51 | Zeljan Rikalo | Note Added: 0091110 | |
2016-04-06 13:38 | Ondrej Pokorny | Note Added: 0091790 | |
2016-04-11 17:17 | Ondrej Pokorny | Note Added: 0091947 | |
2016-04-11 17:17 | Ondrej Pokorny | Status | assigned => resolved |
2016-04-11 17:17 | Ondrej Pokorny | Resolution | open => fixed |
2016-04-14 11:07 | Mike Thompson | Note Added: 0092027 |