don't activate on raise
This commit is contained in:
parent
eda6085586
commit
24a489e8e5
4 changed files with 8 additions and 27 deletions
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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)) {
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue