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

- Now when Window Maker calls wmsetbg to set the background, it will pass the

correct switch to it, depending on the value of the DisableDithering option.
- Replaced some functions with macros in WINGs (wmkpoint(), wmksize() and
  wmkrange()). They're less expensive to call this way.
- Fixed a memleak in the info panel.
This commit is contained in:
dan
2001-04-09 23:43:09 +00:00
parent 6bbe6f2b9d
commit 9035122c5f
10 changed files with 32 additions and 71 deletions

View File

@@ -11,6 +11,10 @@ Changes since version 0.64.0:
- fixed bug with multibyte text on libc5 systems (Osamu Ajiki <osam-a@astroarts.co.jp>) - fixed bug with multibyte text on libc5 systems (Osamu Ajiki <osam-a@astroarts.co.jp>)
- fixed race conditions on signal handlers - fixed race conditions on signal handlers
- SIGINT will gently exit, SIGTERM will not be handled - SIGINT will gently exit, SIGTERM will not be handled
- When Window Maker calls wmsetbg to set the background, it will consider the
value of the DisableDithering option and pass the right switch to wmsetbg.
- fixed a memleak in the dialog panels.
Changes since version 0.63.1: Changes since version 0.63.1:
............................. .............................

View File

@@ -11,13 +11,14 @@ Changes since wmaker 0.64.0:
- fixed mem leak that occured when input handling was done with poll - fixed mem leak that occured when input handling was done with poll
- simpler and more straightforward event handling for timer, idle, input - simpler and more straightforward event handling for timer, idle, input
and X events (also fixed some problems the old handling logic had) and X events (also fixed some problems the old handling logic had)
- moved timer, dile and input handler definitions and prototypes from - moved timer, idle and input handler definitions and prototypes from
WINGs.h to WUtil.h because they're not GUI related. WINGs.h to WUtil.h because they're not GUI related.
- better and more robust handling of events (timer, idle, input, X) in - better and more robust handling of events (timer, idle, input, X) in
WMMaskEvent(). Also fixed a bug where input and timer events were not WMMaskEvent(). Also fixed a bug where input and timer events were not
treated for undefined periods of time under some circumstances. treated for undefined periods of time under some circumstances.
- fixed secure textfields not to allow text selection, to avoid compromising - fixed secure textfields not to allow text selection, to avoid compromising
sensitive information by pasting it to a terminal. sensitive information by pasting it to a terminal.
- replaced wmkrange(), wmkpoint() and wmksize() functions with macros.
changes since wmaker 0.63.1: changes since wmaker 0.63.1:

View File

@@ -36,8 +36,12 @@ typedef struct {
WMSize size; WMSize size;
} WMRect; } WMRect;
#define wmksize(width, height) (WMSize){(width), (height)}
#define wmkpoint(x, y) (WMPoint){(x), (y)}
#define wmkrect(pos, size) (WMRect){(pos), (size)}
/* WMRange was moved in WUtil.h */
#define ClientMessageMask (1L<<30) #define ClientMessageMask (1L<<30)
@@ -573,15 +577,6 @@ typedef struct W_DragDestinationProcs {
/* ...................................................................... */
WMRange wmkrange(int start, int count);
WMPoint wmkpoint(int x, int y);
WMSize wmksize(unsigned int width, unsigned int height);
/* ....................................................................... */ /* ....................................................................... */

View File

@@ -149,12 +149,13 @@ typedef int WMMatchDataProc(void *item, void *cdata);
typedef struct { typedef struct {
int position; int position;
int count; int count;
} WMRange; } WMRange;
#define wmkrange(position, count) (WMRange){(position), (count)}
/* DO NOT ACCESS THE CONTENTS OF THIS STRUCT */ /* DO NOT ACCESS THE CONTENTS OF THIS STRUCT */
@@ -474,7 +475,6 @@ void WMPutInBag(WMBag *bag, void *item);
/* insert will increment the index of elements after it by 1 */ /* insert will increment the index of elements after it by 1 */
void WMInsertInBag(WMBag *bag, int index, void *item); void WMInsertInBag(WMBag *bag, int index, void *item);
/* this is slow */
/* erase will remove the element from the bag, /* erase will remove the element from the bag,
* but will keep the index of the other elements unchanged */ * but will keep the index of the other elements unchanged */
int WMEraseFromBag(WMBag *bag, int index); int WMEraseFromBag(WMBag *bag, int index);

View File

@@ -55,7 +55,6 @@ static WMBag *idleHandler=NULL;
static WMBag *inputHandler=NULL; static WMBag *inputHandler=NULL;
// this should go to wevent.c and wutil.c too
#define timerPending() (timerHandler) #define timerPending() (timerHandler)

View File

@@ -261,6 +261,7 @@ WMIsHostEqualToHost(WMHost* hPtr, WMHost* aPtr)
for (i=0; i<WMGetArrayItemCount(aPtr->addresses); i++) { for (i=0; i<WMGetArrayItemCount(aPtr->addresses); i++) {
adr1 = WMGetFromArray(aPtr->addresses, i); adr1 = WMGetFromArray(aPtr->addresses, i);
// use WMFindInArray here --Dan
for (j=0; j<WMGetArrayItemCount(hPtr->addresses); j++) { for (j=0; j<WMGetArrayItemCount(hPtr->addresses); j++) {
adr2 = WMGetFromArray(hPtr->addresses, j); adr2 = WMGetFromArray(hPtr->addresses, j);
if (strcmp(adr1, adr2)==0) if (strcmp(adr1, adr2)==0)

View File

@@ -444,16 +444,6 @@ WMNextEvent(Display *dpy, XEvent *event)
} }
/*
* Is this comment still valid?
* waitForEvent seems now to understand masked events. -Dan
*
* Cant use this because XPending() will make waitForEvent
* return even if the event in the queue is not what we want,
* and if we block until some new event arrives from the
* server, other events already in the queue (like Expose)
* will be deferred.
*/
void void
WMMaskEvent(Display *dpy, long mask, XEvent *event) WMMaskEvent(Display *dpy, long mask, XEvent *event)
{ {

View File

@@ -316,42 +316,5 @@ W_PaintTextAndImage(W_View *view, int wrap, GC textGC, W_Font *font,
WMRange
wmkrange(int start, int count)
{
WMRange range;
range.position = start;
range.count = count;
return range;
}
WMPoint
wmkpoint(int x, int y)
{
WMPoint point;
point.x = x;
point.y = y;
return point;
}
WMSize
wmksize(unsigned int width, unsigned int height)
{
WMSize size;
size.width = width;
size.height = height;
return size;
}

View File

@@ -3134,18 +3134,21 @@ setWorkspaceSpecificBack(WScreen *scr, WDefaultEntry *entry, proplist_t value,
if (close(filedes[1]) < 0) if (close(filedes[1]) < 0)
wsyserror("could not close pipe"); wsyserror("could not close pipe");
} else if (pid == 0) { } else if (pid == 0) {
char *dither;
SetupEnvironment(scr); SetupEnvironment(scr);
if (close(0) < 0) if (close(0) < 0)
wsyserror("could not close pipe"); wsyserror("could not close pipe");
if (dup(filedes[0]) < 0) { if (dup(filedes[0]) < 0) {
wsyserror("dup() failed:can't set workspace specific background image"); wsyserror("dup() failed:can't set workspace specific background image");
} }
dither = wPreferences.no_dithering ? "-m" : "-d";
if (wPreferences.smooth_workspace_back) if (wPreferences.smooth_workspace_back)
execlp("wmsetbg", "wmsetbg", "-helper", "-S", "-d", NULL); execlp("wmsetbg", "wmsetbg", "-helper", "-S", dither, NULL);
else else
execlp("wmsetbg", "wmsetbg", "-helper", "-d", NULL); execlp("wmsetbg", "wmsetbg", "-helper", dither, NULL);
wsyserror("could not execute wmsetbg"); wsyserror("could not execute wmsetbg");
exit(1); exit(1);
} else { } else {
@@ -3209,15 +3212,17 @@ setWorkspaceBack(WScreen *scr, WDefaultEntry *entry, proplist_t value,
} }
} else if (PLGetNumberOfElements(value) > 0) { } else if (PLGetNumberOfElements(value) > 0) {
char *command; char *command;
char *text; char *text;
char *dither;
SetupEnvironment(scr); SetupEnvironment(scr);
text = PLGetDescription(value); text = PLGetDescription(value);
command = wmalloc(strlen(text)+40); command = wmalloc(strlen(text)+40);
dither = wPreferences.no_dithering ? "-m" : "-d";
if (wPreferences.smooth_workspace_back) if (wPreferences.smooth_workspace_back)
sprintf(command, "wmsetbg -d -S -p '%s' &", text); sprintf(command, "wmsetbg %s -S -p '%s' &", dither, text);
else else
sprintf(command, "wmsetbg -d -p '%s' &", text); sprintf(command, "wmsetbg %s -p '%s' &", dither, text);
wfree(text); wfree(text);
system(command); system(command);
wfree(command); wfree(command);

View File

@@ -808,6 +808,9 @@ destroyInfoPanel(WCoreWindow *foo, void *data, XEvent *event)
if (thePanel->oldPix) { if (thePanel->oldPix) {
WMReleasePixmap(thePanel->oldPix); WMReleasePixmap(thePanel->oldPix);
} }
if (thePanel->oldFont) {
WMReleaseFont(thePanel->oldFont);
}
if (thePanel->icon) { if (thePanel->icon) {
RDestroyImage(thePanel->icon); RDestroyImage(thePanel->icon);
} }
@@ -1068,8 +1071,8 @@ handleLogoPush(XEvent *event, void *data)
"WHAT YOU SAY??", "WHAT YOU SAY??",
"WE GET SIGNAL", "WE GET SIGNAL",
"SOMEBODY SET UP US THE BOMB", "SOMEBODY SET UP US THE BOMB",
"ALL YOUR BASE ARE BELONG TO US!" "ALL YOUR BASE ARE BELONG TO US!",
"Oh My God!!! Larry is back!"
}; };