aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkn@openbsd.org2021-04-22 10:02:55 +0000
committerWolfgang Müller2021-04-27 12:28:09 +0200
commit98fbcf04228072947b418237c03776756f78c860 (patch)
tree7c7b0892fe1c33ce547be36cd7bdc8e7f1d3295b
parent1fd2fe716484cde85f4942921795018399b60bf4 (diff)
downloadcwm-98fbcf04228072947b418237c03776756f78c860.tar.gz
Keep pointer within window on maximize/fullscreen toggle
Spawn a window, maximize it in any way, move the cursor to a window border that is not on the screen's edge and unmaximize again: While the window goes back the cursor stays at the screen's edge, i.e. focus is lost to the underlaying window. Moving, resizing, tiling or snapping windows in any way always moves the cursor along iff needed, e.g. using MS-[hjkl] to move a small window from the center to the edge keeps the cursor within window borders -- no matter what you do with the keyboard, focus stays on that window. Make CM-f, CM-m, CM-equal and CMS-equal (default bindings) for toggling full-screen mode, maximization, vertical maximization and horizontal maximization of the current window drag the cursor along if needed as well. OK okan kmos dv
-rw-r--r--client.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/client.c b/client.c
index bea1dba..5f4f452 100644
--- a/client.c
+++ b/client.c
@@ -15,7 +15,7 @@
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
- * $OpenBSD: client.c,v 1.263 2020/04/16 13:32:35 okan Exp $
+ * $OpenBSD: client.c,v 1.264 2021/04/22 10:02:55 kn Exp $
*/
#include <sys/types.h>
@@ -336,6 +336,7 @@ client_toggle_fullscreen(struct client_ctx *cc)
resize:
client_resize(cc, 0);
xu_ewmh_set_net_wm_state(cc);
+ client_ptr_inbound(cc, 1);
}
void
@@ -376,6 +377,7 @@ client_toggle_maximize(struct client_ctx *cc)
resize:
client_resize(cc, 0);
xu_ewmh_set_net_wm_state(cc);
+ client_ptr_inbound(cc, 1);
}
void
@@ -408,6 +410,7 @@ client_toggle_vmaximize(struct client_ctx *cc)
resize:
client_resize(cc, 0);
xu_ewmh_set_net_wm_state(cc);
+ client_ptr_inbound(cc, 1);
}
void
@@ -440,6 +443,7 @@ client_toggle_hmaximize(struct client_ctx *cc)
resize:
client_resize(cc, 0);
xu_ewmh_set_net_wm_state(cc);
+ client_ptr_inbound(cc, 1);
}
void