]> git.sur5r.net Git - i3/i3/commitdiff
bugfix: resizing problem when resizing vertically on the top border (Thanks julien)
authorMichael Stapelberg <michael@stapelberg.de>
Thu, 27 Jan 2011 15:26:19 +0000 (16:26 +0100)
committerMichael Stapelberg <michael@stapelberg.de>
Thu, 27 Jan 2011 15:26:19 +0000 (16:26 +0100)
src/click.c

index 243820cb46875f806cdee6d992c716789e785ebd..b6a752ef39ce4f4a27f3b5d6471b2d794857595f 100644 (file)
@@ -329,13 +329,17 @@ int handle_button_press(void *ignored, xcb_connection_t *conn, xcb_button_press_
     DLOG("BORDER x = %d, y = %d for con %p, window 0x%08x, border_click = %d, clicked_into = %p\n",
             event->event_x, event->event_y, con, event->event, border_click, clicked_into);
     DLOG("checks for right >= %d\n", con->window_rect.x + con->window_rect.width);
-    /* TODO: das problem ist, dass TAILQ_PREV etc. nicht die orientation beachtet. */
     Con *first = NULL, *second = NULL;
     if (clicked_into) {
         DLOG("BORDER top\n");
-        second = clicked_into;
-        if ((first = con_get_next(clicked_into, 'p', VERT)) != NULL)
+        if ((first = con_get_next(clicked_into, 'p', VERT)) != NULL) {
+            /* instead of setting second = clicked_into we get the container
+             * below the one which con_get_next returned. This way, if
+             * clicked_into is inside another split-con, we get the correct
+             * parent to work with. */
+            second = TAILQ_NEXT(first, nodes);
             resize_graphical_handler(first, second, VERT, event);
+        }
     } else if (event->event_x >= 0 && event->event_x <= bsr.x &&
         event->event_y >= bsr.y && event->event_y <= con->rect.height + bsr.height) {
         DLOG("BORDER left\n");