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

Fixed issue with GNUstep applications losing focus when all their windows

are closed and there remains only their menu (Matt Rice <ratmice@yahoo.com>)
This commit is contained in:
dan
2005-07-02 19:23:41 +00:00
parent 69730273b1
commit ad641c1992
5 changed files with 10 additions and 13 deletions

View File

@@ -26,6 +26,8 @@ Changes since version 0.91.0:
- fixed bug with windows shrinking to very small sizes when Unmaximize was - fixed bug with windows shrinking to very small sizes when Unmaximize was
used on them, after they were closed in a maximized state. used on them, after they were closed in a maximized state.
- fixed bug with restoring maximized state from NetWM atoms. - fixed bug with restoring maximized state from NetWM atoms.
- fixed issue with GNUstep applications losing focus when all their windows
are closed and there remains only their menu (Matt Rice <ratmice@yahoo.com>)
Changes since version 0.90.0: Changes since version 0.90.0:

View File

@@ -1548,7 +1548,6 @@ wUnhideApplication(WApplication *wapp, Bool miniwindows, Bool bringToCurrentWS)
} }
void void
wShowAllWindows(WScreen *scr) wShowAllWindows(WScreen *scr)
{ {

View File

@@ -231,8 +231,11 @@ UpdateSwitchMenu(WScreen *scr, WWindow *wwin, int action)
char *t; char *t;
int idx; int idx;
if (wwin->flags.internal_window || WFLAGP(wwin, skip_window_list)) if (wwin->flags.internal_window ||
WFLAGP(wwin, skip_window_list) ||
IS_GNUSTEP_MENU(wwin)) {
return; return;
}
if (wwin->frame->title) if (wwin->frame->title)
snprintf(title, len, "%s", wwin->frame->title); snprintf(title, len, "%s", wwin->frame->title);

View File

@@ -340,17 +340,6 @@ setupGNUstepHints(WWindow *wwin, GNUstepWMAttributes *gs_hints)
wwin->client_flags.no_appicon = 1; wwin->client_flags.no_appicon = 1;
} }
/* temporary solution to avoid GS menus in our window list.
* it's temporary because it's not the proper way: windows at the
* floating level are also skipped from the window list with this.
* Fix it -Dan */
if (gs_hints->flags & GSWindowLevelAttr) {
if (gs_hints->window_level == WMMainMenuWindowLevel ||
gs_hints->window_level == WMSubmenuWindowLevel) {
wwin->client_flags.skip_window_list = 1;
}
}
} }

View File

@@ -334,6 +334,10 @@ typedef struct WWindow {
#define WINDOW_LEVEL(w) ((w)->frame->core->stacking->window_level) #define WINDOW_LEVEL(w) ((w)->frame->core->stacking->window_level)
#define IS_GNUSTEP_MENU(w) ((w)->wm_gnustep_attr && \
((w)->wm_gnustep_attr->flags & GSWindowLevelAttr) && \
((w)->wm_gnustep_attr->window_level==WMMainMenuWindowLevel || \
(w)->wm_gnustep_attr->window_level==WMSubmenuWindowLevel))
/* /*