diff --git a/src/actions.c b/src/actions.c index 944f43ad..e790274c 100644 --- a/src/actions.c +++ b/src/actions.c @@ -2,7 +2,7 @@ * * Window Maker window manager * - * Copyright (c) 1997, 1998 Alfredo K. Kojima + * Copyright (c) 1997, 1998, 1999 Alfredo K. Kojima * Copyright (c) 1998 Dan Pascu * * This program is free software; you can redistribute it and/or modify @@ -1797,7 +1797,8 @@ wMakeWindowVisible(WWindow *wwin) } else if (wwin->flags.miniaturized) { wDeiconifyWindow(wwin); } else { - wSetFocusTo(wwin->screen_ptr, wwin); + if (!WFLAGP(wwin, no_focusable)) + wSetFocusTo(wwin->screen_ptr, wwin); wRaiseFrame(wwin->frame->core); } } diff --git a/src/appicon.c b/src/appicon.c index ccac1990..87b8c607 100644 --- a/src/appicon.c +++ b/src/appicon.c @@ -390,14 +390,16 @@ wAppIconPaint(WAppIcon *aicon) { WApplication *wapp; wapp = wApplicationOf(aicon->main_window); - if(wapp) - if(wapp->flags.hidden){ - XSetClipMask(dpy, scr->copy_gc, scr->dock_dots->mask); - XSetClipOrigin(dpy, scr->copy_gc, 0, 0); - XCopyArea(dpy, scr->dock_dots->image, aicon->icon->core->window, - scr->copy_gc, 0, 0, 7, - scr->dock_dots->height, 0, 0); - } + if (wapp) { + if (wapp->flags.hidden) { + XSetClipMask(dpy, scr->copy_gc, scr->dock_dots->mask); + XSetClipOrigin(dpy, scr->copy_gc, 0, 0); + XCopyArea(dpy, scr->dock_dots->image, + aicon->icon->core->window, + scr->copy_gc, 0, 0, 7, + scr->dock_dots->height, 0, 0); + } + } } #endif /* HIDDENDOT */ diff --git a/src/dock.c b/src/dock.c index 8b508460..115a402f 100644 --- a/src/dock.c +++ b/src/dock.c @@ -3551,7 +3551,7 @@ handleIconMove(WDock *dock, WAppIcon *aicon, XEvent *event) #endif } - if (event->xbutton.state & MOD_MASK) + if (!(event->xbutton.state & MOD_MASK)) wRaiseFrame(icon->core); if (!wPreferences.flags.noclip) diff --git a/src/event.c b/src/event.c index b745e6ff..6d26a4fb 100644 --- a/src/event.c +++ b/src/event.c @@ -1687,9 +1687,12 @@ handleKeyPress(XEvent *event) wSelectWindow(list->head, True); list = list->tail; } - } else if (scr->shortcutWindow[command-WKBD_WINDOW1]) { + } else if (scr->shortcutWindow[command-WKBD_WINDOW1]){ + wMakeWindowVisible(scr->shortcutWindow[command-WKBD_WINDOW1]); + } else if (wwin && ISMAPPED(wwin) && ISFOCUSED(wwin)) { + scr->shortcutWindow[command-WKBD_WINDOW1] = wwin; if (wwin->flags.selected /* && scr->selected_windows */ ) { LinkedList *sl; @@ -1707,7 +1710,9 @@ handleKeyPress(XEvent *event) wusleep(3000); wSelectWindow(wwin, !wwin->flags.selected); XFlush(dpy); + } else if (scr->selected_windows) { + if (wwin->flags.selected /* && scr->selected_windows */ ) { LinkedList *sl; diff --git a/src/main.c b/src/main.c index a105a012..6d269ccf 100644 --- a/src/main.c +++ b/src/main.c @@ -302,8 +302,11 @@ static void execInitScript() { char *file; - - file = wfindfile(DEF_CONFIG_PATHS, DEF_INIT_SCRIPT); + char *paths = wstrappend(wusergnusteppath(), ":"DEF_CONFIG_PATHS); + + file = wfindfile(paths, DEF_INIT_SCRIPT); + free(paths); + if (file) { if (system(file) != 0) { wsyserror(_("%s:could not execute initialization script"), file); @@ -324,8 +327,11 @@ void ExecExitScript() { char *file; - - file = wfindfile(DEF_CONFIG_PATHS, DEF_EXIT_SCRIPT); + char *paths = wstrappend(wusergnusteppath(), ":"DEF_CONFIG_PATHS); + + file = wfindfile(paths, DEF_EXIT_SCRIPT); + free(paths); + if (file) { if (system(file) != 0) { wsyserror(_("%s:could not execute exit script"), file); diff --git a/src/screen.c b/src/screen.c index 9ec23758..8a83ca26 100644 --- a/src/screen.c +++ b/src/screen.c @@ -448,11 +448,7 @@ createPixmaps(WScreen *scr) RDestroyImage(image); } -#ifdef HIDDENDOT - if (!wPreferences.flags.nodock || !wPreferences.flags.noclip) { - scr->dock_dots = make3Dots(scr); - } -#endif + scr->dock_dots = make3Dots(scr); #ifndef NEWSTUFF /* titlebar button pixmaps */ @@ -779,8 +775,6 @@ wScreenInit(int screen_number) scr->frame_border_pixel = xcol.pixel; } - scr->workspace_name_font = wLoadFont(DEF_WORKSPACE_NAME_FONT); - /* create GCs with default values */ allocGCs(scr); diff --git a/src/wconfig.h.in b/src/wconfig.h.in index 8928721e..246d35bd 100644 --- a/src/wconfig.h.in +++ b/src/wconfig.h.in @@ -160,13 +160,6 @@ #undef WS_INDICATOR -/* - * define USER_MENU if you want user specified menus for sending - * commands to applications. Kinda experimental.. - */ -#undef USER_MENU - - /* * define HIDDENDOT if you want a dot to be shown in the application icon * of applications that are hidden. @@ -230,8 +223,6 @@ #undef GRADIENT_CLIP_ARROWS -#define TEXTURE_PLUGIN - /* *-------------------------------------------------------------------- * Default Configuration diff --git a/src/window.c b/src/window.c index 4eee4a00..201288fd 100644 --- a/src/window.c +++ b/src/window.c @@ -1137,8 +1137,8 @@ wManageWindow(WScreen *scr, Window window) if (!wwin->flags.miniaturized && workspace == scr->current_workspace && !wwin->flags.hidden) { - if ((transientOwner && transientOwner->flags.focused) - || wPreferences.auto_focus) + if (((transientOwner && transientOwner->flags.focused) + || wPreferences.auto_focus) && !WFLAGP(wwin, no_focusable)) wSetFocusTo(scr, wwin); } wWindowResetMouseGrabs(wwin); diff --git a/src/workspace.c b/src/workspace.c index 608c6eb9..1db9e48e 100644 --- a/src/workspace.c +++ b/src/workspace.c @@ -502,7 +502,10 @@ wWorkspaceForceChange(WScreen *scr, int workspace) if ((tmp = scr->focused_window)!= NULL) { if (IS_OMNIPRESENT(tmp) || tmp->flags.changing_workspace) - foc2 = tmp; /* for gnome stuff.. used to be foc = tmp */ + foc = tmp; + /* foc2 = tmp; will fix annoyance with gnome panel + * but will create annoyance for every other application + */ while (tmp) { if (tmp->frame->workspace!=workspace && !tmp->flags.selected) {