[PATCH v3 0/4] MR2229: winex11: Fix X11 WM behavior for Delphi based apps.
Fixes the longstanding misbehavior of X window managers with respect to Delphi based applications. Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=26503 -- v3: winex11: Fix X11 WM behavior for Delphi based apps. Revert "winex11: add missing newline in TRACE." winex11: add missing newline in TRACE. winex11: Fix X11 WM behavior for Delphi based apps. https://gitlab.winehq.org/wine/wine/-/merge_requests/2229
From: Roberto Fernandez <rfz(a)free.fr> Fixes the longstanding misbehavior of X window managers with respect to Delphi based applications. Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=26503 --- dlls/winex11.drv/event.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/dlls/winex11.drv/event.c b/dlls/winex11.drv/event.c index 86edf66b820..3efeb8fcdb4 100644 --- a/dlls/winex11.drv/event.c +++ b/dlls/winex11.drv/event.c @@ -731,7 +731,16 @@ static void handle_wm_protocols( HWND hwnd, XClientMessageEvent *event ) if (hwnd) hwnd = NtUserGetAncestor( hwnd, GA_ROOT ); if (!hwnd) hwnd = get_active_window(); if (!hwnd) hwnd = last_focus; - if (hwnd && can_activate_window(hwnd)) set_focus( event->display, hwnd, event_time ); + if (hwnd && can_activate_window(hwnd)) + { + Window win = X11DRV_get_whole_window(hwnd); + if (win) + { + TRACE("will raise window %p", hwnd); + XRaiseWindow(event->display, win); + } + set_focus( event->display, hwnd, event_time ); + } } else if (protocol == x11drv_atom(_NET_WM_PING)) { -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/2229
From: Roberto Fernandez <rfz(a)free.fr> --- dlls/winex11.drv/event.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dlls/winex11.drv/event.c b/dlls/winex11.drv/event.c index 3efeb8fcdb4..66082439189 100644 --- a/dlls/winex11.drv/event.c +++ b/dlls/winex11.drv/event.c @@ -736,7 +736,7 @@ static void handle_wm_protocols( HWND hwnd, XClientMessageEvent *event ) Window win = X11DRV_get_whole_window(hwnd); if (win) { - TRACE("will raise window %p", hwnd); + TRACE("will raise window %p\n", hwnd); XRaiseWindow(event->display, win); } set_focus( event->display, hwnd, event_time ); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/2229
From: Roberto Fernandez <rfz(a)free.fr> This reverts commit 61111f5a1133b5f3a55479a47c04f78656184b62. --- dlls/winex11.drv/event.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dlls/winex11.drv/event.c b/dlls/winex11.drv/event.c index 66082439189..3efeb8fcdb4 100644 --- a/dlls/winex11.drv/event.c +++ b/dlls/winex11.drv/event.c @@ -736,7 +736,7 @@ static void handle_wm_protocols( HWND hwnd, XClientMessageEvent *event ) Window win = X11DRV_get_whole_window(hwnd); if (win) { - TRACE("will raise window %p\n", hwnd); + TRACE("will raise window %p", hwnd); XRaiseWindow(event->display, win); } set_focus( event->display, hwnd, event_time ); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/2229
From: Roberto Fernandez <rfz(a)free.fr> Fixes the longstanding misbehavior of X window managers with respect to Delphi based applications. Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=26503 --- dlls/winex11.drv/event.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dlls/winex11.drv/event.c b/dlls/winex11.drv/event.c index 3efeb8fcdb4..66082439189 100644 --- a/dlls/winex11.drv/event.c +++ b/dlls/winex11.drv/event.c @@ -736,7 +736,7 @@ static void handle_wm_protocols( HWND hwnd, XClientMessageEvent *event ) Window win = X11DRV_get_whole_window(hwnd); if (win) { - TRACE("will raise window %p", hwnd); + TRACE("will raise window %p\n", hwnd); XRaiseWindow(event->display, win); } set_focus( event->display, hwnd, event_time ); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/2229
`git rebase -i master` Then put an s before all commits but the first commit. (Make sure to read the description at the bottom first tho) Afterwards `git push -f` to the merge branch. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/2229#note_24750
On Sat Feb 18 17:20:58 2023 +0000, Bernhard Kölbl wrote:
`git rebase -i master` Then put an s before all commits but the first commit. (Make sure to read the description at the bottom first tho) Afterwards `git push -f` to the merge branch. Actually I noticed this might not work so better try `git rebase -i @~4`
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/2229#note_24752
participants (3)
-
Bernhard Kölbl -
Roberto Fernandez -
Roberto Fernandez (@rfz)