]> git.sur5r.net Git - i3/i3/commitdiff
cmd_move_window_to_position: improve error message 3185/head
authorOrestis Floros <orestisf1993@gmail.com>
Sun, 18 Mar 2018 00:41:12 +0000 (02:41 +0200)
committerOrestis Floros <orestisf1993@gmail.com>
Tue, 20 Mar 2018 14:59:06 +0000 (16:59 +0200)
include/floating.h
src/commands.c
src/floating.c

index babfafc9a583f3321dbe32c4394b9d4ca8e22070..4382437bbbb8f01ef262ca99b4db0fb76ddc2dce 100644 (file)
@@ -143,7 +143,7 @@ drag_result_t drag_pointer(Con *con, const xcb_button_press_event_t *event,
  * outputs.
  *
  */
-void floating_reposition(Con *con, Rect newrect);
+bool floating_reposition(Con *con, Rect newrect);
 
 /**
  * Sets size of the CT_FLOATING_CON to specified dimensions. Might limit the
index b62daad99309d73e7710e9004a832a0cb99c822b..98625a911bd5b121a3b8574aef5e558ab0beef73 100644 (file)
@@ -1718,10 +1718,12 @@ void cmd_move_window_to_position(I3_CMD, long x, long y) {
         newrect.x = x;
         newrect.y = y;
 
-        floating_reposition(current->con->parent, newrect);
+        if (!floating_reposition(current->con->parent, newrect)) {
+            yerror("Cannot move window/container out of bounds.");
+            has_error = true;
+        }
     }
 
-    // XXX: default reply for now, make this a better reply
     if (!has_error)
         ysuccess(true);
 }
index e958153d6a647ab5242188d932f28e1b3ae19e98..2130d6732278fbea5e8570a465d101939ed65b14 100644 (file)
@@ -864,12 +864,12 @@ drag_result_t drag_pointer(Con *con, const xcb_button_press_event_t *event, xcb_
  * outputs.
  *
  */
-void floating_reposition(Con *con, Rect newrect) {
+bool floating_reposition(Con *con, Rect newrect) {
     /* Sanity check: Are the new coordinates on any output? If not, we
      * ignore that request. */
     if (!contained_by_output(newrect)) {
         ELOG("No output found at destination coordinates. Not repositioning.\n");
-        return;
+        return false;
     }
 
     con->rect = newrect;
@@ -881,6 +881,7 @@ void floating_reposition(Con *con, Rect newrect) {
         con->scratchpad_state = SCRATCHPAD_CHANGED;
 
     tree_render();
+    return true;
 }
 
 /*