From 863f07dea0ce02fd8263f5363c9d50504fc4af6e Mon Sep 17 00:00:00 2001 From: Jarek Czekalski Date: Tue, 6 May 2014 18:00:30 +0200 Subject: Fix tooltips pulling Emacs window to front on windows-nt, bug #17408. * w32fns.c (Fx_show_tip): Add SWP_NOOWNERZORDER flag to SetWindowPos invocations. --- src/ChangeLog | 6 ++++++ src/w32fns.c | 10 ++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 9839b6a2146..720ab11135f 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2014-05-06 Jarek Czekalski + + Stop tooltips pulling Emacs window to front (Bug#17408). + * w32fns.c (Fx_show_tip): Add SWP_NOOWNERZORDER flag to + SetWindowPos invocations. + 2014-05-05 Jan Djärv * nsselect.m (Fx_selection_exists_p): Just return Qnil if window system diff --git a/src/w32fns.c b/src/w32fns.c index ffe63a3cf2d..630059c38f1 100644 --- a/src/w32fns.c +++ b/src/w32fns.c @@ -6036,12 +6036,13 @@ Text larger than the specified size is clipped. */) /* Put tooltip in topmost group and in position. */ SetWindowPos (FRAME_W32_WINDOW (f), HWND_TOPMOST, root_x, root_y, 0, 0, - SWP_NOSIZE | SWP_NOACTIVATE); + SWP_NOSIZE | SWP_NOACTIVATE | SWP_NOOWNERZORDER); /* Ensure tooltip is on top of other topmost windows (eg menus). */ SetWindowPos (FRAME_W32_WINDOW (f), HWND_TOP, 0, 0, 0, 0, - SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE); + SWP_NOMOVE | SWP_NOSIZE + | SWP_NOACTIVATE | SWP_NOOWNERZORDER); unblock_input (); goto start_timer; @@ -6239,12 +6240,13 @@ Text larger than the specified size is clipped. */) SetWindowPos (FRAME_W32_WINDOW (f), HWND_TOPMOST, root_x, root_y, rect.right - rect.left + FRAME_COLUMN_WIDTH (f), - rect.bottom - rect.top, SWP_NOACTIVATE); + rect.bottom - rect.top, SWP_NOACTIVATE | SWP_NOOWNERZORDER); /* Ensure tooltip is on top of other topmost windows (eg menus). */ SetWindowPos (FRAME_W32_WINDOW (f), HWND_TOP, 0, 0, 0, 0, - SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE); + SWP_NOMOVE | SWP_NOSIZE + | SWP_NOACTIVATE | SWP_NOOWNERZORDER); /* Let redisplay know that we have made the frame visible already. */ SET_FRAME_VISIBLE (f, 1); -- cgit v1.2.3