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

- new algorithm for placing miniwindows after unhiding the application they

belong to, that works without auto-arranging the icons, while still avoiding
  multiple icons in the same spot by moving the miniwindows to a new slot if
  their old slot was occupied in the meantime.
- double clicking an appicon will also raise the miniwindows that belong to
  that application to the front (along with the normal windows).
This commit is contained in:
dan
2005-07-03 17:37:03 +00:00
parent eca635cb5d
commit ad0ae4887f
2 changed files with 16 additions and 3 deletions

View File

@@ -30,6 +30,12 @@ Changes since version 0.91.0:
are closed and there remains only their menu (Matt Rice <ratmice@yahoo.com>)
- try fixed font for the technical drawing font if helvetica-12 is not
available to avoid crashing (Timo Juhani Lindfors <timo.lindfors@iki.fi>)
- new algorithm for placing miniwindows after unhiding the application they
belong to, that works without auto-arranging the icons, while still avoiding
multiple icons in the same spot by moving the miniwindows to a new slot if
their old slot was occupied in the meantime.
- double clicking an appicon will also raise the miniwindows that belong to
that application to the front (along with the normal windows).
Changes since version 0.90.0:

View File

@@ -1458,7 +1458,6 @@ wUnhideApplication(WApplication *wapp, Bool miniwindows, Bool bringToCurrentWS)
WScreen *scr;
WWindow *wlist, *next;
WWindow *focused=NULL;
Bool shouldArrangeIcons = False;
int animate;
if (!wapp)
@@ -1488,9 +1487,18 @@ wUnhideApplication(WApplication *wapp, Bool miniwindows, Bool bringToCurrentWS)
if (bringToCurrentWS || wPreferences.sticky_icons ||
wlist->frame->workspace == scr->current_workspace) {
if (wlist->icon && !wlist->icon->mapped) {
int x, y;
PlaceIcon(scr, &x, &y, wGetHeadForWindow(wlist));
if (wlist->icon_x!=x || wlist->icon_y!=y) {
XMoveWindow(dpy, wlist->icon->core->window, x, y);
}
wlist->icon_x = x;
wlist->icon_y = y;
XMapWindow(dpy, wlist->icon->core->window);
wlist->icon->mapped = 1;
}
wRaiseFrame(wlist->icon->core);
}
if (bringToCurrentWS)
wWindowChangeWorkspace(wlist, scr->current_workspace);
@@ -1499,7 +1507,6 @@ wUnhideApplication(WApplication *wapp, Bool miniwindows, Bool bringToCurrentWS)
wlist->frame->workspace == scr->current_workspace) {
wDeiconifyWindow(wlist);
}
shouldArrangeIcons = True;
WMPostNotificationName(WMNChangedState, wlist, "hide");
} else if (wlist->flags.shaded) {
if (bringToCurrentWS)
@@ -1539,7 +1546,7 @@ wUnhideApplication(WApplication *wapp, Bool miniwindows, Bool bringToCurrentWS)
wSetFocusTo(scr, focused);
}
wapp->last_focused = NULL;
if (shouldArrangeIcons || wPreferences.auto_arrange_icons) {
if (wPreferences.auto_arrange_icons) {
wArrangeIcons(scr, True);
}
#ifdef HIDDENDOT