don't activate on raise

This commit is contained in:
Dana Jansens 2007-06-21 20:04:35 +00:00
parent eda6085586
commit 24a489e8e5
4 changed files with 8 additions and 27 deletions

View file

@ -1368,7 +1368,7 @@ void action_raiselower(union ActionData *data)
ObClient *c = data->client.any.c; ObClient *c = data->client.any.c;
client_action_start(data); client_action_start(data);
stacking_restack_request(c, NULL, Opposite, FALSE); stacking_restack_request(c, NULL, Opposite);
client_action_end(data, config_focus_under_mouse); client_action_end(data, config_focus_under_mouse);
} }

View file

@ -1077,12 +1077,10 @@ static void event_handle_client(ObClient *client, XEvent *e)
sibling = WINDOW_AS_CLIENT(win); sibling = WINDOW_AS_CLIENT(win);
} }
/* activate it rather than just focus it */
if (!config_focus_under_mouse) if (!config_focus_under_mouse)
ignore_start = event_start_ignore_all_enters(); ignore_start = event_start_ignore_all_enters();
stacking_restack_request(client, sibling, stacking_restack_request(client, sibling,
e->xconfigurerequest.detail, e->xconfigurerequest.detail);
TRUE);
if (!config_focus_under_mouse) if (!config_focus_under_mouse)
event_end_ignore_all_enters(ignore_start); event_end_ignore_all_enters(ignore_start);
@ -1420,7 +1418,7 @@ static void event_handle_client(ObClient *client, XEvent *e)
ignore_start = event_start_ignore_all_enters(); ignore_start = event_start_ignore_all_enters();
/* just raise, don't activate */ /* just raise, don't activate */
stacking_restack_request(client, sibling, stacking_restack_request(client, sibling,
e->xclient.data.l[2], FALSE); e->xclient.data.l[2]);
if (!config_focus_under_mouse) if (!config_focus_under_mouse)
event_end_ignore_all_enters(ignore_start); event_end_ignore_all_enters(ignore_start);

View file

@ -559,7 +559,7 @@ static gboolean stacking_occludes(ObClient *client, ObClient *sibling)
} }
gboolean stacking_restack_request(ObClient *client, ObClient *sibling, gboolean stacking_restack_request(ObClient *client, ObClient *sibling,
gint detail, gboolean activate) gint detail)
{ {
gboolean ret = FALSE; gboolean ret = FALSE;
@ -595,11 +595,6 @@ gboolean stacking_restack_request(ObClient *client, ObClient *sibling,
case Above: case Above:
ob_debug("Restack request Above for client %s sibling %s\n", ob_debug("Restack request Above for client %s sibling %s\n",
client->title, sibling ? sibling->title : "(all)"); client->title, sibling ? sibling->title : "(all)");
if (activate && !client->iconic && client_normal(client))
/* use user=TRUE because it is impossible to get a timestamp
for this */
client_activate(client, FALSE, TRUE);
else
stacking_raise(CLIENT_AS_WINDOW(client)); stacking_raise(CLIENT_AS_WINDOW(client));
ret = TRUE; ret = TRUE;
break; break;
@ -607,11 +602,6 @@ gboolean stacking_restack_request(ObClient *client, ObClient *sibling,
ob_debug("Restack request TopIf for client %s sibling %s\n", ob_debug("Restack request TopIf for client %s sibling %s\n",
client->title, sibling ? sibling->title : "(all)"); client->title, sibling ? sibling->title : "(all)");
if (stacking_occluded(client, sibling)) { if (stacking_occluded(client, sibling)) {
if (activate && !client->iconic && client_normal(client))
/* use user=TRUE because it is impossible to get a timestamp
for this */
client_activate(client, FALSE, TRUE);
else
stacking_raise(CLIENT_AS_WINDOW(client)); stacking_raise(CLIENT_AS_WINDOW(client));
ret = TRUE; ret = TRUE;
} }
@ -621,11 +611,6 @@ gboolean stacking_restack_request(ObClient *client, ObClient *sibling,
"%s\n", "%s\n",
client->title, sibling ? sibling->title : "(all)"); client->title, sibling ? sibling->title : "(all)");
if (stacking_occluded(client, sibling)) { if (stacking_occluded(client, sibling)) {
if (activate && !client->iconic && client_normal(client))
/* use user=TRUE because it is impossible to get a timestamp
for this */
client_activate(client, FALSE, TRUE);
else
stacking_raise(CLIENT_AS_WINDOW(client)); stacking_raise(CLIENT_AS_WINDOW(client));
ret = TRUE; ret = TRUE;
} }

View file

@ -65,14 +65,12 @@ void stacking_below(ObWindow *window, ObWindow *below);
@param sibling Another client to compare to, or NULL to compare to all @param sibling Another client to compare to, or NULL to compare to all
windows windows
@param detail One of Above, Below, TopIf, BottomIf, Opposite @param detail One of Above, Below, TopIf, BottomIf, Opposite
@param activate If TRUE, and if the window is going to be raised, it will
be activated instead
@return TRUE if the client was restacked @return TRUE if the client was restacked
See http://tronche.com/gui/x/xlib/window/configure.html for details on See http://tronche.com/gui/x/xlib/window/configure.html for details on
how each detail works with and without a sibling. how each detail works with and without a sibling.
*/ */
gboolean stacking_restack_request(struct _ObClient *client, gboolean stacking_restack_request(struct _ObClient *client,
struct _ObClient *sibling, struct _ObClient *sibling,
gint detail, gboolean activate); gint detail);
#endif #endif