move the code to find the window under the pointer out of focus.c to client.c
This commit is contained in:
parent
6675b28ded
commit
6538a5ccb2
3 changed files with 26 additions and 16 deletions
|
@ -3017,3 +3017,24 @@ int client_directional_edge_search(ObClient *c, ObDirection dir)
|
||||||
}
|
}
|
||||||
return dest;
|
return dest;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ObClient* client_under_pointer()
|
||||||
|
{
|
||||||
|
int x, y;
|
||||||
|
GList *it;
|
||||||
|
ObClient *ret = NULL;
|
||||||
|
|
||||||
|
if (screen_pointer_pos(&x, &y)) {
|
||||||
|
for (it = stacking_list; it != NULL; it = it->next) {
|
||||||
|
if (WINDOW_IS_CLIENT(it->data)) {
|
||||||
|
ObClient *c = WINDOW_AS_CLIENT(it->data);
|
||||||
|
if (c->desktop == screen_desktop &&
|
||||||
|
RECT_CONTAINS(c->frame->area, x, y)) {
|
||||||
|
ret = c;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
|
@ -519,4 +519,6 @@ guint client_monitor(ObClient *self);
|
||||||
|
|
||||||
void client_update_sm_client_id(ObClient *self);
|
void client_update_sm_client_id(ObClient *self);
|
||||||
|
|
||||||
|
ObClient* client_under_pointer();
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -119,23 +119,10 @@ void focus_set_client(ObClient *client)
|
||||||
|
|
||||||
static gboolean focus_under_pointer()
|
static gboolean focus_under_pointer()
|
||||||
{
|
{
|
||||||
int x, y;
|
ObClient *c;
|
||||||
GList *it;
|
|
||||||
|
|
||||||
if (screen_pointer_pos(&x, &y)) {
|
if ((c = client_under_pointer()))
|
||||||
for (it = stacking_list; it != NULL; it = it->next) {
|
return client_normal(c) && client_focus(c);
|
||||||
if (WINDOW_IS_CLIENT(it->data)) {
|
|
||||||
ObClient *c = WINDOW_AS_CLIENT(it->data);
|
|
||||||
if (c->desktop == screen_desktop &&
|
|
||||||
RECT_CONTAINS(c->frame->area, x, y))
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (it != NULL) {
|
|
||||||
g_assert(WINDOW_IS_CLIENT(it->data));
|
|
||||||
return client_normal(it->data) && client_focus(it->data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue