[Bug 48636] Lotus Organizer 97 toolbar balloon tooltips lack transparency (black background displayed)

WineHQ Bugzilla wine-bugs at winehq.org
Fri Feb 21 13:36:16 CST 2020


https://bugs.winehq.org/show_bug.cgi?id=48636

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|Lotus Organizer 97, Wine    |Lotus Organizer 97 toolbar
                   |5.0, Debian Stretch.  Lotus |balloon tooltips lack
                   |Organizer icon speech       |transparency (black
                   |bubbles display incorrectly |background displayed)
                   |- they are on square black  |
                   |background.                 |
           Keywords|                            |download
     Ever confirmed|0                           |1
                URL|                            |https://archive.org/details
                   |                            |/lotusorganizer97edition
          Component|winelib                     |-unknown
             Status|UNCONFIRMED                 |NEW
                 CC|                            |focht at gmx.net

--- Comment #3 from Anastasius Focht <focht at gmx.net> ---
Hello folks,

filling/correcting some fields and confirming.
It's not tied to distro/window manager.

Looks like some custom/owner drawn balloon tooltips, not using TOOLTIPS_CLASS.

--- snip ---
$ pwd
/home/focht/.wine/drive_c/lotus/organize

$ WINEDEBUG=+seh,+relay,+win,+msg,+bitmap,+dc,+gdi,+bitblt wine ./org32.exe
>>log.txt 2>&1
...
005a:Call user32.RegisterClassA(0032f01c) ret=1dc01157
005a:Call ntdll.strlen(1dc07030 "TzBubble32") ret=7b01b60c
005a:Ret  ntdll.strlen() retval=0000000a ret=7b01b60c
005a:trace:win:alloc_winproc allocated 0xffff0048 for A 0x1dc02ed9 (73/4096
used)
005a:Ret  user32.RegisterClassA() retval=0000c08f ret=1dc01157 
...
005a:Ret  PE DLL (proc=0x1dc03680,module=0x1dc00000
L"LTBUBN12.DLL",reason=PROCESS_ATTACH,res=(nil)) retval=1 
...
005a:Call user32.CreateWindowExA(00000080,1dc07030 "TzBubble32",01193b00 "Click
to create a Calls
entry",40000000,00000000,00000000,00000000,00000000,000100d0,00000000,1dc00000,00000000)
ret=1dc01c0f
...
005a:trace:win:WIN_CreateWindowEx "Click to create a Calls entry" L"TzBubble32"
ex=00000080 style=40000000 0,0 0x0 parent=0x100d0 menu=(nil) inst=0x1dc00000
params=(nil)
005a:trace:win:dump_window_styles style: WS_CHILD
005a:trace:win:dump_window_styles exstyle: WS_EX_TOOLWINDOW
005a:trace:win:WIN_SetWindowLong 0x20088 -12 0 W 
...
005a:trace:win:WIN_CreateWindowEx hwnd 0x20088 cs 0,0 0x0 (0,0)-(0,0)
...
005a:Ret  window proc 0x14409c50
(hwnd=0x100d0,msg=WM_PARENTNOTIFY,wp=00000001,lp=00020088) retval=00000000
005a:trace:win:WIN_CreateWindowEx created window 0x20088
005a:Ret  user32.CreateWindowExA() retval=00020088 ret=1dc01c0f

005a:Call user32.SetParent(00020088,00000000) ret=1dc01ac7
005a:trace:win:SetParent (0x20088 (nil))
005a:trace:win:show_window hwnd=0x20088, cmd=0, wasVisible 0 
...
005a:Ret  window proc 0x1dc02ed9
(hwnd=0x20088,msg=WM_WINDOWPOSCHANGED,wp=00000000,lp=0032f9c0) retval=00000000
005a:Ret  user32.SetParent() retval=000100d0 ret=1dc01ac7 
...
005a:Ret  window proc 0x1dc02ed9
(hwnd=0x20088,msg=WM_NCCALCSIZE,wp=00000001,lp=0032f90c) retval=00000300
005a:trace:win:SWP_DoNCCalcSize hwnd 0x20088 old win (0,0)-(0,0) old client
(0,0)-(0,0) new win (569,368)-(669,443) new client (569,368)-(669,443)
005a:Call
winex11.drv.WindowPosChanging(00020088,ffffffff,00000008,0032f8b0,0032f8c0,0032f740,0032f73c)
ret=7e8c0e96
...
005a:trace:bitblt:create_surface created 0x1cdf778 for 5000008 (0,0)-(128,96)
bits 0x7d883000-0x7d88f000 image 0x7d883000
005a:Ret  winex11.drv.WindowPosChanging() retval=00000000 ret=7e8c0e96 
...
005a:Call user32.EnumWindows(1dc01721,00020088) ret=1dc019b0
005a:Call user32.EnumChildWindows(00020088,1dc016cb,00020088) ret=1dc01761
005a:Ret  user32.EnumChildWindows() retval=00000000 ret=1dc01761
005a:Call user32.UpdateWindow(000100ce) ret=1dc0174e 
...
005a:Ret  user32.UpdateWindow() retval=00000001 ret=1dc0174e
005a:Call user32.EnumChildWindows(00010032,1dc016cb,00020088) ret=1dc01761
005a:Ret  user32.EnumChildWindows() retval=00000000 ret=1dc01761
005a:Ret  user32.EnumWindows() retval=00000001 ret=1dc019b0
005a:Call user32.ShowWindow(00020088,00000008) ret=1dc01b5a
005a:trace:win:show_window hwnd=0x20088, cmd=8, wasVisible 0
...
005a:trace:win:SetWindowPos hwnd 0x20088, after (nil), 0,0 (0x0), flags
00000057
005a:trace:win:dump_winpos_flags flags: SWP_NOSIZE SWP_NOMOVE SWP_NOZORDER
SWP_NOACTIVATE SWP_SHOWWINDOW
005a:trace:msg:WINPROC_CallProcWtoA
(hwnd=0x20088,msg=WM_WINDOWPOSCHANGING,wp=00000000,lp=0032f964)
005a:Call window proc 0x1dc02ed9
(hwnd=0x20088,msg=WM_WINDOWPOSCHANGING,wp=00000000,lp=0032f964) 
...
005a:trace:msg:PostMessageW hwnd 0x10020 msg 210 (WM_PARENTNOTIFY) wp 85 lp
20088
005a:Ret  user32.DefWindowProcA() retval=00000000 ret=1dc02f7c
005a:Ret  window proc 0x1dc02ed9
(hwnd=0x20088,msg=WM_NCPAINT,wp=00000001,lp=00000000) retval=00000000
005a:trace:win:GetDCEx hwnd 0x20088, hrgnClip 0x41008b, flags 00010080
005a:Call user32.GetDpiForSystem() ret=7e745a3d
005a:Ret  user32.GetDpiForSystem() retval=00000060 ret=7e745a3d
005a:trace:gdi:alloc_gdi_handle allocated OBJ_DC 0x1600d6 199/16384
005a:trace:dc:CreateDCW (driver=L"DISPLAY", device=(null), output=(null)):
returning 0x1600d6 
...
005a:Call
winex11.drv.GetDC(001600d6,00020088,00020088,0032f6b0,0032f6c0,00000092)
ret=7e894e5e
005a:Ret  winex11.drv.GetDC() retval=00000001 ret=7e894e5e
005a:trace:dc:SetTextColor  hdc=0x1600d6 color=0x00000000
005a:trace:dc:SetBkColor hdc=0x1600d6 color=0x00ffffff
...
005a:trace:win:GetDCEx (0x20088,0x41008b,0x10090): returning 0x1600d6 (updated)
005a:trace:msg:WINPROC_CallProcWtoA
(hwnd=0x20088,msg=WM_ERASEBKGND,wp=001600d6,lp=00000000)
005a:Call window proc 0x1dc02ed9
(hwnd=0x20088,msg=WM_ERASEBKGND,wp=001600d6,lp=00000000)
005a:Ret  window proc 0x1dc02ed9
(hwnd=0x20088,msg=WM_ERASEBKGND,wp=001600d6,lp=00000000) retval=00000001 
...
005a:Ret  user32.ShowWindow() retval=00000000 ret=1dc01b5a
005a:Call user32.UpdateWindow(00020088) ret=1dc01b64
005a:trace:win:RedrawWindow 0x20088 whole window flags: RDW_ALLCHILDREN
RDW_UPDATENOW 
...
005a:trace:msg:WINPROC_CallProcWtoA
(hwnd=0x20088,msg=WM_PAINT,wp=00000000,lp=00000000)
005a:Call window proc 0x1dc02ed9
(hwnd=0x20088,msg=WM_PAINT,wp=00000000,lp=00000000)
005a:Call user32.BeginPaint(00020088,0032f2f4) ret=1dc02f09 
...
005a:trace:win:BeginPaint hdc = 0x1600d6 box = ((0,0)-(100,75)), fErase = 0
005a:Ret  user32.BeginPaint() retval=001600d6 ret=1dc02f09 
...
005a:Call gdi32.CreateCompatibleDC(001600d6) ret=1dc01fce
...
005a:trace:gdi:alloc_gdi_handle allocated OBJ_MEMDC 0xe00d9 201/16384
005a:trace:dc:CreateCompatibleDC (0x1600d6): returning 0xe00d9 
...
005a:Ret  gdi32.CreateCompatibleDC() retval=000e00d9 ret=1dc01fce 
005a:Call user32.CopyRect(0032f1f8,0032f250) ret=1dc01ff7
005a:Ret  user32.CopyRect() retval=00000001 ret=1dc01ff7 

005a:Call gdi32.CreateCompatibleBitmap(001600d6,00000064,0000004b) ret=1dc0207b
005a:trace:bitmap:CreateCompatibleBitmap (0x1600d6,100,75)
005a:trace:gdi:GetObjectType 0x1600d6 -> 3
005a:trace:gdi:alloc_gdi_handle allocated OBJ_BITMAP 0x500d7 202/16384
005a:trace:bitmap:CreateBitmapIndirect 100x75, bpp 32 planes 1: returning
0x500d7
005a:Ret  gdi32.CreateCompatibleBitmap() retval=000500d7 ret=1dc0207b 
...
005a:Call gdi32.SelectObject(000e00d9,000500d7) ret=1dc020a1
005a:trace:gdi:SelectObject (0xe00d9,0x500d7)
005a:trace:gdi:GetObjectType 0xe00d9 -> 10
005a:trace:dc:SetTextColor  hdc=0xe00d9 color=0x00000000
005a:trace:dc:SetBkColor hdc=0xe00d9 color=0x00ffffff
...
005a:Ret  gdi32.SelectObject() retval=0001002a ret=1dc020a1
005a:Call
gdi32.BitBlt(000e00d9,00000000,00000000,00000064,0000004b,001600d6,00000000,00000000,00cc0020)
ret=1dc020cd
005a:trace:bitblt:StretchBlt src 0x1600d6 log=0,0 100x75 phys=0,0 100x75
vis=(0,0)-(100,75)  dst 0xe00d9 log=0,0 100x75 phys=0,0 100x75
vis=(0,0)-(100,75)  rop=cc0020
005a:Ret  gdi32.BitBlt() retval=00000001 ret=1dc020cd
005a:Call gdi32.CreatePolygonRgn(0032f238,00000003,00000001) ret=1dc0217d 
...
005a:Ret  gdi32.CreatePolygonRgn() retval=000f00d8 ret=1dc0217d
...
005a:Call gdi32.Ellipse(000e00d9,00000009,0000000a,00000061,0000004b)
ret=1dc028ac
...
005a:Ret  gdi32.Ellipse() retval=00000001 ret=1dc029ab 
...
005a:Call user32.DrawTextA(000e00d9,01393278 "Click to create a Calls
entry",ffffffff,0032f210,00000d11) ret=1dc024d2 
...
005a:Ret  user32.DrawTextA() retval=00000027 ret=1dc02558
005a:Call
gdi32.BitBlt(001600d6,00000000,00000000,00000064,0000004b,000e00d9,00000000,00000000,00cc0020)
ret=1dc0257e
005a:trace:bitblt:StretchBlt src 0xe00d9 log=0,0 100x75 phys=0,0 100x75
vis=(0,0)-(100,75)  dst 0x1600d6 log=0,0 100x75 phys=0,0 100x75
vis=(0,0)-(100,75)  rop=cc0020
005a:trace:bitblt:x11drv_surface_flush flushing 0x1cdf778 128x96 bounds
(0,0)-(100,75) bits 0x7d883000
005a:Ret  gdi32.BitBlt() retval=00000001 ret=1dc0257e 
--- snip ---


https://archive.org/details/lotusorganizer97edition

https://archive.org/download/lotusorganizer97edition/Lotus%20Organizer%20%2797%20Edition%20%28R87820%29%28Lotus%20Development%20Corporation%29%281996%29.iso

The app suffers from bug 625 as well (private dll search path support).

$ sha1sum Lotus\ Organizer\ \'97\ Edition\ \(R87820\)\(Lotus\ Development\
Corporation\)\(1996\).iso 
834393f37f57f4d220e5da29574d453e8dfdb235  Lotus Organizer '97 Edition
(R87820)(Lotus Development Corporation)(1996).iso

$ du -sh Lotus\ Organizer\ \'97\ Edition\ \(R87820\)\(Lotus\ Development\
Corporation\)\(1996\).iso 
15M    Lotus Organizer '97 Edition (R87820)(Lotus Development
Corporation)(1996).iso

$ wine --version
wine-5.2-160-ge7c735b825

Regards

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list