1
0
mirror of https://github.com/gryf/wmaker.git synced 2026-02-12 03:35:52 +01:00

Fixed some problems in 0.60.0

This commit is contained in:
dan
1999-06-04 20:13:40 +00:00
parent a10885b99d
commit b9c1aba415
13 changed files with 59 additions and 45 deletions

View File

@@ -53,7 +53,7 @@ wmquery_SOURCES = wmquery.c
wmquery_LDADD = libWINGs.a $(LIBLIST)
EXTRA_DIST = logo.xpm
EXTRA_DIST = logo.xpm BUGS
# wbutton.c
libWINGs_a_SOURCES = \

View File

@@ -140,7 +140,7 @@ wmquery_SOURCES = wmquery.c
wmquery_LDADD = libWINGs.a $(LIBLIST)
EXTRA_DIST = logo.xpm
EXTRA_DIST = logo.xpm BUGS
# wbutton.c
libWINGs_a_SOURCES = WINGs.h WINGsP.h configuration.c llist.h llist.c international.c notification.c selection.c userdefaults.c wapplication.c wballoon.c wbrowser.c wbutton.c wcolor.c wcolorpanel.c wcolorwell.c wevent.c wfilepanel.c wframe.c wfont.c wfontpanel.c widgets.c wlabel.c wlist.c wmisc.c wpanel.c wpixmap.c wpopupbutton.c wscroller.c wscrollview.c wslider.c wsplitview.c wtabview.c wtextfield.c wwindow.c wview.c error.c findfile.c hashtable.c memory.c usleep.c

View File

@@ -543,6 +543,14 @@ WMHandlerID WMAddInputHandler(int fd, int condition, WMInputProc *proc,
void WMDeleteInputHandler(WMHandlerID handlerID);
Bool WMCreateSelectionHandler(WMWidget *w, Atom selection, Time timestamp,
WMConvertSelectionProc *convProc,
WMLoseSelectionProc *loseProc,
WMSelectionDoneProc *doneProc);
void WMDeleteSelectionHandler(WMWidget *widget, Atom selection);
/* ....................................................................... */
/*
void WMDragImageFromView(WMView *view, WMPixmap *image, WMPoint atLocation,

View File

@@ -44,7 +44,7 @@ observer2(void *data, WMNotification *notification)
int
main(int argc, char **argv)
{
int i;

View File

@@ -594,56 +594,65 @@ browserClick(WMBrowser *bPtr, WMFilePanel *panel)
}
}
#define ERROR_PANEL(s) err_str = wmalloc(strlen(file)+strlen(s)); \
sprintf(err_str, s, file); \
WMRunAlertPanel(WMWidgetScreen(panel->win), panel->win, \
"Error", err_str, "OK", NULL, NULL);
static void
showError(WMScreen *scr, WMWindow *owner, char *s, char *file)
{
char *errStr;
if (file) {
errStr = wmalloc(strlen(file)+strlen(s));
sprintf(errStr, s, file);
} else {
errStr = wstrdup(s);
}
WMRunAlertPanel(scr, owner, "Error", errStr, "OK", NULL, NULL);
free(errStr);
}
static void
deleteFile(WMButton *bPre, WMFilePanel *panel)
{
WMScreen *scr = WMWidgetScreen(panel->win);
char *file;
char *buffer;
char *err_str;
WMFilePanel *deletePanel;
file = getCurrentFileName(panel);
if (file[strlen(file)-1] == '/') {
ERROR_PANEL("%s is a directory.");
free(err_str);
showError(scr, panel->win, "%s is a directory.", file);
free(file);
return;
}
buffer = wmalloc(strlen(file)+15);
sprintf(buffer,"Delete file %s ?\x0",file);
buffer = wmalloc(strlen(file)+16);
sprintf(buffer,"Delete file %s ?",file);
if (!WMRunAlertPanel(WMWidgetScreen(panel->win), panel->win,
"Warning", buffer, "OK", "Cancel", NULL)) {
int rem_stat;
if (rem_stat = remove(file)) {
if (remove(file) != 0) {
switch (errno) {
case EISDIR:
ERROR_PANEL("%s is a directory.");
showError(scr, panel->win, "'%s' is a directory.", file);
break;
case ENOENT:
ERROR_PANEL("%s does not exist.");
showError(scr, panel->win, "'%s' does not exist.", file);
break;
case EACCES:
ERROR_PANEL("Permission denied.");
showError(scr, panel->win, "Permission denied.", NULL);
break;
case ENOMEM:
ERROR_PANEL("Insufficient kernel memory was available.");
showError(scr, panel->win,
"Insufficient memory available.", NULL);
break;
case EROFS:
ERROR_PANEL("%s refers to a file on a read-only filesystem.");
showError(scr, panel->win,
"'%s' is on a read-only filesystem.", file);
break;
default:
ERROR_PANEL("Can not delete %s.");
showError(scr, panel->win, "Can not delete '%s'.", file);
}
free(err_str);
}
else {
char *s = strrchr(file,'/');
char *s = strrchr(file, '/');
if (s) s[1] = 0;
WMSetFilePanelDirectory(panel, file);
}
@@ -652,20 +661,18 @@ deleteFile(WMButton *bPre, WMFilePanel *panel)
free(file);
}
static void
goFloppy(WMButton *bPtr, WMFilePanel *panel)
{
char *file, *err_str;
WMScreen *scr = WMWidgetScreen(panel->win);
struct stat filestat;
/* home is statically allocated. Don't free it! */
if (stat("/floppy",&filestat)) {
ERROR_PANEL("An error occured browsing /floppy.");
free(err_str);
if (stat("/floppy", &filestat)) {
showError(scr, panel->win, "An error occured browsing /floppy.", NULL);
return;
} else if (!S_ISDIR(filestat.st_mode)) {
ERROR_PANEL("/floppy is not a directory.");
free(err_str);
showError(scr, panel->win, "/floppy is not a directory.", NULL);
return;
}

View File

@@ -182,7 +182,7 @@ requestHandler(WMWidget *w, Atom selection, Atom target, Atom *type,
void **value, unsigned *length, int *format)
{
TextField *tPtr = w;
int count,count2;
int count;
Display *dpy = tPtr->view->screen->display;
Atom _TARGETS;
char *text;
@@ -952,7 +952,9 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event)
*/
switch (ksym) {
case XK_Tab:
#ifdef XK_ISO_Left_Tab
case XK_ISO_Left_Tab:
#endif
if (event->xkey.state & ShiftMask) {
if (tPtr->view->prevFocusChain) {
W_SetFocusOfTopLevel(W_TopLevelOfView(tPtr->view),