[PATCH 7/7] comctl32/taskdialog: Add support for TDF_RTL_LAYOUT.

Nikolay Sivov nsivov at codeweavers.com
Thu May 17 09:15:36 CDT 2018


On 05/17/2018 03:59 PM, Zhiyi Zhang wrote:

> As far as I can see in the task dialog sample program. It does affect every control.
> Except for the title bar, which I can't get it to render RTL mode in anyway for now.

It will affect title bar too, on Windows. Window icon should be on the 
right, followed by the caption, and buttons on the left.
In case of Wine, it should affect non-decorated mode, and will depend on 
window system driver for the rest, meaning it will be handled in general 
windowing code, not by every dialog.

>
> Are you suggesting we should implement the RTL mode in the resizing function?

We should position everything differently, so yes. When static templates 
are used this is usually achieved with a separate RTL template, but we 
don't have that.

>
> On Thu 5 17 15:25, Nikolay Sivov wrote:
>> On 05/16/2018 07:15 PM, Zhiyi Zhang wrote:
>>
>>> Signed-off-by: Zhiyi Zhang <zzhang at codeweavers.com>
>>> ---
>>>    dlls/comctl32/taskdialog.c | 1 +
>>>    1 file changed, 1 insertion(+)
>>>
>>> diff --git a/dlls/comctl32/taskdialog.c b/dlls/comctl32/taskdialog.c
>>> index 7066b793c8..5cd1d05642 100644
>>> --- a/dlls/comctl32/taskdialog.c
>>> +++ b/dlls/comctl32/taskdialog.c
>>> @@ -543,6 +543,7 @@ static DLGTEMPLATE *create_taskdialog_template(const TASKDIALOGCONFIG *taskconfi
>>>        template->style = DS_MODALFRAME | DS_SETFONT | WS_CAPTION | WS_VISIBLE | WS_SYSMENU;
>>>        if (taskconfig->dwFlags & TDF_CAN_BE_MINIMIZED) template->style |= WS_MINIMIZEBOX;
>>>        if (!(taskconfig->dwFlags & TDF_NO_SET_FOREGROUND)) template->style |= DS_SETFOREGROUND;
>>> +    if (taskconfig->dwFlags & TDF_RTL_LAYOUT) template->dwExtendedStyle = WS_EX_LAYOUTRTL | WS_EX_RIGHT | WS_EX_RTLREADING;
>>>        template->cdit = desc.control_count;
>>>          ptr = (char *)(template + 1);
>> This is probably correct on its own, but not enough to consider RTL mode supported. It should affect horizontal positions of about every control.
>>
>>




More information about the wine-devel mailing list