1
0
mirror of https://github.com/gryf/wmaker.git synced 2025-12-19 12:28:22 +01:00

Do not switch workspace to follow new windows in others

New windows should only be focused if they are in the current workspace.
Not performing this check can lead to WM switching workspaces if a
window is opened which:

   (a) is configured to appear in a particular workspace

and

   (b) sends a _NET_ACTIVE_WINDOW message to give focus to
       something, e.g. a sub window.

This behaviour was observed with firefox if a session with more
than one tab open was restored at startup because:

 "If a Client wants to activate another window, it MUST send a
   _NET_ACTIVE_WINDOW client message to the root window:"

Original-post: http://lists.windowmaker.info/dev/msg00442.html

[crmafra: Added comment]
This commit is contained in:
Martin Dietze
2009-08-24 21:40:47 +02:00
committed by Carlos R. Mafra
parent 442e3876c6
commit d6c134f420

View File

@@ -1446,7 +1446,13 @@ Bool wNETWMProcessClientMessage(XClientMessageEvent * event)
if (!wwin) if (!wwin)
return False; return False;
if (event->message_type == net_active_window) { /*
* Firefox with multiple tabs sends aditional 'net_active_window'
* signals on startup, which causes unnecessary workspace switching
* if its initial workspace is different from the current
*/
if (event->message_type == net_active_window &&
wwin->frame->workspace == wwin->screen_ptr->current_workspace) {
wNETWMShowingDesktop(scr, False); wNETWMShowingDesktop(scr, False);
wMakeWindowVisible(wwin); wMakeWindowVisible(wwin);
} else if (event->message_type == net_close_window) { } else if (event->message_type == net_close_window) {