mirror of
https://github.com/amiwm/amiwm.git
synced 2026-03-24 01:24:15 +00:00
Merge pull request #32 from phillbush/focus-issue
do not reparent client window; fix amiwm#29
This commit is contained in:
10
client.c
10
client.c
@@ -149,10 +149,12 @@ void checksizehints(Client *c)
|
|||||||
|
|
||||||
void open_fscrn(Client *c)
|
void open_fscrn(Client *c)
|
||||||
{
|
{
|
||||||
XUnmapWindow(dpy, c->parent);
|
|
||||||
c->fsscr = scr = openscreen(NULL, scr->root);
|
c->fsscr = scr = openscreen(NULL, scr->root);
|
||||||
c->reparenting = 1;
|
c->reparenting = 1;
|
||||||
XReparentWindow(dpy, c->window, scr->back, 0, 0);
|
XReparentWindow(dpy, c->parent, c->fsscr->back, 0, 0);
|
||||||
|
XRaiseWindow(dpy, c->window);
|
||||||
|
XMoveResizeWindow(dpy, c->parent, 0, 0, c->fsscr->width, c->fsscr->height);
|
||||||
|
XMoveResizeWindow(dpy, c->window, 0, 0, c->fsscr->width, c->fsscr->height);
|
||||||
for (Client *dialog = clients; dialog != NULL; dialog = dialog->next)
|
for (Client *dialog = clients; dialog != NULL; dialog = dialog->next)
|
||||||
if (dialog->leader == c)
|
if (dialog->leader == c)
|
||||||
reparent_client(c->fsscr, dialog);
|
reparent_client(c->fsscr, dialog);
|
||||||
@@ -171,7 +173,9 @@ void close_fscrn(Client *c, int state)
|
|||||||
{
|
{
|
||||||
if (c->fsscr == NULL)
|
if (c->fsscr == NULL)
|
||||||
return;
|
return;
|
||||||
XReparentWindow(dpy, c->window, c->parent, 4, c->scr->bh);
|
XReparentWindow(dpy, c->parent, c->scr, c->x, c->y);
|
||||||
|
XMoveResizeWindow(dpy, c->parent, c->x, c->y, c->pwidth, c->pheight);
|
||||||
|
XMoveResizeWindow(dpy, c->window, 4, c->scr->bh, c->pwidth-c->framewidth, c->pheight-c->frameheight);
|
||||||
XResizeWindow(dpy, c->window, c->pwidth-c->framewidth, c->pheight-c->frameheight);
|
XResizeWindow(dpy, c->window, c->pwidth-c->framewidth, c->pheight-c->frameheight);
|
||||||
XLowerWindow(dpy, c->window);
|
XLowerWindow(dpy, c->window);
|
||||||
scr = c->fsscr;
|
scr = c->fsscr;
|
||||||
|
|||||||
Reference in New Issue
Block a user