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

- removed configure.in. use only autoconf 2.5x fom now

- fixed a bug and memleak in WMBox code.
- updated some translations
- fixed some bug in the menu code about drawing disabled entries.
- fixed Clip menu not to allow selecting of "Autoraise" if "Keep On Top"
  is active.
- Added a "Browse" button to the menu editor in WPrefs where a program to run
  is specified (not finished).
This commit is contained in:
dan
2002-02-20 22:22:40 +00:00
parent 9466c00f2b
commit 77b8fe05ac
14 changed files with 1311 additions and 2062 deletions

View File

@@ -33,8 +33,15 @@ Changes since version 0.80.0:
manager" option in the crashing dialog panel. manager" option in the crashing dialog panel.
- Window Maker will now use the WINDOWMAKER_ALT_WM environment variable (if - Window Maker will now use the WINDOWMAKER_ALT_WM environment variable (if
it is defined) to overwrite the default hardcoded fallback window manager. it is defined) to overwrite the default hardcoded fallback window manager.
- Fixed marks for menu entries to be grayed as the text for disabled entries.
- Fixed Clip's "Autoraise" option to be marked as disabled when the
"Keep on Top" option is active.
- Added ability to browse for files/directories in the WPrefs menu editor.
- Added Czech translations of documentation (Jiri Hnidek <Jiri.Hnidek@vslib.cz>) - Added Czech translations of documentation (Jiri Hnidek <Jiri.Hnidek@vslib.cz>)
- Fixed segfault with incomplete WM_CLASS specifications. - Fixed segfault with incomplete WM_CLASS specifications.
- Fixed a bug about arranging subviews in a WMBox after removing a subview
and a memleak occuring in the same situation.
Changes since version 0.70.0: Changes since version 0.70.0:
............................. .............................

14
INSTALL
View File

@@ -40,6 +40,7 @@ SUPPORTED PLATFORMS
- IBM S/390 running Linux - IBM S/390 running Linux
- IBM S/390 running Conectiva Linux (experimental) - IBM S/390 running Conectiva Linux (experimental)
- iBook running Darwin - iBook running Darwin
- Darwin PPC / Macos X
- Windows NT with Cygwin/XFree86 - Windows NT with Cygwin/XFree86
- Sony PlayStation2 running Linux - Sony PlayStation2 running Linux
@@ -73,9 +74,9 @@ The following is required to build Window Maker:
These tools are NOT needed, but IF you have one or These tools are NOT needed, but IF you have one or
more of them installed, make sure you have ALL of the following more of them installed, make sure you have ALL of the following
with exactly these versions: with exactly these versions:
autoconf 2.13 autoconf 2.52
automake 1.4 automake 1.4
libtool 1.3 libtool 1.4.2
If you have a different version, disable them by temporarily If you have a different version, disable them by temporarily
renaming them to something else or uninstalling them from your renaming them to something else or uninstalling them from your
system. If you don't develop software you don't need them, system. If you don't develop software you don't need them,
@@ -149,12 +150,6 @@ To get a list of other options, run ./configure --help
The -I flag must precede each paths, like: The -I flag must precede each paths, like:
--with-incs-from="-I/opt/headers -I/usr/local/include" --with-incs-from="-I/opt/headers -I/usr/local/include"
--enable-single-icon
enables the collapsing of all appicons of the WM_CLASS+WM_INSTANCE
into a single one. This feature is not supported at all by the
developers. If you have some trouble with it, contact it's author:
Christopher Seawood <cls@seawood.org>
--disable-shm --disable-shm
disable use of the MIT shared memory extension. This will slow down disable use of the MIT shared memory extension. This will slow down
texture generation a little bit, but in some cases it seems to be texture generation a little bit, but in some cases it seems to be
@@ -184,9 +179,6 @@ To get a list of other options, run ./configure --help
XKB language status lock support. If you don't know what it is you XKB language status lock support. If you don't know what it is you
probably don't need it. probably don't need it.
--enable-sound
enable support of sound effects module
--disable-xpm --disable-xpm
disables use of the XPM library even if it is available on your disables use of the XPM library even if it is available on your
system. system.

View File

@@ -19,10 +19,3 @@ WindowMaker.lsm: WindowMaker.lsm.in
-e "s/SIZE/$$size M/"\ -e "s/SIZE/$$size M/"\
WindowMaker.lsm.in > WindowMaker-$(VERSION).lsm WindowMaker.lsm.in > WindowMaker-$(VERSION).lsm
#dist-hook:
# touch `find -name configure.in -print`
# touch `find -name aclocal.m4 -print`
# touch `find -name Makefile.am -print`
# touch `find -name Makefile.in -print`
# touch `find -name configure -print`

View File

@@ -7,6 +7,9 @@ Changes since wmaker 0.80.0:
- fixed labels not to display '\n' as a character if multiple '\n' are passed - fixed labels not to display '\n' as a character if multiple '\n' are passed
but just skip to the next line. but just skip to the next line.
- better warning when importing non-digit characters in PropList Data. - better warning when importing non-digit characters in PropList Data.
- rewrote WMBox to use a WMArray for subviews. with this change fixed a bug
about arranging subviews after removing one and a memleak occuring in the
same case.
Changes since wmaker 0.70.0: Changes since wmaker 0.70.0:

View File

@@ -138,17 +138,11 @@ testBox(WMScreen *scr)
win = WMCreateWindow(scr, "testBox"); win = WMCreateWindow(scr, "testBox");
WMSetWindowTitle(win, "Box"); WMSetWindowTitle(win, "Box");
WMSetWindowCloseAction(win, closeAction, NULL); WMSetWindowCloseAction(win, closeAction, NULL);
WMResizeWidget(win, 400, 300);
WMSetViewNotifySizeChanges(WMWidgetView(win), True);
box = WMCreateBox(win); box = WMCreateBox(win);
WMSetBoxBorderWidth(box, 5); WMSetBoxBorderWidth(box, 5);
WMSetViewExpandsToParent(WMWidgetView(box), 0, 0, 0, 0);
WMAddNotificationObserver(resizedWindow, box,
WMViewSizeDidChangeNotification,
WMWidgetView(win));
WMResizeWidget(win, 400, 300);
/*WMSetBoxHorizontal(box, True);*/ /*WMSetBoxHorizontal(box, True);*/
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
@@ -1316,15 +1310,10 @@ main(int argc, char **argv)
testFrame(scr); testFrame(scr);
testSplitView(scr); testSplitView(scr);
testGradientButtons(scr); testGradientButtons(scr);
testOpenFilePanel(scr); testOpenFilePanel(scr);
testSlider(scr); testSlider(scr);

View File

@@ -18,8 +18,7 @@ typedef struct W_Box {
W_Class widgetClass; W_Class widgetClass;
W_View *view; W_View *view;
SubviewItem *subviews; WMArray *subviews;
int subviewCount;
short borderWidth; short borderWidth;
@@ -68,84 +67,105 @@ WMCreateBox(WMWidget *parent)
bPtr->view->delegate = &delegate; bPtr->view->delegate = &delegate;
bPtr->subviews = WMCreateArrayWithDestructor(2, wfree);
WMCreateEventHandler(bPtr->view, StructureNotifyMask, WMCreateEventHandler(bPtr->view, StructureNotifyMask,
handleEvents, bPtr); handleEvents, bPtr);
WMResizeWidget(bPtr, DEFAULT_WIDTH, DEFAULT_HEIGHT); WMResizeWidget(bPtr, DEFAULT_WIDTH, DEFAULT_HEIGHT);
bPtr->subviews = NULL;
bPtr->subviewCount = 0;
return bPtr; return bPtr;
} }
typedef struct {
WMBox *box;
int total;
int expands;
int x, y;
int xe, ye;
int w, h;
} BoxData;
static void
computeExpansion(void *object, void *cdata)
{
SubviewItem *item = (SubviewItem*)object;
BoxData *eData = (BoxData*)cdata;
eData->total -= item->minSize;
eData->total -= item->space;
if (item->expand) {
eData->expands++;
}
}
static void
doRearrange(void *object, void *cdata)
{
SubviewItem *item = (SubviewItem*)object;
BoxData *eData = (BoxData*)cdata;
if (eData->box->horizontal) {
eData->w = item->minSize;
if (item->expand)
eData->w += eData->total/eData->expands;
} else {
eData->h = item->minSize;
if (item->expand)
eData->h += eData->total/eData->expands;
}
if (!item->end) {
W_MoveView(item->view, eData->x, eData->y);
}
W_ResizeView(item->view, eData->w, eData->h);
if (eData->box->horizontal) {
if (item->end)
eData->xe -= eData->w + item->space;
else
eData->x += eData->w + item->space;
} else {
if (item->end)
eData->ye -= eData->h + item->space;
else
eData->y += eData->h + item->space;
}
if (item->end) {
W_MoveView(item->view, eData->xe, eData->ye);
}
}
static void static void
rearrange(WMBox *box) rearrange(WMBox *box)
{ {
int i; BoxData eData;
int x, y;
int xe, ye;
int w = 1, h = 1;
int total;
int expands = 0;
x = box->borderWidth; eData.box = box;
y = box->borderWidth; eData.x = eData.y = box->borderWidth;
eData.w = eData.h = 1;
eData.expands = 0;
if (box->horizontal) { if (box->horizontal) {
ye = box->borderWidth; eData.ye = box->borderWidth;
xe = WMWidgetWidth(box) - box->borderWidth; eData.xe = WMWidgetWidth(box) - box->borderWidth;
h = WMWidgetHeight(box) - 2 * box->borderWidth; eData.h = WMWidgetHeight(box) - 2 * box->borderWidth;
total = WMWidgetWidth(box) - 2 * box->borderWidth; eData.total = WMWidgetWidth(box) - 2 * box->borderWidth;
} else { } else {
xe = box->borderWidth; eData.xe = box->borderWidth;
ye = WMWidgetHeight(box) - box->borderWidth; eData.ye = WMWidgetHeight(box) - box->borderWidth;
w = WMWidgetWidth(box) - 2 * box->borderWidth; eData.w = WMWidgetWidth(box) - 2 * box->borderWidth;
total = WMWidgetHeight(box) - 2 * box->borderWidth; eData.total = WMWidgetHeight(box) - 2 * box->borderWidth;
} }
if (w <= 0 || h <= 0 || total <= 0) { if (eData.w <= 0 || eData.h <= 0 || eData.total <= 0) {
return; return;
} }
for (i = 0; i < box->subviewCount; i++) { WMMapArray(box->subviews, computeExpansion, &eData);
total -= box->subviews[i].minSize; WMMapArray(box->subviews, doRearrange, &eData);
total -= box->subviews[i].space;
if (box->subviews[i].expand) {
expands++;
}
}
for (i = 0; i < box->subviewCount; i++) {
if (box->horizontal) {
w = box->subviews[i].minSize;
if (box->subviews[i].expand)
w += total/expands;
} else {
h = box->subviews[i].minSize;
if (box->subviews[i].expand)
h += total/expands;
}
if (!box->subviews[i].end) {
W_MoveView(box->subviews[i].view, x, y);
}
W_ResizeView(box->subviews[i].view, w, h);
if (box->horizontal) {
if (box->subviews[i].end)
xe -= w + box->subviews[i].space;
else
x += w + box->subviews[i].space;
} else {
if (box->subviews[i].end)
ye -= h + box->subviews[i].space;
else
y += h + box->subviews[i].space;
}
if (box->subviews[i].end) {
W_MoveView(box->subviews[i].view, xe, ye);
}
}
} }
@@ -163,21 +183,18 @@ void
WMAddBoxSubview(WMBox *bPtr, WMView *view, Bool expand, Bool fill, WMAddBoxSubview(WMBox *bPtr, WMView *view, Bool expand, Bool fill,
int minSize, int maxSize, int space) int minSize, int maxSize, int space)
{ {
int i = bPtr->subviewCount; SubviewItem *subView;
bPtr->subviewCount++; subView = wmalloc(sizeof(SubviewItem));
if (!bPtr->subviews) subView->view = view;
bPtr->subviews = wmalloc(sizeof(SubviewItem)); subView->minSize = minSize;
else subView->maxSize = maxSize;
bPtr->subviews = wrealloc(bPtr->subviews, subView->expand = expand;
bPtr->subviewCount*sizeof(SubviewItem)); subView->fill = fill;
bPtr->subviews[i].view = view; subView->space = space;
bPtr->subviews[i].minSize = minSize; subView->end = 0;
bPtr->subviews[i].maxSize = maxSize;
bPtr->subviews[i].expand = expand; WMAddToArray(bPtr->subviews, subView);
bPtr->subviews[i].fill = fill;
bPtr->subviews[i].space = space;
bPtr->subviews[i].end = 0;
rearrange(bPtr); rearrange(bPtr);
} }
@@ -188,41 +205,37 @@ void
WMAddBoxSubviewAtEnd(WMBox *bPtr, WMView *view, Bool expand, Bool fill, WMAddBoxSubviewAtEnd(WMBox *bPtr, WMView *view, Bool expand, Bool fill,
int minSize, int maxSize, int space) int minSize, int maxSize, int space)
{ {
int i = bPtr->subviewCount; SubviewItem *subView;
bPtr->subviewCount++; subView = wmalloc(sizeof(SubviewItem));
if (!bPtr->subviews) subView->view = view;
bPtr->subviews = wmalloc(sizeof(SubviewItem)); subView->minSize = minSize;
else subView->maxSize = maxSize;
bPtr->subviews = wrealloc(bPtr->subviews, subView->expand = expand;
bPtr->subviewCount*sizeof(SubviewItem)); subView->fill = fill;
bPtr->subviews[i].view = view; subView->space = space;
bPtr->subviews[i].minSize = minSize; subView->end = 1;
bPtr->subviews[i].maxSize = maxSize;
bPtr->subviews[i].expand = expand; WMAddToArray(bPtr->subviews, subView);
bPtr->subviews[i].fill = fill;
bPtr->subviews[i].space = space;
bPtr->subviews[i].end = 1;
rearrange(bPtr); rearrange(bPtr);
} }
static int
matchView(void *item, void *cdata)
{
return (((SubviewItem*)item)->view == (WMView*)cdata);
}
void void
WMRemoveBoxSubview(WMBox *bPtr, WMView *view) WMRemoveBoxSubview(WMBox *bPtr, WMView *view)
{ {
int i; if (WMRemoveFromArrayMatching(bPtr->subviews, matchView, view)) {
for (i = 0; i < bPtr->subviewCount; i++) {
if (bPtr->subviews[i].view == view) {
memmove(&bPtr->subviews[i], &bPtr->subviews[i+1],
(bPtr->subviewCount - i - 1) * sizeof(void*));
bPtr->subviewCount--;
break;
}
}
rearrange(bPtr); rearrange(bPtr);
} }
}
void void
@@ -241,6 +254,7 @@ static void
destroyBox(Box *bPtr) destroyBox(Box *bPtr)
{ {
WMRemoveNotificationObserver(bPtr); WMRemoveNotificationObserver(bPtr);
WMFreeArray(bPtr->subviews);
wfree(bPtr); wfree(bPtr);
} }
@@ -270,3 +284,4 @@ handleEvents(XEvent *event, void *data)
} }
} }

View File

@@ -733,9 +733,8 @@ WMGetViewScreenPosition(WMView *view)
} }
static void
resizedParent(void *self, WMNotification *notif)
static void resizedParent(void *self, WMNotification *notif)
{ {
WMSize size = WMGetViewSize((WMView*)WMGetNotificationObject(notif)); WMSize size = WMGetViewSize((WMView*)WMGetNotificationObject(notif));
WMView *view = (WMView*)self; WMView *view = (WMView*)self;
@@ -766,3 +765,5 @@ WMSetViewExpandsToParent(WMView *view, int leftOffs, int topOffs,
W_ResizeView(view, size.width - (leftOffs + rightOffs), W_ResizeView(view, size.width - (leftOffs + rightOffs),
size.height - (topOffs + bottomOffs)); size.height - (topOffs + bottomOffs));
} }

View File

@@ -76,6 +76,7 @@ typedef struct _Panel {
WMFrame *commandF; WMFrame *commandF;
WMTextField *commandT; /* command to run */ WMTextField *commandT; /* command to run */
WMButton *browseB;
WMButton *xtermC; /* inside xterm? */ WMButton *xtermC; /* inside xterm? */
WMFrame *pathF; WMFrame *pathF;
@@ -248,11 +249,41 @@ icommandLClicked(WMWidget *w, void *data)
} }
static void
browseForFile(WMWidget *self, void *clientData)
{
_Panel *panel = (_Panel*)clientData;
WMFilePanel *filePanel;
char *text, *oldprog, *newprog;
filePanel = WMGetOpenPanel(WMWidgetScreen(self));
text = WMGetTextFieldText(panel->commandT);
oldprog = wtrimspace(text);
wfree(text);
if (oldprog[0]==0 || oldprog[0]!='/') {
wfree(oldprog);
oldprog = wstrdup("/");
} else {
char *ptr = oldprog;
while (*ptr && !isspace(*ptr))
ptr++;
*ptr = 0;
}
WMSetFilePanelCanChooseDirectories(filePanel, False);
if (WMRunModalFilePanelForDirectory(filePanel, panel->parent, oldprog,
_("Select Program"), NULL)==True) {
newprog = WMGetFilePanelFileName(filePanel);
WMSetTextFieldText(panel->commandT, newprog);
updateMenuItem(panel, panel->currentItem, panel->commandT);
wfree(newprog);
}
wfree(oldprog);
}
static char* static char*
@@ -644,11 +675,18 @@ createPanel(_Panel *p)
WMResizeWidget(panel->commandF, width, 50); WMResizeWidget(panel->commandF, width, 50);
WMMoveWidget(panel->commandF, 10, 20); WMMoveWidget(panel->commandF, 10, 20);
WMSetFrameTitle(panel->commandF, _("Program to Run")); WMSetFrameTitle(panel->commandF, _("Program to Run"));
WMSetFrameTitlePosition(panel->commandF, WTPAtTop);
panel->commandT = WMCreateTextField(panel->commandF); panel->commandT = WMCreateTextField(panel->commandF);
WMResizeWidget(panel->commandT, width - 20, 20); WMResizeWidget(panel->commandT, width - 95, 20);
WMMoveWidget(panel->commandT, 10, 20); WMMoveWidget(panel->commandT, 10, 20);
panel->browseB = WMCreateCommandButton(panel->commandF);
WMResizeWidget(panel->browseB, 70, 24);
WMMoveWidget(panel->browseB, width - 80, 18);
WMSetButtonText(panel->browseB, _("Browse"));
WMSetButtonAction(panel->browseB, browseForFile, panel);
WMAddNotificationObserver(dataChanged, panel, WMAddNotificationObserver(dataChanged, panel,
WMTextDidChangeNotification, WMTextDidChangeNotification,
panel->commandT); panel->commandT);
@@ -779,7 +817,7 @@ createPanel(_Panel *p)
WMSetFrameTitle(panel->shortF, _("Keyboard Shortcut")); WMSetFrameTitle(panel->shortF, _("Keyboard Shortcut"));
panel->shortT = WMCreateTextField(panel->shortF); panel->shortT = WMCreateTextField(panel->shortF);
WMResizeWidget(panel->shortT, width - 20 - 170, 20); WMResizeWidget(panel->shortT, width - 20 - 150, 20);
WMMoveWidget(panel->shortT, 10, 20); WMMoveWidget(panel->shortT, 10, 20);
WMAddNotificationObserver(dataChanged, panel, WMAddNotificationObserver(dataChanged, panel,
@@ -787,14 +825,14 @@ createPanel(_Panel *p)
panel->shortT); panel->shortT);
panel->sgrabB = WMCreateCommandButton(panel->shortF); panel->sgrabB = WMCreateCommandButton(panel->shortF);
WMResizeWidget(panel->sgrabB, 80, 24); WMResizeWidget(panel->sgrabB, 70, 24);
WMMoveWidget(panel->sgrabB, width - 90, 18); WMMoveWidget(panel->sgrabB, width - 80, 18);
WMSetButtonText(panel->sgrabB, _("Capture")); WMSetButtonText(panel->sgrabB, _("Capture"));
WMSetButtonAction(panel->sgrabB, sgrabClicked, panel); WMSetButtonAction(panel->sgrabB, sgrabClicked, panel);
panel->sclearB = WMCreateCommandButton(panel->shortF); panel->sclearB = WMCreateCommandButton(panel->shortF);
WMResizeWidget(panel->sclearB, 80, 24); WMResizeWidget(panel->sclearB, 70, 24);
WMMoveWidget(panel->sclearB, width - 175, 18); WMMoveWidget(panel->sclearB, width - 155, 18);
WMSetButtonText(panel->sclearB, _("Clear")); WMSetButtonText(panel->sclearB, _("Clear"));
WMSetButtonAction(panel->sclearB, sgrabClicked, panel); WMSetButtonAction(panel->sclearB, sgrabClicked, panel);

View File

@@ -100,15 +100,7 @@ dnl not used anywhere
dnl AC_FUNC_MEMCMP dnl AC_FUNC_MEMCMP
AC_FUNC_VPRINTF AC_FUNC_VPRINTF
AC_FUNC_ALLOCA AC_FUNC_ALLOCA
<<<<<<< configure.ac
<<<<<<< configure.ac
AC_CHECK_FUNCS(gethostname select poll strerror strcasecmp strncasecmp setpgid atexit mallinfo vsnprintf)
=======
AC_CHECK_FUNCS(gethostname select poll strerror strcasecmp strncasecmp setpgid atexit mallinfo snprintf vsnprintf asprintf vasprintf mkstemp)
>>>>>>> 1.4
=======
AC_CHECK_FUNCS(gethostname select poll strerror strcasecmp strncasecmp setpgid atexit mallinfo mkstemp snprintf vsnprintf asprintf vasprintf) AC_CHECK_FUNCS(gethostname select poll strerror strcasecmp strncasecmp setpgid atexit mallinfo mkstemp snprintf vsnprintf asprintf vasprintf)
>>>>>>> 1.15
dnl ripped from samba dnl ripped from samba
@@ -183,22 +175,9 @@ AC_DEFINE_UNQUOTED(CPP_PATH, "$CPP_PATH")
dnl Checks for header files. dnl Checks for header files.
dnl ======================= dnl =======================
<<<<<<< configure.ac
AC_HEADER_STDC
=======
>>>>>>> 1.4
AC_HEADER_SYS_WAIT AC_HEADER_SYS_WAIT
AC_HEADER_TIME AC_HEADER_TIME
<<<<<<< configure.ac
<<<<<<< configure.ac
AC_CHECK_HEADERS(fcntl.h limits.h sys/ioctl.h sys/time.h sys/types.h\
libintl.h sys/select.h poll.h malloc.h stdlib.h)
=======
AC_CHECK_HEADERS(fcntl.h limits.h sys/ioctl.h sys/time.h sys/types.h libintl.h sys/select.h poll.h malloc.h ctype.h stdlib.h string.h strings.h)
>>>>>>> 1.4
=======
AC_CHECK_HEADERS(fcntl.h limits.h sys/ioctl.h sys/time.h sys/types.h libintl.h sys/select.h poll.h malloc.h ctype.h string.h strings.h) AC_CHECK_HEADERS(fcntl.h limits.h sys/ioctl.h sys/time.h sys/types.h libintl.h sys/select.h poll.h malloc.h ctype.h string.h strings.h)
>>>>>>> 1.15

File diff suppressed because it is too large Load Diff

View File

@@ -18,9 +18,9 @@ cs.po Czech 3 Jiri Hnidek <Jiri.Hnidek@vslib.cz
no.po Norwegian Marcus Ramberg <draven@mo.himolde.no> no.po Norwegian Marcus Ramberg <draven@mo.himolde.no>
nl.po Dutch Roeland Mertens <roeland@zeus.rug.ac.be> nl.po Dutch Roeland Mertens <roeland@zeus.rug.ac.be>
gl.po Galician Xose Vazquez <xose@arrakis.es> gl.po Galician Xose Vazquez <xose@arrakis.es>
fr.po French Bastien NOCERA <hadess@writeme.com> fr.po French Bastien Nocera <hadess@hadess.net>
Jean-Francois BIGNOLLES <bignolle@grif.fr> Jean-Francois BIGNOLLES <bignolle@grif.fr>
Hadess <hadess@infonie.fr> Antoine Hulin <antoine.hulin@origan.fdn.org>
it.po Italian Michele Campeotto <micampe@f2s.com> it.po Italian Michele Campeotto <micampe@f2s.com>
ru.po Russian Alexey Vyskubov <alexey@piter-press.ru> ru.po Russian Alexey Vyskubov <alexey@piter-press.ru>
Michael Sobolev <mss@transas.com> Michael Sobolev <mss@transas.com>

1948
po/fr.po

File diff suppressed because it is too large Load Diff

View File

@@ -1056,6 +1056,7 @@ updateClipOptionsMenu(WMenu *menu, WDock *dock)
entry = menu->entries[++index]; entry = menu->entries[++index];
entry->flags.indicator_on = dock->auto_raise_lower; entry->flags.indicator_on = dock->auto_raise_lower;
entry->clientdata = dock; entry->clientdata = dock;
wMenuSetEnabled(menu, index, dock->lowered);
/* attract icons */ /* attract icons */
entry = menu->entries[++index]; entry = menu->entries[++index];

View File

@@ -820,10 +820,19 @@ paintEntry(WMenu *menu, int index, int selected)
ih = indicator->height; ih = indicator->height;
XSetClipMask(dpy, scr->copy_gc, indicator->mask); XSetClipMask(dpy, scr->copy_gc, indicator->mask);
XSetClipOrigin(dpy, scr->copy_gc, 5, y+(h-ih)/2); XSetClipOrigin(dpy, scr->copy_gc, 5, y+(h-ih)/2);
if (selected) if (selected) {
if (entry->flags.enabled) {
XSetForeground(dpy, scr->copy_gc, scr->black_pixel); XSetForeground(dpy, scr->copy_gc, scr->black_pixel);
else } else {
XSetForeground(dpy, scr->copy_gc, scr->dtext_pixel);
}
} else {
if (entry->flags.enabled) {
XSetForeground(dpy, scr->copy_gc, scr->mtext_pixel); XSetForeground(dpy, scr->copy_gc, scr->mtext_pixel);
} else {
XSetForeground(dpy, scr->copy_gc, scr->dtext_pixel);
}
}
XFillRectangle(dpy, win, scr->copy_gc, 5, y+(h-ih)/2, iw, ih); XFillRectangle(dpy, win, scr->copy_gc, 5, y+(h-ih)/2, iw, ih);
/* /*
XCopyArea(dpy, indicator->image, win, scr->copy_gc, 0, 0, XCopyArea(dpy, indicator->image, win, scr->copy_gc, 0, 0,