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;
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);
}

View file

@ -1077,12 +1077,10 @@ static void event_handle_client(ObClient *client, XEvent *e)
sibling = WINDOW_AS_CLIENT(win);
}
/* activate it rather than just focus it */
if (!config_focus_under_mouse)
ignore_start = event_start_ignore_all_enters();
stacking_restack_request(client, sibling,
e->xconfigurerequest.detail,
TRUE);
e->xconfigurerequest.detail);
if (!config_focus_under_mouse)
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();
/* just raise, don't activate */
stacking_restack_request(client, sibling,
e->xclient.data.l[2], FALSE);
e->xclient.data.l[2]);
if (!config_focus_under_mouse)
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,
gint detail, gboolean activate)
gint detail)
{
gboolean ret = FALSE;
@ -595,24 +595,14 @@ gboolean stacking_restack_request(ObClient *client, ObClient *sibling,
case Above:
ob_debug("Restack request Above for client %s sibling %s\n",
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;
break;
case TopIf:
ob_debug("Restack request TopIf for client %s sibling %s\n",
client->title, sibling ? sibling->title : "(all)");
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;
}
break;
@ -621,12 +611,7 @@ gboolean stacking_restack_request(ObClient *client, ObClient *sibling,
"%s\n",
client->title, sibling ? sibling->title : "(all)");
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;
}
else if (stacking_occludes(client, sibling)) {

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
windows
@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
See http://tronche.com/gui/x/xlib/window/configure.html for details on
how each detail works with and without a sibling.
*/
gboolean stacking_restack_request(struct _ObClient *client,
struct _ObClient *sibling,
gint detail, gboolean activate);
gint detail);
#endif