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

added option to disable switchpanel

fixed some bugs
This commit is contained in:
kojima
2004-10-27 02:54:32 +00:00
parent ac87ca5596
commit d63a0b4859
9 changed files with 50 additions and 34 deletions

View File

@@ -2,6 +2,7 @@ Changes since version 0.91.0:
.............................
- fixed crash with info panel and alt-tabbing
- updated Japanese translations (Takeo Hashimoto <HashimotoTakeo@mac.com>)
- allow disable of switch panel when SwitchPanelImages=None
Changes since version 0.90.0:
.............................

9
NEWS
View File

@@ -2,6 +2,15 @@
NEWS for veteran Window Maker users
-----------------------------------
--- 0.91.1
To disable the panel shown during Alt-tabbing, you may put the following in
~/GNUstep/Defaults/WindowMaker
SwitchPanelImages= None;
--- 0.91.0
Alt-Tab Window Switching

View File

@@ -1,6 +1,5 @@
{
SmoothWorkspaceBack = NO;
WindozeCycling = YES;
PopupSwitchMenu = NO;
MenuStyle = normal;
DisableMiniwindows = NO;

View File

@@ -299,8 +299,8 @@ dnl ==================
dnl List of supported locales
dnl -------------------------
supported_locales="be bg bs ca cs da de el es et fi fr gl hr hu it ja ko ms nl no pl pt ro ru sk sv tr zh_CN zh_TW.Big5"
supported_wprefs_locales="bg ca cs de es et fi fr hr hu it ja ko pt ru sk zh_CN zh_TW.Big5"
supported_locales="be bg bs ca cs da de el es et fi fr gl hr hu it ja ko ms nl no pl pt ro ru sk sv tr zh_CN zh_TW"
supported_wprefs_locales="bg ca cs de es et fi fr hr hu it ja ko pt ru sk zh_CN zh_TW"
supported_wings_locales="bg ca cs de fr sk"
for lang in $LINGUAS; do

View File

@@ -50,12 +50,15 @@ static void raiseWindow(WSwitchPanel *swpanel, WWindow *wwin)
Window swwin= wSwitchPanelGetWindow(swpanel);
if (wwin->flags.mapped) {
Window win[2];
if (swwin!=None) {
Window win[2];
win[0]= swwin;
win[1]= wwin->frame->core->window;
win[0]= swwin;
win[1]= wwin->frame->core->window;
XRestackWindows(dpy, win, 2);
XRestackWindows(dpy, win, 2);
} else
XRaiseWindow(dpy, wwin->frame->core->window);
}
}
@@ -128,8 +131,7 @@ StartWindozeCycle(WWindow *wwin, XEvent *event, Bool next)
int i;
WMMaskEvent(dpy, KeyPressMask|KeyReleaseMask|ExposureMask
|PointerMotionMask|ButtonReleaseMask
|LeaveWindowMask, &ev);
|PointerMotionMask|ButtonReleaseMask, &ev);
/* ignore CapsLock */
modifiers = ev.xkey.state & ValidModMask;
@@ -253,11 +255,6 @@ StartWindozeCycle(WWindow *wwin, XEvent *event, Bool next)
wSetFocusTo(scr, newFocused);
}
if (!getenv("SWPDEBUG"))
{
if (swpanel)
wSwitchPanelDestroy(swpanel);
}
scr->flags.doing_alt_tab = 0;
if (somethingElse)

View File

@@ -129,7 +129,7 @@ static int getModMask();
#ifdef NEWSTUFF
static int getRImage();
#endif
static int getPLArray();
static int getPropList();
/* value setting functions */
static int setJustify();
@@ -407,9 +407,6 @@ WDefaultEntry optionList[] = {
{"RaiseDelay", "0", NULL,
&wPreferences.raise_delay, getInt, NULL
},
{"WindozeCycling", "NO", NULL,
&wPreferences.windows_cycling,getBool, NULL
},
{"CirculateRaise", "NO", NULL,
&wPreferences.circ_raise, getBool, NULL
},
@@ -663,7 +660,7 @@ WDefaultEntry optionList[] = {
NULL, getColor, setIconTitleBack
},
{"SwitchPanelImages", "(\"swtile.png\")", &wPreferences,
NULL, getPLArray, setSwPOptions
NULL, getPropList, setSwPOptions
},
/* keybindings */
#ifndef LITE
@@ -1708,15 +1705,9 @@ again:
static int
getPLArray(WScreen *scr, WDefaultEntry *entry, WMPropList *value, void *addr,
getPropList(WScreen *scr, WDefaultEntry *entry, WMPropList *value, void *addr,
void **ret)
{
if (!WMIsPLArray(value)) {
wwarning(_("Wrong value for key \"%s\". Should be an array."),
entry->key);
return False;
}
WMRetainPropList(value);
*ret= value;
@@ -3535,6 +3526,14 @@ setSwPOptions(WScreen *scr, WDefaultEntry *entry, WMPropList *array, void *foo)
int cwidth, cheight;
WPreferences *prefs= (WPreferences*)foo;
if (!WMIsPLArray(array) || WMGetPropListItemCount(array)==0) {
if (prefs->swtileImage) RReleaseImage(prefs->swtileImage);
prefs->swtileImage= NULL;
WMReleasePropList(array);
return 0;
}
switch (WMGetPropListItemCount(array))
{
case 4:

View File

@@ -397,7 +397,8 @@ drawTitle(WSwitchPanel *panel, int idecks, char *title)
static WMArray *makeWindowListArray(WScreen *scr, WWindow *curwin, int workspace)
static WMArray *makeWindowListArray(WScreen *scr, WWindow *curwin, int workspace,
int include_unmapped)
{
WMArray *windows= WMCreateArray(10);
int fl;
@@ -406,7 +407,8 @@ static WMArray *makeWindowListArray(WScreen *scr, WWindow *curwin, int workspace
for (fl= 0; fl < 2; fl++) {
for (wwin= curwin; wwin; wwin= wwin->prev) {
if (((!fl && canReceiveFocus(wwin) > 0) || (fl && canReceiveFocus(wwin) < 0)) &&
(!WFLAGP(wwin, skip_window_list) || wwin->flags.internal_window)) {
(!WFLAGP(wwin, skip_window_list) || wwin->flags.internal_window) &&
(wwin->flags.mapped || include_unmapped)) {
WMAddToArray(windows, wwin);
}
}
@@ -417,7 +419,8 @@ static WMArray *makeWindowListArray(WScreen *scr, WWindow *curwin, int workspace
for (wwin= curwin; wwin && wwin != curwin; wwin= wwin->prev) {
if (((!fl && canReceiveFocus(wwin) > 0) || (fl && canReceiveFocus(wwin) < 0)) &&
(!WFLAGP(wwin, skip_window_list) || wwin->flags.internal_window)) {
(!WFLAGP(wwin, skip_window_list) || wwin->flags.internal_window) &&
(wwin->flags.mapped || include_unmapped)) {
WMAddToArray(windows, wwin);
}
}
@@ -446,7 +449,8 @@ WSwitchPanel *wInitSwitchPanel(WScreen *scr, WWindow *curwin, int workspace)
panel->scr= scr;
panel->windows= makeWindowListArray(scr, curwin, workspace);
panel->windows= makeWindowListArray(scr, curwin, workspace,
wPreferences.swtileImage!=0);
count= WMGetArrayItemCount(panel->windows);
if (count == 0) {
@@ -465,6 +469,9 @@ WSwitchPanel *wInitSwitchPanel(WScreen *scr, WWindow *curwin, int workspace)
panel->visibleCount= iconsThatFitCount;
if (!wPreferences.swtileImage)
return panel;
height= LABEL_HEIGHT + ICON_TILE_SIZE;
panel->tileTmp= RCreateImage(ICON_TILE_SIZE, ICON_TILE_SIZE, 1);
@@ -684,10 +691,10 @@ WWindow *wSwitchPanelHandleEvent(WSwitchPanel *panel, XEvent *event)
if (!panel->win)
return NULL;
if (event->type == LeaveNotify) {
/* if (event->type == LeaveNotify) {
if (event->xcrossing.window == WMWidgetXID(panel->win))
focus= 0;
} else if (event->type == MotionNotify) {
} else*/ if (event->type == MotionNotify) {
WM_ITERATE_ARRAY(panel->icons, icon, i) {
if (WMWidgetXID(icon) == event->xmotion.window) {

View File

@@ -75,7 +75,9 @@ which1()
# Expand macros if necessary.
# Create a temp copy of the menu file to edit to turn into the new.
#
T=/tmp/wmmenu$$
TD=$(/bin/mktemp -d /tmp/wmmenu.XXXXXX) || { echo "$0: can not create temporary file" >& 2; exit 1; }
T=$TD/wmmenu$$
echo "Converting $GLW/$OLD_MENU --> $GD/$NEW_MENU"
cd $WLW || exit 1
if [ ! -s "$OLD_MENU" ]
@@ -198,7 +200,8 @@ END {
}
' > $WD/$NEW_MENU.new || exit 1
rm $T
rm -f $T
rm -fr $TD
#
# Now install it.

View File

@@ -557,6 +557,7 @@ parseTexture(RContext *rc, char *text)
case 'C':
{
Pixmap tpixmap = XCreatePixmap( dpy, root, scrWidth, scrHeight, DefaultDepth(dpy, scr));
XSetForeground(dpy, DefaultGC(dpy, scr), color.pixel);
XFillRectangle(dpy, tpixmap, DefaultGC(dpy, scr), 0, 0, scrWidth, scrHeight);
texture->pixmap = tpixmap;