Re: comctl32/imagelist: use proper color format for merged image lists (try 2)

2013-03-05 Thread Daniel Jelinski
Hello,
No surprises in mask behavior - the result is always masked. On the
other hand, merging ILC_COLOR16 with ILC_COLORDDB (which is 32bit)
results in 16bit image:
https://testbot.winehq.org/JobDetails.pl?Key=24624
All other merges (including reverse of the above = ILC_COLORDDB with
ILC_COLOR16) use the greater of the color depths from source
imagelists.

Any idea what might be happening there?
Regards,
Daniel

2013/3/5 Alexandre Julliard :
> Daniel Jelinski  writes:
>
>> +static void test_merge_colors(void)
>> +{
>> +HIMAGELIST himl[5], hmerge;
>> +int sizes[] = { ILC_COLOR4, ILC_COLOR8, ILC_COLOR16, ILC_COLOR24, 
>> ILC_COLOR32 };
>
> You should also test COLORDDB, and probably the mask behavior too.
>
> --
> Alexandre Julliard
> julli...@winehq.org




Re: comctl32/listview: fix mouse message sequences

2013-02-25 Thread Daniel Jelinski
2013/2/25 Nikolay Sivov :
> On 2/24/2013 17:52, Daniel Jelinski wrote:
>>
>> 2013/2/24 Nikolay Sivov :
>>>
>>> This doesn't look very clean. I mean invoking *up handler from a *down
>>> one.
>>> Is this something that could be resolved with message loop like rbutton
>>> dragging was fixed?
>>
>> TrackMouse contains the message loop. It returns FALSE when it
>> receives LBUTTONUP (or any other button message),
>
> Okay, so why not let corresponding message handler to process it normally?

Short answer: because that's how native behaves. They don't call
DispatchMessage on button messages received in message loop, so
neither do we.

According to this MSDN page:
http://msdn.microsoft.com/en-us/library/windows/desktop/bb774734%28v=vs.85%29.aspx
Listview window procedure does not handle MOUSEMOVE and *BUTTONUP
messages. My experience with +message logs seems to confirm that.
Every time when any action happens in response to *BUTTONUP, it is
contained in some kind of message loop.
My long term goal is to remove these handlers from wine's
implementation as well. I wanted to remove call to LISTVIEW_LButtonUp
from window proc already, but unfortunately marquee selection still
depends on it.




Re: comctl32/listview: fix mouse message sequences

2013-02-24 Thread Daniel Jelinski
2013/2/24 Nikolay Sivov :
> This doesn't look very clean. I mean invoking *up handler from a *down one.
> Is this something that could be resolved with message loop like rbutton
> dragging was fixed?

TrackMouse contains the message loop. It returns FALSE when it
receives LBUTTONUP (or any other button message), so calling LButtonUp
here is almost exactly what happened before. I'm not sure if inlining
the call would help here.
Regards,
Daniel




Re: comctl32/listview: fix selection in ownerdata listview

2013-02-20 Thread Daniel Jelinski
Hello Nikolay,
I didn't have time to write and test a proper fix yet, and I'm not
sure when I will. I thought this hack may be better than what we have
now.
If you want to fix this, please do. If not, I'll get back to it later.
Regards,
Daniel


2013/2/21, Nikolay Sivov :
> What's a problem in fixing this properly? This change could break
> something potentially, it was disabled for a purpose of fixing some real
> application as I remember.




Re: [1/5] comctl32/tests: more tests for icon spacing calculation

2013-01-25 Thread Daniel Jelinski
Hello,
Thanks for reviewing. What's the preferred way of checking whether the
code is compiled for 32 or 64bit?
Regards,
Daniel

2013/1/24 Alexandre Julliard :
> Daniel Jelinski  writes:
>
>> +#ifdef _WIN64
>> +/* NOTE: -1 is not treated the same as (DWORD)-1 by 64bit listview */
>> +ret = SendMessage(hwnd, LVM_SETICONSPACING, 0, (DWORD)-1);
>> +todo_wine {
>> +expect(100, LOWORD(ret));
>> +expect(0x, HIWORD(ret));
>> +}
>> +ret = SendMessage(hwnd, LVM_SETICONSPACING, 0, 0xBAADF00DDEADBEEFLL);
>
> Please avoid ifdefs and long long constants.
>
> --
> Alexandre Julliard
> julli...@winehq.org




Re: [3/5] comctl32/listview: always use large icon size when calculating icon spacing

2013-01-19 Thread Daniel Jelinski
Looks like the testbot is still having problems...


2013/1/20 Marvin :
> Hi,
>
> While running your changed tests on Windows, I think I found new failures.
> Being a bot and all I'm not very good at pattern recognition, so I might be
> wrong, but could you please double-check?
> Full results can be found at
> http://testbot.winehq.org/JobDetails.pl?Key=24024
>
> Your paranoid android.
>
>
> === WINEBUILD (build) ===
> Patch failed to apply




Re: gdi32/tests: GetTextExtentPoint should give repeatable results

2013-01-15 Thread Daniel Jelinski
2013/1/15 Alexandre Julliard :
> Daniel Jelinski  writes:
>
>> These are tests for bug 32529. Since commit 
>> ebaf5ea17623268fb1c0f68b1cf9a5984bd4e46e
>> (Don't load bitmap glyphs when using subpixel rendering in GetGlyphOutline)
>> GetTextExtentPoint returns different results before and after glyphs are 
>> loaded,
>> at least for wine's Tahoma.
>
> I don't see that here:
>
> ../../../tools/runtest -q -P wine -M gdi32.dll -T ../../.. -p 
> gdi32_test.exe.so font.c && touch font.ok
> font.c:4818: Test succeeded inside todo block: extents different: first 76, 
> second 76

That is strange, I checked with yesterday's git and got an error
(75/70 if I remember correctly). I'll try to check which font is used.
Regards,
Daniel




Re: comctl32/listview: fix icon spacing calculation [try 2]

2013-01-14 Thread Daniel Jelinski
2013/1/14 Nikolay Sivov :
> It's a way it's used in ListView_SetIconSpacing() (which could be broken in
> its own way of course).
> I think it's ok to ignore this 64 bit case for now, especially while we
> don't get daily test runs.

Are you saying that I should drop this?
-return LISTVIEW_SetIconSpacing(infoPtr, (short)LOWORD(lParam),
(short)HIWORD(lParam));
+if(lParam == -1)
+  return LISTVIEW_SetIconSpacing(infoPtr, -1, -1);
+return LISTVIEW_SetIconSpacing(infoPtr, LOWORD(lParam), HIWORD(lParam));
This would net us 2 more todo_wine tests.

Also, what's up with the daily test runs? Will they be fixed any time soon?




Re: comctl32/listview: fix icon spacing calculation [try 2]

2013-01-14 Thread Daniel Jelinski
2013/1/14 Nikolay Sivov :
> This message actually is supposed to be used with MAKELONG(), so it's not
> truncated in such way.

Probably (MSDN doesn't say a word about the preferred macro for this
function, unless you count user comments), however if any app actually
calls MAKELPARAM, at least it will get the same result as on Windows.




Re: comctl32/listview: fix icon spacing calculation [try 2]

2013-01-14 Thread Daniel Jelinski
2013/1/14 Nikolay Sivov :
> So on 64bit you want to distinguish two cases:
> - ~0 value of lParam - you use it to reset to default values;
> - all other values including 0x that will result in the same call
> with both args being -1.

Unless I got something wrong, all other values including 0x
will result in a call with both args being 65535. Since parameters are
INTs now, 65535 != -1.

The tests show that:
SendMessage(hwnd, LVM_SETICONSPACING, 0, MAKELPARAM(-1,-1));
results in default spacing on 32bit and (65535,65535) on 64bit.
MAKELPARAM(-1,-1) == (DWORD)-1
MAKELONG(-1,-1) == -1




testbot

2013-01-14 Thread Daniel Jelinski
Hello,
the testbot does not revert patches submitted through
testbot.winehq.org after testing. As a result it is almost impossible
to test another patch affecting the same area in code as a previous
one.
Could anyone please fix it? Or at least add git reset to cron...
Regards,
Daniel




Re: comctl32/listview: fix icon spacing calculation [try 2]

2013-01-14 Thread Daniel Jelinski
2013/1/14 Nikolay Sivov :
> On 1/15/2013 00:53, Daniel Jelinski wrote:
>
>> +if(lParam == -1)
>> +  return LISTVIEW_SetIconSpacing(infoPtr, -1, -1);
>> +return LISTVIEW_SetIconSpacing(infoPtr, LOWORD(lParam),
>> HIWORD(lParam));
>
> Why do you need to handle this case specially? If it's -1 for 64bit comctl32
> it should give you the same values with HIWORD/LOWORD as it does for 32bit.

On 64bit the behavior with lParam=0x is different from that
with lParam=-1. HIWORD/LOWORD values are the same, so without this
special case they would behave the same way.




Re: comctl32/listview: fix calculating item height

2013-01-05 Thread Daniel Jelinski
Interesting:
https://testbot.winehq.org/JobDetails.pl?Key=23746&log_206=1#k206
Looks like testbot tried to do the entire test suite, even though I
changed only one test file.

2013/1/5 Marvin :
> Hi,
>
> While running your changed tests on Windows, I think I found new failures.
> Being a bot and all I'm not very good at pattern recognition, so I might be
> wrong, but could you please double-check?
> Full results can be found at
> http://testbot.winehq.org/JobDetails.pl?Key=23746
>
> Your paranoid android.
>
>
> === W2K8SE (32 bit listview) ===
> Failure running script in VM: The specified guest user must be logged in 
> interactively to perform this operation




Re: [9/9] server: Add support for named pipe message mode.

2012-12-27 Thread Daniel Jelinski
Hello,
FWIW, Adam Martinson's named pipe series looks good to me. I tested it
with MS SQL Server, which uses message mode pipes, and did not run
into any problems. In current git I can't connect to server using
named pipes, because as soon as SetNamedPipeHandleState returns false,
client application aborts. (However, just changing SNPHS to return
true is enough to get it working).
I don't think patches 3 and 9 of this series can be split much more,
except maybe for moving asserts into a separate file. Yes, reviewing
them may cause headaches.
The series is supposed to fix bugs 17273 (patch 8/9) and 17195 (patch 9/9).
AFAICT the author is willing to make any adjustments necessary to get
the patches merged.
Patches 1-5 should not cause any problems if applied without the
following. Patches 6-8 may cause regressions if applied without patch
9.
Regards,
Daniel




Re: Ubuntu 12.10 - anyone?

2012-10-18 Thread Daniel Jelinski
Thanks for all of your answers.
Playing with wine in 11.10 is becoming near impossible because of the
infamous xcb bug. I'd rather not mess with files outside /home, so I
guess I'll be checking how well x86+PAE works.
-- 
Daniel




Ubuntu 12.10 - anyone?

2012-10-17 Thread Daniel Jelinski
Hello,
Is it possible to compile 32bit wine in 64bit ubuntu 12.10? I heard
there were problems in 12.04 - were they resolved?

Regards,
Daniel




Re: [3/4] comctl32: fix notifications and return value when collapsing already collapsed node (rebased)

2012-10-15 Thread Daniel Jelinski
Hello, Nikolay.
Thanks for reminder. Attached it now.

2012/10/15 Nikolay Sivov :
> Hi, Daniel.
>
> You forgot a patch.
>




Re: comctl32/listview: update dwStyle before checking for scrollbar

2012-09-23 Thread Daniel Jelinski
2012/9/22 Daniel Jelinski :
> 2012/9/22 Nikolay Sivov :
>> And apparently we have code in WM_STYLECHANGED handler to deal with scroll
>> bars:
>>
>> ---
>> if (((lpss->styleOld & WS_HSCROLL) != 0)&&
>> ((lpss->styleNew & WS_HSCROLL) == 0))
>>ShowScrollBar(infoPtr->hwndSelf, SB_HORZ, FALSE);
>>
>> if (((lpss->styleOld & WS_VSCROLL) != 0)&&
>> ((lpss->styleNew & WS_VSCROLL) == 0))
>>ShowScrollBar(infoPtr->hwndSelf, SB_VERT, FALSE);
>> ---
>>
>> these lines were edited 10 years ago last time, sure it could be a noop
>> but that raises a question why it's here.
>
> Dead code. I meant to remove these in the next patch, since there are
> no bugs against scrollbars in listview. I guess user32 was way less
> capable back then.

Now that I think about it, it's not exactly dead code - it will be
executed when someone tries to hide scrollbars by setting window
style. Needs a more thorough review.

Regards,
Daniel




Re: comctl32/listview: update dwStyle before checking for scrollbar

2012-09-22 Thread Daniel Jelinski
2012/9/22 Nikolay Sivov :
> I see. Now a question is how scroll bars are enabled/disabled in a case
> you're trying to fix,
> and a message test should be added for listview after that. What I'm seeing
> - ControlSpy
> running on XP shows style change messages after I toggle scrollbar bits, but
> we don't have its source so
> who knows what it does.

Do you toggle these bits using SetWindowLong or SetScrollInfo? Wine
uses SetScrollInfo, which is probably the reason why we don't get
these messages.

My first try at this bug was updating cached dwStyle in LISTVIEW_UpdateScroll:
http://source.winehq.org/source/dlls/comctl32/listview.c#L2058
However, that was not sufficient for a sample application I created in
Delphi - seems that Delphi creates the scrollbar elsewhere.

Probably the code could be rewritten to not depend on WS_HSCROLL and
WS_VSRCOLL being correct:
http://source.winehq.org/source/dlls/comctl32/listview.c#L10881 is the
only line that depends on it.

> And apparently we have code in WM_STYLECHANGED handler to deal with scroll
> bars:
>
> ---
> if (((lpss->styleOld & WS_HSCROLL) != 0)&&
> ((lpss->styleNew & WS_HSCROLL) == 0))
>ShowScrollBar(infoPtr->hwndSelf, SB_HORZ, FALSE);
>
> if (((lpss->styleOld & WS_VSCROLL) != 0)&&
> ((lpss->styleNew & WS_VSCROLL) == 0))
>ShowScrollBar(infoPtr->hwndSelf, SB_VERT, FALSE);
> ---
>
> these lines were edited 10 years ago last time, sure it could be a noop
> but that raises a question why it's here.

Dead code. I meant to remove these in the next patch, since there are
no bugs against scrollbars in listview. I guess user32 was way less
capable back then.

Regards,
Daniel




Re: comctl32/listview: update dwStyle before checking for scrollbar

2012-09-22 Thread Daniel Jelinski
Hello Nikolay,
I'm not sure. There are some tests:
http://source.winehq.org/source/dlls/user32/tests/msg.c#L1613
Comments indicate that some systems send WM_STYLECHANGED to windows
with non-client area, and no systems send it to windows without it. I
haven't figured out yet if the comment is true or to which category
ListView belongs.

Out of curiosity I checked which systems send WM_STYLECHANGED:
http://testbot.winehq.org/JobDetails.pl?Key=21701
Vista and Windows 7 do send it, others do not, neither does Wine.
Judging by the code it doesn't look like a quick fix to me (but I
wouldn't mind if someone proved me wrong here).

Regards,
Daniel

PS. I guess I should have used GetWindowLong instead on
GetWindowLongPtr. Not sure if I should bother with resending now.


2012/9/22 Nikolay Sivov :
> On 9/21/2012 23:07, Daniel Jelinski wrote:
>
>> dwStyle is updated only in WM_STYLECHANGED, which is not sent
>> when displaying and hiding scrollbars.
>> Fixes the issue where there was a large margin between items
>> and horizontal scrollbar (e.g. in file open dialog).
>
> Are you sure it's really not supposed to be sent when WS_HSCROLL/WS_VSCROLL
> bits are changed?
> A quick test with ControlSpy shows style changing messages when I set/reset
> these. So it's possible there's a bug
> outside of comctl32.




Re: user32: search more aggressively for a window under a tooltip

2012-08-13 Thread Daniel Jelinski
2012/7/23 Alexandre Julliard :
> Daniel Jelinski  writes:
>
>> 2012/7/23, Alexandre Julliard :
>>> You can't assume that the other Wine window is directly underneath the
>>> transparent one, there may be some other X windows in between that
>>> should receive the click instead.
>>
>> I just determined that in such cases Windows (at least 2008) silently
>> eats the event - no windows get any click events. I can send the
>> application (VS, C++) I used for testing.
>>
>> Should I update the patch to reflect that?
>
> Sure, and please add a test case too.
>

I just noticed that my patch for HTTRANSPARENT was rejected again.
Were the tests not convincing enough?
Regards,
Daniel




Re: vcomp.dll, vcomp90.dll missing on testbot?

2012-08-07 Thread Daniel Jelinski
Hello,
FWIW, comctl32 version 6 is accessible only with manifest, and there
are tests that reference it. Here's an example:
http://source.winehq.org/source/dlls/comctl32/tests/treeview.c#L1966

-- 
Daniel




What happened to testbot?

2012-07-27 Thread Daniel Jelinski
It seems that WINEBUILD has taken a break two days ago, no tasks
involving building have been completed since then.

Regards,
Daniel




Re: user32: search more aggressively for a window under a tooltip

2012-07-23 Thread Daniel Jelinski
2012/7/23, Alexandre Julliard :
> You can't assume that the other Wine window is directly underneath the
> transparent one, there may be some other X windows in between that
> should receive the click instead.

I just determined that in such cases Windows (at least 2008) silently
eats the event - no windows get any click events. I can send the
application (VS, C++) I used for testing.

Should I update the patch to reflect that?

Daniel




Re: user32: search more aggressively for a window under a tooltip

2012-07-23 Thread Daniel Jelinski
Hello,
When you say that this can't be fixed, do you mean that we can't
properly route a mouse event if the window is transparent and it
covers a window from another process? Well I'm not sure if Windows
does that either. However, we don't need any X11 support to forward
the message to another window on the same thread, and the applications
in question need only that.

If we can make these applications work, why don't we?

Daniel

2012/7/23, Alexandre Julliard :
> Daniel Jelinski  writes:
>
>> Hello,
>> Check out the description of HTTRANSPARENT on [1]. If MSDN is right
>> here, then the code after applying my patch is still not correct, but
>> at least closer to correct than it is now.
>> As for a test case, do you prefer a minimalistic test case with one
>> test that would be todo_wine without this patch and ok without it, or
>> a massive test involving several overlapping windows belonging to
>> different threads?
>
> This can't be fixed properly under X11, which is why the bug is marked
> WONTFIX. Test cases won't help.
>
> --
> Alexandre Julliard
> julli...@winehq.org
>




Re: user32: search more aggressively for a window under a tooltip

2012-07-21 Thread Daniel Jelinski
Hello,
Check out the description of HTTRANSPARENT on [1]. If MSDN is right
here, then the code after applying my patch is still not correct, but
at least closer to correct than it is now.
As for a test case, do you prefer a minimalistic test case with one
test that would be todo_wine without this patch and ok without it, or
a massive test involving several overlapping windows belonging to
different threads?

Daniel

[1] 
http://msdn.microsoft.com/en-us/library/windows/desktop/ms645618%28v=vs.85%29.aspx

2012/7/21 Dmitry Timoshkov :
> Daniel Jelinski  wrote:
>
>> Fixes bug 9512 and bug 8914, tested with Delphi and DVD Profiler.
>> Still not perfect - according to MSDN the function should never return
>> a window belonging to another thread.
>
> This kind of change requires a test case, and I suspect it's plain wrong.
>
> --
> Dmitry.




[1/2] comctl32: Fix message sequence when right-clicking a treeview

2012-07-02 Thread Daniel Jelinski
Resend from last month
From e9d9c543589ea2120ac39962d9820699b220a576 Mon Sep 17 00:00:00 2001
From: Daniel Jelinski 
Date: Thu, 19 Apr 2012 22:02:25 +0200
Subject: comctl32: Fix message sequence when right-clicking a treeview

The message sequence obtained from testing native comctl32 was:
- first send NM_RCLICK
- then only if NM_RCLICK returned 0, send WM_CONTEXTMENU to parent
- send the above messages also when click was in empty area
This fixes the issue described in bug 19222.
---
 dlls/comctl32/treeview.c |   36 ++--
 1 files changed, 10 insertions(+), 26 deletions(-)

diff --git a/dlls/comctl32/treeview.c b/dlls/comctl32/treeview.c
index 8c93f8c..9a14ba9 100644
--- a/dlls/comctl32/treeview.c
+++ b/dlls/comctl32/treeview.c
@@ -208,7 +208,6 @@ static VOID TREEVIEW_Invalidate(const TREEVIEW_INFO *, 
const TREEVIEW_ITEM *);
 static LRESULT TREEVIEW_DoSelectItem(TREEVIEW_INFO *, INT, HTREEITEM, INT);
 static VOID TREEVIEW_SetFirstVisible(TREEVIEW_INFO *, TREEVIEW_ITEM *, BOOL);
 static LRESULT TREEVIEW_EnsureVisible(TREEVIEW_INFO *, HTREEITEM, BOOL);
-static LRESULT TREEVIEW_RButtonUp(const TREEVIEW_INFO *, const POINT *);
 static LRESULT TREEVIEW_EndEditLabelNow(TREEVIEW_INFO *infoPtr, BOOL bCancel);
 static VOID TREEVIEW_UpdateScrollBars(TREEVIEW_INFO *infoPtr);
 static LRESULT TREEVIEW_HScroll(TREEVIEW_INFO *, WPARAM);
@@ -4043,8 +4042,6 @@ TREEVIEW_TrackMouse(const TREEVIEW_INFO *infoPtr, POINT 
pt)
else if (msg.message >= WM_LBUTTONDOWN &&
 msg.message <= WM_RBUTTONDBLCLK)
{
-   if (msg.message == WM_RBUTTONUP)
-   TREEVIEW_RButtonUp(infoPtr, &pt);
break;
}
 
@@ -4259,31 +4256,18 @@ TREEVIEW_RButtonDown(TREEVIEW_INFO *infoPtr, LPARAM 
lParam)
 }
 else
 {
-   SetFocus(infoPtr->hwnd);
-   TREEVIEW_SendSimpleNotify(infoPtr, NM_RCLICK);
-}
-
-return 0;
-}
-
-static LRESULT
-TREEVIEW_RButtonUp(const TREEVIEW_INFO *infoPtr, const POINT *pPt)
-{
-TVHITTESTINFO ht;
-
-ht.pt = *pPt;
-
-TREEVIEW_HitTest(infoPtr, &ht);
-
-if (ht.hItem)
-{
-/* Change to screen coordinate for WM_CONTEXTMENU */
-ClientToScreen(infoPtr->hwnd, &ht.pt);
+SetFocus(infoPtr->hwnd);
+if (!TREEVIEW_SendSimpleNotify(infoPtr, NM_RCLICK))
+{
+/* Change to screen coordinate for WM_CONTEXTMENU */
+ClientToScreen(infoPtr->hwnd, &ht.pt);
 
-/* Send a WM_CONTEXTMENU message in response to the RBUTTONUP */
-SendMessageW(infoPtr->hwnd, WM_CONTEXTMENU,
-(WPARAM)infoPtr->hwnd, MAKELPARAM(ht.pt.x, ht.pt.y));
+/* Send a WM_CONTEXTMENU message in response to the RBUTTONUP */
+SendMessageW(infoPtr->hwndNotify, WM_CONTEXTMENU,
+(WPARAM)infoPtr->hwnd, MAKELPARAM(ht.pt.x, ht.pt.y));
+}
 }
+
 return 0;
 }
 
-- 
1.7.5.4




ODBC on 64bit system

2012-06-27 Thread Daniel Jelinski
Hello all,
Is it possible to run a 32bit application using 64bit ODBC drivers?
I already checked that standard 32bit wine compilation does not work -
but will it work with WoW64? I am trying to get an application to
connect to SQL Server via tdsodbc, but unfortunately tdsodbc:i386 in
ubuntu 11.10 is broken...

Regards,
Daniel




Re: Is it safe yet for developers to upgrade to Ubuntu 12.04?

2012-06-25 Thread Daniel Jelinski
I don't know about compiling, but there are several other reasons to
keep waiting, listed here:
http://forum.winehq.org/viewtopic.php?t=15802

Regards,
Daniel

2012/6/25, Erich E. Hoover :
> I know that for a while there were some packaging problems that meant that
> upgrading to 12.04 made compiling 32-bit Wine on a 64-bit PC extremely
> difficult.  Is this still the case?  I'd like to upgrade to the new OS
> version, but I'm not willing to sacrifice the ability to build Wine in
> order to do so.  Thanks in advance!
>
> Erich Hoover
> ehoo...@mines.edu
>




Re: atl80: prefer native, if present

2012-06-18 Thread Daniel Jelinski
2012/6/18, Alexandre Julliard :
> Daniel Jelinski  writes:
>
>> From 7243b3594c9c0b13770ede1ab32d4dd1329b1dd4 Mon Sep 17 00:00:00 2001
>> From: Daniel Jelinski 
>> Date: Sun, 17 Jun 2012 17:37:15 +0200
>> Subject: atl80: prefer native, if present
>>
>> ---
>>  dlls/atl80/atl80.c |   11 +++
>>  1 files changed, 11 insertions(+), 0 deletions(-)
>
> There's no reason to do that, most of the dll is already implemented.

It hides at least bug [1] from the end user, since the application
comes with a bundled atl80 and works fine with it. It would probably
also hide [2], since that application was reported to work under
wine-1.4, so probably installs atl80 as well. Leaving it as-is means
that users will need to set atl80 to native in order to get these
applications to run properly, at least for the time being.

Regards,
Daniel

[1] http://bugs.winehq.org/show_bug.cgi?id=30444
[2] http://bugs.winehq.org/show_bug.cgi?id=30906




Re: comctl: allow label edit only if treeview style allows editing

2012-06-06 Thread Daniel Jelinski
2012/6/4 Dan Kegel :
> I had the same problem, and wrote a little script to skip the bad tests.
> It was written for buildbot, but can be run standalone.
> Try downloading
> http://winezeug.googlecode.com/svn/trunk/buildbot/dotests.sh
> and
> http://winezeug.googlecode.com/svn/trunk/buildbot/dotests_blacklist.txt
> then run
>  sh dotests.sh goodtests
> That will skip all the tests known to hang or fail.  (The list might be
> a bit out of date, but it's easy to add new tests to the blacklist.)

Now that's much better! Thank you.
I slightly modified the script and found that 5 tests from the good
list fail with native comctl. Good indicator of areas that need more
love :)
-- 
Regards,
Daniel




Re: comctl: allow label edit only if treeview style allows editing

2012-06-04 Thread Daniel Jelinski
2012/6/4 Alexandre Julliard :
> Daniel Jelinski  writes:
>
>> From 21d26b76560f0c15a3d302883efa2d41d940a093 Mon Sep 17 00:00:00 2001
>> From: Daniel Jelinski 
>> Date: Sat, 2 Jun 2012 07:23:32 +0200
>> Subject: comctl: allow label edit only if treeview style allows editing
>>
>> Native comctl behaves this way - noticed when debugging regedit
>
> It breaks the tests:
>
> ../../../tools/runtest -q -P wine -M shell32.dll -T ../../.. -p 
> shell32_test.exe.so brsfolder.c && touch brsfolder.ok
> brsfolder.c:225: Test failed: The new folder did not get the name foo
> brsfolder.c:232: Test failed: SHBrowseForFolder did not return the pidl for 
> the new folder. Expected 
> 'Z:\home\julliard\wine\wine\dlls\shell32\tests\test_click_make_new_folder_button\foo'
>  got 
> 'Z:\home\julliard\wine\wine\dlls\shell32\tests\test_click_make_new_folder_button\New
>  Folder'
> make: *** [brsfolder.ok] Error 2

Ah, thank you for this information. I'll look into it. I stopped doing
make test on my machine some time ago, when I found out that some
tests do consistently fail on my machine (clean prefix or not), and
others consistently hang, thus preventing make test -k. I don't
install wine-gecko, maybe that's the reason.

-- 
Regards,
Daniel




stub for SetThreadStackGuarantee

2012-05-29 Thread Daniel Jelinski
Hello,
SQL Server Management Studio 2005 needs SetThreadStackGuarantee to
either be absent or return TRUE - otherwise it refuses to run at all.
Is there a reason for this stub to return FALSE?

Regards,
Daniel




Re: Testing regedit

2012-05-23 Thread Daniel Jelinski
2012/5/24 Austin English :
> On Wed, May 23, 2012 at 12:24 PM, Daniel Jelinski  
> wrote:
>> Hello,
>> I just noticed that wine's regedit has a few interesting bugs that
>> appear when running with native comctl32. Can I/should I file them in
>> the bugzilla?
>>
>> Regards,
>> Daniel
>
> What sort of bugs? In general, any bugs found with native dlls are suspect..
>
> --
> -Austin

One found with both native and builtin comctl32 - if you right-click a
key and select New, the new one is created under the node that was
last selected, not under the one that was right-clicked. This is
different form windows regedit and can be confusing.
Two others present with Windows comctl, but work correctly with wine's:
- you can't edit names of keys - even when you add a new key
- if you add a subkey to a key that did not have any subkeys before,
the new subkey is not visible and the parent key is not expandable.
After restarting regedit the keys are present and visible.

Regards,
Daniel




Testing regedit

2012-05-23 Thread Daniel Jelinski
Hello,
I just noticed that wine's regedit has a few interesting bugs that
appear when running with native comctl32. Can I/should I file them in
the bugzilla?

Regards,
Daniel




Re: comctl32: Fix message sequence when right-clicking a treeview

2012-05-15 Thread Daniel Jelinski
Are there any tests I could use as a base?

2012/5/15 Nikolay Sivov :
> On 5/15/2012 21:30, Daniel Jelinski wrote:
>>
>> Patch dropped out of the pending list, resending.
>
> Please add a test for this fix.
>




Re: [1/2] comctl32/tests: Added tests for mouse events handling (try 3)

2012-04-15 Thread Daniel Jelinski
Hello,
I see that my patch hasn't been accepted yet. Well if some explanation
could help it through, here goes:
Bug 19222 makes using MS SQL Server management studio a pain. The
application displays database structure in a tree view, and most
actions are executed from a context menu displayed by right-clicking
on a relevant position in the tree view. Unfortunately Wine suffers
from a bug - right click displays the menu, but selecting any option
from the menu causes another menu to be displayed at the current mouse
position. Selecting an option from this second menu works as expected.
Also opening the popup menu by pressing context menu key on the
keyboard works properly.
The usual suspect in such cases is that incorrect messages are sent,
or messages are sent in incorrect order. I tried to run the
application with native comctl, but unfortunately it refused to work -
probably comctl version 6.0 is required, while winetricks installs
version 5.80. So I created my own application in Delphi. It dispayed
the same problem with builtin comctl and worked correctly with native.
Then I tested it with WINEDEBUG=+message. The outstanding differences
were:
- on native comctl treeview sent two messages to the main window -
first WM_NOTIFY (NM_RCLICK) and then WM_CONTEXTMENU
- on builtin comctl treeview sent first WM_CONTEXTMENU to self, which
then got propagated to main window, and then WM_NOTIFY(NM_RCLICK).
There was something peculiar - WM_RBUTTONUP never appeared in the
logs. I checked to see why and found a function TREEVIEW_TrackMouse.
This function is called by WM_RBUTTONDOWN handler and it captures all
events from the message queue until it finds either WM_RBUTTONUP or
WM_MOUSEMOVE with coordinates sufficiently far from the origin of the
click. There was also a comment stating that "This is quite unusual
piece of code, but that's how it's implemented in Windows.". Given the
absence of WM_RBUTTONUP in message logs I consider this assertion to
be true.
With this knowledge I proceeded to write tests. I wanted to emulate
right button down/up sequence. I couldn't send both messages by
SendMessage, because SendMessage sends messages directly to the window
procedure, and WM_RBUTTONUP has to be delivered by message queue. I
also didn't want to push both messages to the queue - this would net
me several more irrelevant messages like WM_PAINT and could cause
failures if someone moved the (physical) mouse during the test. This
is why I chose to post WM_RBUTTONUP and then send WM_RBUTTONDOWN.
Later, thanks to our friendly bot Marvin, I found out that older
versions of comctl sent WM_PAINT messages during the button
down/button up sequence, bypassing the message queue. It took me
several tries to find out which messages are sent, but now the patch
works correctly on all tested comctl versions.
Then I corrected Wine to pass the tests. I tested both applications
(Microsoft's and mine) to see if they work correctly when the correct
messages are sent. They do.

If there is anything else I can do to help this patch get accepted,
let me know. I'd like to have a clean git origin before I start fixing
other treeview problems.
Thanks for your patience,
Daniel




Re: Regression testing

2012-04-12 Thread Daniel Jelinski
2012/4/12 Scott Ritchie :
> On 4/12/12 1:23 AM, Daniel Jeliński wrote:
>>
>> Hello all,
>> I am trying to get Microsoft SQL Server Management Studio to work
>> flawlessly under Wine. For the most part I create and triage related bug
>> reports, but recently I also started tinkering with code, specifically
>> with comctl library, which I am most familiar with.
>>
>> Back on subject. I thought I found a regression - on Wine 1.4 package
>> downloaded from launchpad the "New query" button works fine, while on my
>> compiled Wine it produces an error. So I did:
>>
>> git reset --hard wine-1.4
>> make
>>
>> and, surprisingly, I still had the problem with the compiled version.
>> However after some combination of deleting leftover files, running make
>> clean, make depend and make the button started working, so I started
>> bisecting, hoping for the best. At some point I started getting bad
>> versions, and every subsequent compile was bad - even after I ended
>> bisecting and returned to wine-1.4, the button still did not work (and
>> it still works under packaged Wine - I use the same install for all
>> tests). This time make clean && make depend && make did not help.
>>
>
> Packaged Wine might be different for a few reasons:
>
> 1) It is a hybrid 32+64 build, which you can't get in one step on Ubuntu
> 12.04 anymore
> 2) It uses GCC-4.5 (12.04 default is 4.6)
> 3) It has one small patch for fonts (shouldn't matter in your case)
> 4) It's built in a clean environment on the build daemon
> 5) It's installed and run out of tree.
>
> Thanks,
> Scott Ritchie

I eventually compiled a wine version that behaves like the packaged
one - git clean did the trick. Also I'm still on 11.10 (waiting for a
final release of 12.04).

By the way I've got the results of bisection. The first bad commit was
"atl80: New dll.". I guess this won't be an easy fix...

Daniel




Re: Regression testing

2012-04-12 Thread Daniel Jelinski
Marcus, Alexey, thank you for your ideas. I just did several builds to
see how to make things work. Here's what I got:
make clean && make - does not work (the problem persists)
make distclean && ./configure && make - same as above
git clean -xdf && ./configure && make - this one finally worked.
I'm not sure what's the difference between the above, but I'm going to
stick to git clean for the time being.

Thanks again
Daniel




Re: [1/2] comctl32/tests: Added tests for mouse events handling (try 3)

2012-04-08 Thread Daniel Jelinski
2012/4/8 Dmitry Timoshkov :
> Daniel Jelinski  wrote:
>
>> Skipping tests on WinNT - older versions of comctl send a different
>> set of events.
>
> Then you need to figure out what is different, and make the tests pass
> there as well (there is 'optional' flag for that), otherwise you risk
> breaking applications written for NT.

Okay, I'll do that. I thought that since comctl is supposed to be
backwards compatible, I'll write the tests to just pass on the newer
version.

>> +    /* WM_RBUTTONDOWN does not return until it gets another mouse event.
>> +    Make sure it gets one by posting WM_RBUTTONUP to message queue */
>> +    PostMessageA(hTree, WM_RBUTTONUP, 0, (LPARAM)0x10001);
>> +    /* this sequence should NOT send WM_CONTEXTMENU */
>> +    SendMessageA(hTree, WM_RBUTTONDOWN, 2, (LPARAM)0x10001);
>> +
>> +    /* ditch the first sequence as it processed more messages than we need. 
>> Redo */
>> +    flush_sequences(sequences, NUM_MSG_SEQUENCES);
>> +
>> +    PostMessageA(hTree, WM_RBUTTONUP, 0, (LPARAM)0x10001);
>> +    SendMessageA(hTree, WM_RBUTTONDOWN, 2, (LPARAM)0x10001);
>
> This can't work. If you use PostMessage you need to flush message queue before
> testing the sequence. Using SendMessage after PostMessage doesn't guarantee
> that a posted message is handled before a sent one, you may try generating
> hardware messages instead.

I want the posted message to be handled after the sent one, and I get
exactly that. The event handler for WM_RBUTTONDOWN captures all
messages until it finds one of the mouse-related events, so I needed
to post WM_RBUTTONUP first to make sure that SendMessage returns.
Hardware messages are an alternative, but I couldn't find any relevant
examples, so I followed the path of least resistance.

The first PostMessage/SendMessage sequence flushes the message queue,
or at least its interesting part. There are probably better ways
(PeekMessage/DispatchMessage loop comes to mind), but this one just
works.

>
>> +
>> +    if(sequences[PARENT_SEQ_INDEX]->sequence->message == 0x133)
>> +    {
>> +        win_skip("Comctl32 versions prior to 5.80 send different set of 
>> events");
>> +        return;
>> +    }
>
> Please use symbolic names for messages instead of magic numbers.

Ok, can do.

Best regards,
Daniel