On Sat, Feb 13, 2021 at 08:22:16PM +0530, Mandar Mitra wrote:
> Ipe sometimes pops up a little window (only borders, no titlebar
> or buttons) that says "Waiting for external editor" (meaning
> emacs), and grabs focus.

1) Please provide instructions how to make this happen.

2) What are the focus related options in the config file?  (All of

> I have to manually focus emacs before I can type anything. When
> I quit emacs, the above window goes away.

> I would like the transient windows to not affect focus at all. I
> looked at the manual page for the FPGrabFocusTransient,
> FPGrabFocusTransient,  FPReleaseFocusTransient, and similar
> options, but I couldn't figure out what I need to do to get the

Thanks to the "extended window manager hints" specification
applications can force focus on certain windows without leaving
that to the window manager.  Ipe sends an "activation" message on
the transient windows to the window manager, and the default
reaction to that is to raise and focus the window.

For me, this works well:

  Style * GrabFocusTransient
  Style ipe !FPGrabFocusTransient
  Style * !RaiseTransient, !LowerTransient, !StackTransientParent

  destroyfunc EWMHActivateWindowFunc
  addtofunc EWMHActivateWindowFunc
  + I echo Ignoring EWMHActivateWindowFunc $[w.id] $[w.name]

But that will also prevent automatic focusing of file dialogs etc.
(which is perfectly fine for me).  Alas, Ipe gives several of
these windows the name "ipe" (and all its windows have the class
 and resource "ipe"), so unfortunately "style ipe ..." applies not
only to the transients in question but to all its windows.


If you really want EWMH to focus windows automatically and throw
unexpected windows in your face, revealing the passwords you were
typing in a shell etc., you'd have to hand write an
EWMHActivateWindowFunc that does nothing for ipe windows (using
conditional execution syntax) but works normally for others.


To figure out the window names, use

  Style * DecorateTransient

Or run the FvwmIdent module on the window in question.  (E.g. open
FvwmConsole, type "FvwmIdent", then pick a window.)


(A bug report to Ipe to ask them to name all their windows
properly would be in order, but not fix the problem anythime soon,
I guess.)


Dominik ^_^  ^_^


Dominik Vogt

Reply via email to