From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Helmut Eller Newsgroups: gmane.emacs.bugs Subject: bug#745: pop-to-buffer, frames, and input focus Date: Sat, 30 Aug 2008 13:06:36 +0200 Message-ID: References: <48AD2FB5.3000204@gmx.at> <48ADD085.50505@gmx.at> <48AEEBB8.50201@gmx.at> <48AFFD26.3040204@gmx.at> <48B2B78C.9090407@gmx.at> <48B50C63.8010402@gmx.at> <48B69007.20604@gmx.at> <48B7181B.7080706@gmx.at> <48B7C0DA.8040104@gmx.at> <48B901B0.90701@gmx.at> Reply-To: Helmut Eller , 745@emacsbugs.donarmstrong.com NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1220095665 26292 80.91.229.12 (30 Aug 2008 11:27:45 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 30 Aug 2008 11:27:45 +0000 (UTC) Cc: 745@emacsbugs.donarmstrong.com To: martin rudalics Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sat Aug 30 13:28:39 2008 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1KZOdB-0005PK-6u for geb-bug-gnu-emacs@m.gmane.org; Sat, 30 Aug 2008 13:28:37 +0200 Original-Received: from localhost ([127.0.0.1]:42346 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KZOcC-0007cP-BB for geb-bug-gnu-emacs@m.gmane.org; Sat, 30 Aug 2008 07:27:36 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KZOc9-0007bI-6z for bug-gnu-emacs@gnu.org; Sat, 30 Aug 2008 07:27:33 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KZOc8-0007ab-L7 for bug-gnu-emacs@gnu.org; Sat, 30 Aug 2008 07:27:32 -0400 Original-Received: from [199.232.76.173] (port=47758 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KZOc8-0007aN-GC for bug-gnu-emacs@gnu.org; Sat, 30 Aug 2008 07:27:32 -0400 Original-Received: from rzlab.ucr.edu ([138.23.92.77]:41926) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1KZOc7-0001I5-Vf for bug-gnu-emacs@gnu.org; Sat, 30 Aug 2008 07:27:32 -0400 Original-Received: from rzlab.ucr.edu (rzlab.ucr.edu [127.0.0.1]) by rzlab.ucr.edu (8.13.8/8.13.8/Debian-3) with ESMTP id m7UBRTfo008264; Sat, 30 Aug 2008 04:27:30 -0700 Original-Received: (from debbugs@localhost) by rzlab.ucr.edu (8.13.8/8.13.8/Submit) id m7UBA4hZ002077; Sat, 30 Aug 2008 04:10:04 -0700 X-Loop: don@donarmstrong.com Resent-From: Helmut Eller Resent-To: bug-submit-list@donarmstrong.com Resent-CC: Emacs Bugs Resent-Date: Sat, 30 Aug 2008 11:10:04 +0000 Resent-Message-ID: Resent-Sender: don@donarmstrong.com X-Emacs-PR-Message: report 745 X-Emacs-PR-Package: emacs X-Emacs-PR-Keywords: Original-Received: via spool by 745-submit@emacsbugs.donarmstrong.com id=B745.122009430332225 (code B ref 745); Sat, 30 Aug 2008 11:10:04 +0000 Original-Received: (at 745) by emacsbugs.donarmstrong.com; 30 Aug 2008 11:05:03 +0000 Original-Received: from rolmail.net (cgp1.rolmail.net [195.254.252.190]) by rzlab.ucr.edu (8.13.8/8.13.8/Debian-3) with ESMTP id m7UB4vsE032023 for <745@emacsbugs.donarmstrong.com>; Sat, 30 Aug 2008 04:04:59 -0700 Original-Received: from dummy.name; Sat, 30 Aug 2008 13:04:55 +0200 Original-Received: from dummy.name; Sat, 30 Aug 2008 13:06:36 +0200 In-Reply-To: <48B901B0.90701@gmx.at> (martin rudalics's message of "Sat, 30 Aug 2008 10:15:44 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux) X-detected-kernel: by monty-python.gnu.org: Linux 2.6 (newer, 3) Resent-Date: Sat, 30 Aug 2008 07:27:32 -0400 X-BeenThere: bug-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:19906 Archived-At: * martin rudalics [2008-08-30 10:15+0200] writes: >>>> I also found the gtk_window_set_focus_on_map function. This seems to >>>> rely on the _NET_WM_USER_TIME EWMH. Sawfish ignores _NET_WM_USER_TIME, >>>> but it could be useful for other window managers. > > How do you find out that Sawfish ignores that? a) by looking at the _NET_SUPPORTS property on the root window. I posted the content of that in my last email. It doesn't contain _NET_WM_USER_TIME. b) by grepping through Sawfish's source code. >> For a window manager which supports it, _NET_SUPPORTED will contain >> _NET_WM_USER_TIME. But it wouldn't hurt to set _NET_WM_USER_TIME to 0, >> because that should be interpreted as "disable focus-on-map". At least >> gtk_window_set_focus_on_map sets the property unconditionally. > > Do you have one window-manager setting where you can get Emacs > > (1) do a `display-buffer' making a new frame without that frame getting > raised and/or input focus, and If I call gtk_window_set_focus_on_map (GTK_WINDOW (wtop), FALSE) in gtkutil.c:xg_create_frame_widgets, then Metacity dosn't give the focus to new frames. The initial Emacs frame is also not focused. gtk_window_set_focus_on_map sets _NET_WM_USER_TIME to 0. I know that because I read the GTK source. It can be verified by calling xprop on the resulting Emacs frame. > (2) give input focus to/raise a frame that hasn't input focus/is not > raised. > > entirely using _NET_WM_USER_TIME? I don't know how to that with _NET_WM_USER_TIME. But the EWMH-spec says this: _NET_ACTIVE_WINDOW, WINDOW/32 The window ID of the currently active window or None if no window has the focus. This is a read-only property set by the Window Manager. If a Client wants to activate another window, it MUST send a _NET_ACTIVE_WINDOW client message to the root window: _NET_ACTIVE_WINDOW window = window to activate message_type = _NET_ACTIVE_WINDOW format = 32 data.l[0] = source indication data.l[1] = timestamp data.l[2] = requestor's currently active window, 0 if none other data.l[] elements = 0 Source indication should be 1 when the request comes from an application, and 2 when it comes from a pager. Clients using older version of this spec use 0 as source indication, see the section called "Source indication in request" for details. The timestamp is Client's last user activity timestamp (see _NET_WM_USER_TIME) at the time of the request, and the currently active window is the Client's active toplevel window, if any (the Window Manager may be e.g. more likely to obey the request if it will mean transferring focus from one active window to another). Depending on the information provided with the message, the Window Manager may decide to refuse the request (either completely ignore it, or e.g. use _NET_WM_STATE_DEMANDS_ATTENTION). The current implementation of x_ewmh_activate_frame seems to work fine. > I faintly recall a discussion about a > misinterpretation of timestamps sent to the window-manager (Metacity?) > by Emacs. I've seen Metacity spit out warnings along the lines that XSetInputFocus was called with a wrong timestamp. But I can't reproduce that right now. Helmut.