diff options
Diffstat (limited to 'x11-wm/twm/files/patch-src_util.c')
-rw-r--r-- | x11-wm/twm/files/patch-src_util.c | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/x11-wm/twm/files/patch-src_util.c b/x11-wm/twm/files/patch-src_util.c new file mode 100644 index 000000000000..27419870b8de --- /dev/null +++ b/x11-wm/twm/files/patch-src_util.c @@ -0,0 +1,47 @@ +--- src/util.c.orig 2020-06-14 23:58:19 UTC ++++ src/util.c +@@ -1033,3 +1033,44 @@ Bell(int type _X_UNUSED, int percent, Window win _X_UN + #endif + return; + } ++ ++/* ++ * Create synthetic WM_HINTS info for windows. When a window specifies ++ * stuff, we should probably pay attention to it (though we don't ++ * always; x-ref comments in AddWindow() especially about focus). ++ * However, when it doesn't tell us anything at all, we should assume ++ * something useful. "Window managers are free to assume convenient ++ * values for all fields of the WM_HINTS property if a window is mapped ++ * without one." (ICCCM Ch. 4, ++ * <https://www.x.org/releases/X11R7.7/doc/xorg-docs/icccm/icccm.html#Client_Properties>). ++ * ++ * Specifically, we assume it wants us to give it focus. It's fairly ++ * bogus for a window not to tell us anything, but e.g current versions ++ * of Chrome do (don't do) just that. So we better make up something ++ * useful. ++ * ++ * Should probably be some configurability for this, so make the func ++ * take the window, even though we don't currently do anything useful ++ * with it... ++ */ ++XWMHints * ++gen_synthetic_wmhints(TwmWindow *win) ++{ ++ XWMHints *hints; ++ ++ hints = XAllocWMHints(); ++ if(!hints) { ++ return NULL; ++ } ++ ++ /* ++ * Reasonable defaults. Takes input, in normal state. ++ * ++ * XXX Make configurable? ++ */ ++ hints->flags = InputHint | StateHint; ++ hints->input = True; ++ hints->initial_state = NormalState; ++ ++ return hints; ++} |