1
0
mirror of https://github.com/gryf/wmaker.git synced 2025-12-19 20:38:08 +01:00

made transients appear near their owners

This commit is contained in:
kojima
2000-03-09 18:41:30 +00:00
parent 39314191ad
commit 817f30a754
2 changed files with 21 additions and 25 deletions

View File

@@ -431,30 +431,6 @@ wAppIconPaint(WAppIcon *aicon)
}
#endif /* HIDDENDOT */
#ifdef NEWAPPICON
if (!wPreferences.strict_ns && aicon->icon->owner!=NULL) {
int active=0;
if (aicon->main_window==None) {
active = (aicon->icon->owner->flags.focused ? 1 : 0);
} else {
WApplication *wapp;
wapp = wApplicationOf(aicon->main_window);
if (!wapp) {
active = aicon->icon->owner->flags.focused;
wwarning("error in wAppIconPaint(). Please report it");
} else {
active = wapp->main_window_desc->flags.focused;
if (wapp->main_window_desc->flags.hidden
|| !wapp->main_window_desc->flags.mapped)
active = -1;
}
}
if (active>=0)
drawCorner(aicon->icon, aicon->icon->owner, active);
}
#endif /* NEWAPPICON */
if (aicon->omnipresent)
drawCorner(aicon->icon);

View File

@@ -908,7 +908,27 @@ wManageWindow(WScreen *scr, Window window)
&& !wwin->flags.miniaturized
&& !wwin->flags.maximized
&& !(wwin->normal_hints->flags & (USPosition|PPosition))) {
PlaceWindow(wwin, &x, &y, width, height);
if (transientOwner && transientOwner->flags.mapped) {
int offs = WMAX(20, 2*transientOwner->frame->top_width);
x = transientOwner->frame_x +
abs((transientOwner->frame->core->width - width)/2) + offs;
y = transientOwner->frame_y +
abs((transientOwner->frame->core->height - height)/3) + offs;
if (x < 0)
x = 0;
else if (x + width > scr->scr_width)
x = scr->scr_width - width;
if (y < 0)
y = 0;
else if (y + height > scr->scr_height)
y = scr->scr_height - height;
} else {
PlaceWindow(wwin, &x, &y, width, height);
}
if (wPreferences.window_placement == WPM_MANUAL)
dontBring = True;
}