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:
@@ -26,6 +26,8 @@ Changes since version 0.91.0:
|
||||
- fixed bug with windows shrinking to very small sizes when Unmaximize was
|
||||
used on them, after they were closed in a maximized state.
|
||||
- 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:
|
||||
|
||||
@@ -1548,7 +1548,6 @@ wUnhideApplication(WApplication *wapp, Bool miniwindows, Bool bringToCurrentWS)
|
||||
}
|
||||
|
||||
|
||||
|
||||
void
|
||||
wShowAllWindows(WScreen *scr)
|
||||
{
|
||||
|
||||
@@ -231,8 +231,11 @@ UpdateSwitchMenu(WScreen *scr, WWindow *wwin, int action)
|
||||
char *t;
|
||||
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;
|
||||
}
|
||||
|
||||
if (wwin->frame->title)
|
||||
snprintf(title, len, "%s", wwin->frame->title);
|
||||
|
||||
11
src/window.c
11
src/window.c
@@ -340,17 +340,6 @@ setupGNUstepHints(WWindow *wwin, GNUstepWMAttributes *gs_hints)
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -334,6 +334,10 @@ typedef struct WWindow {
|
||||
|
||||
#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))
|
||||
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user