summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--openbox/client.c18
-rw-r--r--openbox/event.c5
2 files changed, 12 insertions, 11 deletions
diff --git a/openbox/client.c b/openbox/client.c
index f3b4bdac..8634707c 100644
--- a/openbox/client.c
+++ b/openbox/client.c
@@ -203,6 +203,7 @@ void client_manage(Window window, ObPrompt *prompt)
Time launch_time;
guint32 user_time;
gboolean obplaced;
+ gulong ignore_start;
ob_debug("Managing window: 0x%lx", window);
@@ -468,19 +469,13 @@ void client_manage(Window window, ObPrompt *prompt)
/* grab mouse bindings before showing the window */
mouse_grab_for_client(self, TRUE);
+ if (!config_focus_under_mouse)
+ ignore_start = event_start_ignore_all_enters();
+
/* this has to happen before we try focus the window, but we want it to
happen after the client's stacking has been determined or it looks bad
*/
- {
- gulong ignore_start;
- if (!config_focus_under_mouse)
- ignore_start = event_start_ignore_all_enters();
-
- client_show(self);
-
- if (!config_focus_under_mouse)
- event_end_ignore_all_enters(ignore_start);
- }
+ client_show(self);
/* activate/hilight/raise the window */
if (try_activate) {
@@ -508,6 +503,9 @@ void client_manage(Window window, ObPrompt *prompt)
stacking_raise(CLIENT_AS_WINDOW(self));
}
+ if (!config_focus_under_mouse)
+ event_end_ignore_all_enters(ignore_start);
+
/* add to client list/map */
client_list = g_list_append(client_list, self);
window_add(&self->window, CLIENT_AS_WINDOW(self));
diff --git a/openbox/event.c b/openbox/event.c
index 00b0bfff..e198eaa1 100644
--- a/openbox/event.c
+++ b/openbox/event.c
@@ -813,11 +813,14 @@ void event_enter_client(ObClient *client)
g_assert(config_focus_follow);
if (is_enter_focus_event_ignored(event_curserial)) {
- ob_debug_type(OB_DEBUG_FOCUS, "Ignoring enter event with serial %lu\n"
+ ob_debug_type(OB_DEBUG_FOCUS, "Ignoring enter event with serial %lu "
"on client 0x%x", event_curserial, client->window);
return;
}
+ ob_debug_type(OB_DEBUG_FOCUS, "using enter event with serial %lu "
+ "on client 0x%x", event_curserial, client->window);
+
if (client_enter_focusable(client) && client_can_focus(client)) {
if (config_focus_delay) {
ObFocusDelayData *data;