On Mon, Dec 28, 2015 at 02:25:27PM +0100, Alexander Hall wrote:
> Instead of attacking x11-ssh-askpass, I think this is a better approach.
> 
> Thoughts?

Hi,

I've looked a bit at the i3 code now. I like this diff better than
patching ssh-askpass.

But this diff make it look like i3 is ignoring the wm size hints when
the obsolete values in the hints are 0. I would at least add the "obsolete"
word to the DLOG calls to mitigate that.

In fact i3 will use the geometry specified by the window for
the floating ones, whether the position hint flag is set or not
(except if the flag *and* the obsolete fields are set).

I would drop using the obsolete fields completely but the comment
about "Plasma windows" seems to indicate that KDE people decided to
use them anyways.

So ok matthieu@

> 
> /Alexander
> 
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/x11/i3/Makefile,v
> retrieving revision 1.100
> diff -u -p -r1.100 Makefile
> --- Makefile  21 Dec 2015 09:48:10 -0000      1.100
> +++ Makefile  28 Dec 2015 13:21:14 -0000
> @@ -3,7 +3,7 @@
>  COMMENT =    improved dynamic tiling window manager
>  
>  DISTNAME =   i3-4.11
> -REVISION =   1
> +REVISION =   2
>  CATEGORIES = x11
>  
>  EXTRACT_SUFX =       .tar.bz2
> Index: patches/patch-src_manage_c
> ===================================================================
> RCS file: /cvs/ports/x11/i3/patches/patch-src_manage_c,v
> retrieving revision 1.17
> diff -u -p -r1.17 patch-src_manage_c
> --- patches/patch-src_manage_c        18 Dec 2015 15:53:09 -0000      1.17
> +++ patches/patch-src_manage_c        28 Dec 2015 13:21:14 -0000
> @@ -5,7 +5,7 @@ Suppress no_focus for first window on a 
>  Fix multiple memory leaks with regular expressions.
>  
>  --- src/manage.c.orig        Wed Sep 30 08:55:10 2015
> -+++ src/manage.c     Fri Dec 18 13:58:58 2015
> ++++ src/manage.c     Mon Dec 28 14:05:47 2015
>  @@ -294,6 +294,7 @@ void manage_window(xcb_window_t window, xcb_get_window
>           if (match != NULL && match->insert_where != M_BELOW) {
>               DLOG("Removing match %p from container %p\n", match, nc);
> @@ -14,7 +14,27 @@ Fix multiple memory leaks with regular e
>           }
>       }
>   
> -@@ -524,13 +525,23 @@ void manage_window(xcb_window_t window, xcb_get_window
> +@@ -431,11 +432,16 @@ void manage_window(xcb_window_t window, xcb_get_window
> + 
> +     /* Plasma windows set their geometry in WM_SIZE_HINTS. */
> +     if ((wm_size_hints.flags & XCB_ICCCM_SIZE_HINT_US_POSITION || 
> wm_size_hints.flags & XCB_ICCCM_SIZE_HINT_P_POSITION) &&
> +-        (wm_size_hints.flags & XCB_ICCCM_SIZE_HINT_US_SIZE || 
> wm_size_hints.flags & XCB_ICCCM_SIZE_HINT_P_SIZE)) {
> +-        DLOG("We are setting geometry according to wm_size_hints x=%d y=%d 
> w=%d h=%d\n",
> +-             wm_size_hints.x, wm_size_hints.y, wm_size_hints.width, 
> wm_size_hints.height);
> ++        wm_size_hints.x != 0 && wm_size_hints.y != 0) {
> ++        DLOG("We are setting geometry according to wm_size_hints x=%d 
> y=%d\n",
> ++             wm_size_hints.x, wm_size_hints.y);
> +         geom->x = wm_size_hints.x;
> +         geom->y = wm_size_hints.y;
> ++    }
> ++    if ((wm_size_hints.flags & XCB_ICCCM_SIZE_HINT_US_SIZE || 
> wm_size_hints.flags & XCB_ICCCM_SIZE_HINT_P_SIZE) &&
> ++        wm_size_hints.width != 0 && wm_size_hints.height != 0) {
> ++        DLOG("We are setting geometry according to wm_size_hints w=%d 
> h=%d\n",
> ++             wm_size_hints.width, wm_size_hints.height);
> +         geom->width = wm_size_hints.width;
> +         geom->height = wm_size_hints.height;
> +     }
> +@@ -524,13 +530,23 @@ void manage_window(xcb_window_t window, xcb_get_window
>       /* Send an event about window creation */
>       ipc_send_window_event("new", nc);
>   

-- 
Matthieu Herrb

Attachment: signature.asc
Description: PGP signature

Reply via email to