Signed-off-by: Zhiyi Zhang zzhang@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);
On 05/16/2018 07:15 PM, Zhiyi Zhang wrote:
Signed-off-by: Zhiyi Zhang zzhang@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.
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.
Are you suggesting we should implement the RTL mode in the resizing function?
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@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.
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@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.