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:
@@ -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
9
NEWS
@@ -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
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
{
|
||||
SmoothWorkspaceBack = NO;
|
||||
WindozeCycling = YES;
|
||||
PopupSwitchMenu = NO;
|
||||
MenuStyle = normal;
|
||||
DisableMiniwindows = NO;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user