From 4336d014b6037c35b3a1f8921e769344aae587f3 Mon Sep 17 00:00:00 2001 From: Mikael Magnusson Date: Wed, 22 Aug 2007 23:58:57 +0200 Subject: [PATCH] Add a _OB_FOCUS client message for obpanel to use. --- obt/prop.c | 1 + obt/prop.h | 1 + openbox/event.c | 2 ++ openbox/screen.c | 1 + 4 files changed, 5 insertions(+) diff --git a/obt/prop.c b/obt/prop.c index 0cecccf4..893d199d 100644 --- a/obt/prop.c +++ b/obt/prop.c @@ -187,6 +187,7 @@ void obt_prop_startup(void) */ CREATE_(OPENBOX_PID); + CREATE_(OB_FOCUS); CREATE_(OB_THEME); CREATE_(OB_CONFIG_FILE); CREATE_(OB_WM_ACTION_UNDECORATE); diff --git a/obt/prop.h b/obt/prop.h index acb5c956..79e3380d 100644 --- a/obt/prop.h +++ b/obt/prop.h @@ -208,6 +208,7 @@ typedef enum { /* Openbox specific atoms */ + OBT_PROP_OB_FOCUS, OBT_PROP_OB_WM_ACTION_UNDECORATE, OBT_PROP_OB_WM_STATE_UNDECORATED, OBT_PROP_OPENBOX_PID, /* this is depreecated in favour of ob_control */ diff --git a/openbox/event.c b/openbox/event.c index 243f2078..16bc56b6 100644 --- a/openbox/event.c +++ b/openbox/event.c @@ -1467,6 +1467,8 @@ static void event_handle_client(ObClient *client, XEvent *e) So we are left just assuming all activations are from the user. */ client_activate(client, FALSE, FALSE, TRUE, TRUE, TRUE); + } else if (msgtype == OBT_PROP_ATOM(OB_FOCUS)) { + client_focus(client); } else if (msgtype == OBT_PROP_ATOM(NET_WM_MOVERESIZE)) { ob_debug("net_wm_moveresize for 0x%lx direction %d", client->window, e->xclient.data.l[2]); diff --git a/openbox/screen.c b/openbox/screen.c index 2eebf18d..84c9154f 100644 --- a/openbox/screen.c +++ b/openbox/screen.c @@ -294,6 +294,7 @@ gboolean screen_annex(void) supported[i++] = OBT_PROP_ATOM(KDE_NET_WM_FRAME_STRUT); supported[i++] = OBT_PROP_ATOM(KDE_NET_WM_WINDOW_TYPE_OVERRIDE); + supported[i++] = OBT_PROP_ATOM(OB_FOCUS); supported[i++] = OBT_PROP_ATOM(OB_WM_ACTION_UNDECORATE); supported[i++] = OBT_PROP_ATOM(OB_WM_STATE_UNDECORATED); supported[i++] = OBT_PROP_ATOM(OPENBOX_PID); -- 2.34.1