mirror of
https://github.com/gryf/wmaker.git
synced 2025-12-19 20:38:08 +01:00
bug fixes
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 */
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
14
src/main.c
14
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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user