mirror of
https://github.com/gryf/wmaker.git
synced 2025-12-20 21:08:08 +01:00
Improved hide/unhide animation for applications with multiple windows
(only animate the active window hiding/unhiding, which makes Window Maker faster and more responsive for such applications).
This commit is contained in:
@@ -8,7 +8,7 @@ Changes since version 0.91.0:
|
|||||||
- fixed issues with compiling on Solaris with openwin
|
- fixed issues with compiling on Solaris with openwin
|
||||||
- reduced minimum required version number for the Xft library to 2.1.0
|
- reduced minimum required version number for the Xft library to 2.1.0
|
||||||
- fixed some compilation issues with gcc-2.9x
|
- fixed some compilation issues with gcc-2.9x
|
||||||
- Removed --with-appsdir option and replaced it with --with-gnustepdir. Also,
|
- removed --with-appsdir option and replaced it with --with-gnustepdir. Also,
|
||||||
default installation path (for non GNUstep users) is now $(prefix)/bin
|
default installation path (for non GNUstep users) is now $(prefix)/bin
|
||||||
- fixed bug with infinite loop in some circumstances in fitText() in WINGs
|
- fixed bug with infinite loop in some circumstances in fitText() in WINGs
|
||||||
- fixed to allow parallel builds on SMP systems using make -j
|
- fixed to allow parallel builds on SMP systems using make -j
|
||||||
@@ -19,6 +19,9 @@ Changes since version 0.91.0:
|
|||||||
Window Maker starts to make transition transparent for users.
|
Window Maker starts to make transition transparent for users.
|
||||||
- fixed issue with window being moved by 1 pixel up and left when the window
|
- fixed issue with window being moved by 1 pixel up and left when the window
|
||||||
move was initiated by the client
|
move was initiated by the client
|
||||||
|
- improved hide/unhide animation for applications with multiple windows
|
||||||
|
(only animate the active window hiding/unhiding, which makes Window Maker
|
||||||
|
faster and more responsive for such applications).
|
||||||
|
|
||||||
|
|
||||||
Changes since version 0.90.0:
|
Changes since version 0.90.0:
|
||||||
|
|||||||
@@ -771,6 +771,7 @@ animateResize(WScreen *scr, int x, int y, int w, int h,
|
|||||||
}
|
}
|
||||||
|
|
||||||
k = (hiding ? 2 : 3);
|
k = (hiding ? 2 : 3);
|
||||||
|
|
||||||
switch(style) {
|
switch(style) {
|
||||||
case WIS_TWIST:
|
case WIS_TWIST:
|
||||||
steps = (MINIATURIZE_ANIMATION_STEPS_T * k)/3;
|
steps = (MINIATURIZE_ANIMATION_STEPS_T * k)/3;
|
||||||
@@ -1343,6 +1344,7 @@ wHideApplication(WApplication *wapp)
|
|||||||
WScreen *scr;
|
WScreen *scr;
|
||||||
WWindow *wlist;
|
WWindow *wlist;
|
||||||
int hadfocus;
|
int hadfocus;
|
||||||
|
int animate;
|
||||||
|
|
||||||
if (!wapp) {
|
if (!wapp) {
|
||||||
wwarning("trying to hide a non grouped window");
|
wwarning("trying to hide a non grouped window");
|
||||||
@@ -1362,15 +1364,19 @@ wHideApplication(WApplication *wapp)
|
|||||||
wapp->last_focused = wlist;
|
wapp->last_focused = wlist;
|
||||||
else
|
else
|
||||||
wapp->last_focused = NULL;
|
wapp->last_focused = NULL;
|
||||||
|
|
||||||
|
animate = !wapp->flags.skip_next_animation;
|
||||||
|
|
||||||
while (wlist) {
|
while (wlist) {
|
||||||
if (wlist->main_window == wapp->main_window) {
|
if (wlist->main_window == wapp->main_window) {
|
||||||
if (wlist->flags.focused) {
|
if (wlist->flags.focused) {
|
||||||
hadfocus = 1;
|
hadfocus = 1;
|
||||||
}
|
}
|
||||||
if (wapp->app_icon)
|
if (wapp->app_icon) {
|
||||||
hideWindow(wapp->app_icon->icon, wapp->app_icon->x_pos,
|
hideWindow(wapp->app_icon->icon, wapp->app_icon->x_pos,
|
||||||
wapp->app_icon->y_pos, wlist,
|
wapp->app_icon->y_pos, wlist, animate);
|
||||||
!wapp->flags.skip_next_animation);
|
animate = False;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
wlist = wlist->prev;
|
wlist = wlist->prev;
|
||||||
}
|
}
|
||||||
@@ -1449,6 +1455,7 @@ wUnhideApplication(WApplication *wapp, Bool miniwindows, Bool bringToCurrentWS)
|
|||||||
WWindow *wlist, *next;
|
WWindow *wlist, *next;
|
||||||
WWindow *focused=NULL;
|
WWindow *focused=NULL;
|
||||||
Bool shouldArrangeIcons = False;
|
Bool shouldArrangeIcons = False;
|
||||||
|
int animate;
|
||||||
|
|
||||||
if (!wapp)
|
if (!wapp)
|
||||||
return;
|
return;
|
||||||
@@ -1462,6 +1469,8 @@ wUnhideApplication(WApplication *wapp, Bool miniwindows, Bool bringToCurrentWS)
|
|||||||
while (wlist->prev)
|
while (wlist->prev)
|
||||||
wlist = wlist->prev;
|
wlist = wlist->prev;
|
||||||
|
|
||||||
|
animate = !wapp->flags.skip_next_animation;
|
||||||
|
|
||||||
while (wlist) {
|
while (wlist) {
|
||||||
next = wlist->next;
|
next = wlist->next;
|
||||||
|
|
||||||
@@ -1502,9 +1511,9 @@ wUnhideApplication(WApplication *wapp, Bool miniwindows, Bool bringToCurrentWS)
|
|||||||
WMPostNotificationName(WMNChangedState, wlist, "hide");
|
WMPostNotificationName(WMNChangedState, wlist, "hide");
|
||||||
} else if (wlist->flags.hidden) {
|
} else if (wlist->flags.hidden) {
|
||||||
unhideWindow(wapp->app_icon->icon, wapp->app_icon->x_pos,
|
unhideWindow(wapp->app_icon->icon, wapp->app_icon->x_pos,
|
||||||
wapp->app_icon->y_pos, wlist,
|
wapp->app_icon->y_pos, wlist, animate,
|
||||||
!wapp->flags.skip_next_animation,
|
|
||||||
bringToCurrentWS);
|
bringToCurrentWS);
|
||||||
|
animate = False;
|
||||||
} else {
|
} else {
|
||||||
if (bringToCurrentWS
|
if (bringToCurrentWS
|
||||||
&& wlist->frame->workspace != scr->current_workspace) {
|
&& wlist->frame->workspace != scr->current_workspace) {
|
||||||
|
|||||||
Reference in New Issue
Block a user