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

- Fixed problem with unhiding taht mapped windows from other workspaces

on the current workspace.
- Made apps with an application menu not to use a shared appicon.
This commit is contained in:
dan
2001-12-18 16:10:07 +00:00
parent c8b3933c19
commit 6f28d987a8
5 changed files with 30 additions and 13 deletions

View File

@@ -28,7 +28,7 @@ Changes since version 0.70.0:
- Added real appicon sharing (apps of the same kind will have a single shared - Added real appicon sharing (apps of the same kind will have a single shared
appicon). appicon).
- Fixed user and global defaults domain merging to preserve values present in - Fixed user and global defaults domain merging to preserve values present in
global but not in user in subdictionaries. global but not in user, in sub-dictionaries.
- Made dock/clip steal appicons of applications that were started from a - Made dock/clip steal appicons of applications that were started from a
shell/xterm or from the main menu, if there is a docked appicon of that shell/xterm or from the main menu, if there is a docked appicon of that
class that is not running at the time the app is launched. class that is not running at the time the app is launched.
@@ -38,6 +38,7 @@ Changes since version 0.70.0:
- Updated the animation constants for scrolling/sliding/shading to better - Updated the animation constants for scrolling/sliding/shading to better
adapt to newer/faster machines. Also used wusleep(10) when the delay was 0 adapt to newer/faster machines. Also used wusleep(10) when the delay was 0
to get rid of the jerky animation when there was no delay. to get rid of the jerky animation when there was no delay.
- Fixed bug with Unhide mapping windows from other workspaces.
Changes since version 0.65.1: Changes since version 0.65.1:

6
TODO
View File

@@ -26,7 +26,11 @@ Need to do:
- add new file for stuff like default commands and dnd commands for - add new file for stuff like default commands and dnd commands for
docked apps, balloons for the dock etc docked apps, balloons for the dock etc
- check whether apps with name.class set to empty strings should be treated - check whether apps with name.class set to empty strings should be treated
like if name.class were NULL.NULL like if name.class is NULL.NULL
- review the defaults handling code (not to save globals in user, not to
reread after we update a domain if possible, check WINGs apps updating
WMWindowAttributes after start making screen to flash on update)
Maybe some day: Maybe some day:
=============== ===============

View File

@@ -1326,7 +1326,6 @@ unhideWindow(WIcon *icon, int icon_x, int icon_y, WWindow *wwin, int animate,
wWindowChangeWorkspace(wwin, wwin->screen_ptr->current_workspace); wWindowChangeWorkspace(wwin, wwin->screen_ptr->current_workspace);
wwin->flags.hidden=0; wwin->flags.hidden=0;
wwin->flags.mapped=1;
wSoundPlay(WSOUND_UNHIDE); wSoundPlay(WSOUND_UNHIDE);
#ifdef ANIMATIONS #ifdef ANIMATIONS
@@ -1340,12 +1339,15 @@ unhideWindow(WIcon *icon, int icon_x, int icon_y, WWindow *wwin, int animate,
} }
#endif #endif
wwin->flags.skip_next_animation = 0; wwin->flags.skip_next_animation = 0;
XMapWindow(dpy, wwin->client_win); if (wwin->screen_ptr->current_workspace == wwin->frame->workspace) {
XMapWindow(dpy, wwin->frame->core->window); XMapWindow(dpy, wwin->client_win);
wClientSetState(wwin, NormalState, None); XMapWindow(dpy, wwin->frame->core->window);
wRaiseFrame(wwin->frame->core); wClientSetState(wwin, NormalState, None);
wwin->flags.mapped=1;
wRaiseFrame(wwin->frame->core);
}
if (wwin->flags.inspector_open) { if (wwin->flags.inspector_open) {
wUnhideInspectorForWindow(wwin); wUnhideInspectorForWindow(wwin);
} }
WMPostNotificationName(WMNChangedState, wwin, "hide"); WMPostNotificationName(WMNChangedState, wwin, "hide");

View File

@@ -828,7 +828,7 @@ hideCallback(WMenu *menu, WMenuEntry *entry)
wapp = wApplicationOf(btn->icon->owner->main_window); wapp = wApplicationOf(btn->icon->owner->main_window);
if (wapp->flags.hidden) { if (wapp->flags.hidden) {
wWorkspaceChange(btn->icon->core->screen_ptr,wapp->last_workspace); wWorkspaceChange(btn->icon->core->screen_ptr, wapp->last_workspace);
wUnhideApplication(wapp, False, False); wUnhideApplication(wapp, False, False);
} else { } else {
wHideApplication(wapp); wHideApplication(wapp);

View File

@@ -793,13 +793,23 @@ wManageWindow(WScreen *scr, Window window)
} }
#endif /* OLWM_HINTS */ #endif /* OLWM_HINTS */
/* Make broken apps behave as a nice app. */
if (WFLAGP(wwin, emulate_appicon)) {
wwin->main_window = wwin->client_win;
}
if (wwin->flags.is_gnustep) { if (wwin->flags.is_gnustep) {
WSETUFLAG(wwin, shared_appicon, 0); WSETUFLAG(wwin, shared_appicon, 0);
} }
/* Make broken apps behave as a nice app. */ {
if (WFLAGP(wwin, emulate_appicon)) { extern Atom _XA_WINDOWMAKER_MENU;
wwin->main_window = wwin->client_win; XTextProperty text_prop;
if (XGetTextProperty(dpy, wwin->main_window, &text_prop,
_XA_WINDOWMAKER_MENU)) {
WSETUFLAG(wwin, shared_appicon, 0);
}
} }
if (!withdraw && wwin->main_window && WFLAGP(wwin, shared_appicon)) { if (!withdraw && wwin->main_window && WFLAGP(wwin, shared_appicon)) {