aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorokan2016-10-03 13:41:30 +0000
committerokan2016-10-03 13:41:30 +0000
commit59314d892ab90c218f2fd9b63761bf898ac4da2f (patch)
tree9aa10135d2a42b84834f16198438b2dfd6cf251c
parentd0575d0c5db22491b1c794d28ede0d6c6ecf34c7 (diff)
downloadcwm-59314d892ab90c218f2fd9b63761bf898ac4da2f.tar.gz
client_ptrwarp should not deal with unhiding or raising clients (non ptr
requests); most callers do this already - deal with the few that do not. client_ptrwarp becomes a simple wrapper (setpos) but it will be expanded.
-rw-r--r--client.c8
-rw-r--r--kbfunc.c4
-rw-r--r--xevents.c6
3 files changed, 10 insertions, 8 deletions
diff --git a/client.c b/client.c
index 5797135..6e9fa6e 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.225 2016/09/30 20:55:54 okan Exp $
+ * $OpenBSD: client.c,v 1.226 2016/10/03 13:41:30 okan Exp $
*/
#include <sys/types.h>
@@ -469,11 +469,6 @@ client_config(struct client_ctx *cc)
void
client_ptrwarp(struct client_ctx *cc)
{
- if (cc->flags & CLIENT_HIDDEN)
- client_unhide(cc);
- else
- client_raise(cc);
-
xu_ptr_setpos(cc->win, cc->ptr.x, cc->ptr.y);
}
@@ -686,6 +681,7 @@ client_cycle(struct screen_ctx *sc, int flags)
/* reset when cycling mod is released. XXX I hate this hack */
sc->cycling = 1;
client_ptrsave(oldcc);
+ client_raise(newcc);
client_ptrwarp(newcc);
}
diff --git a/kbfunc.c b/kbfunc.c
index 91d7a2a..f30f809 100644
--- a/kbfunc.c
+++ b/kbfunc.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: kbfunc.c,v 1.127 2016/09/22 14:36:03 okan Exp $
+ * $OpenBSD: kbfunc.c,v 1.128 2016/10/03 13:41:30 okan Exp $
*/
#include <sys/types.h>
@@ -187,6 +187,8 @@ kbfunc_menu_client(struct client_ctx *cc, union arg *arg)
cc = (struct client_ctx *)mi->ctx;
if (cc->flags & CLIENT_HIDDEN)
client_unhide(cc);
+ else
+ client_raise(cc);
if (old_cc)
client_ptrsave(old_cc);
client_ptrwarp(cc);
diff --git a/xevents.c b/xevents.c
index cda021b..a59aee6 100644
--- a/xevents.c
+++ b/xevents.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: xevents.c,v 1.122 2016/09/16 14:32:02 okan Exp $
+ * $OpenBSD: xevents.c,v 1.123 2016/10/03 13:41:30 okan Exp $
*/
/*
@@ -344,6 +344,10 @@ xev_handle_clientmessage(XEvent *ee)
if ((cc = client_find(e->window)) != NULL) {
if ((old_cc = client_current()) != NULL)
client_ptrsave(old_cc);
+ if (cc->flags & CLIENT_HIDDEN)
+ client_unhide(cc);
+ else
+ client_raise(cc);
client_ptrwarp(cc);
}
} else if (e->message_type == ewmh[_NET_WM_DESKTOP]) {