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

syncing with latst changes, because cvs will be moved

This commit is contained in:
dan
1999-02-23 14:46:39 +00:00
parent e7495baff7
commit 60980735fe
8 changed files with 43 additions and 45 deletions

View File

@@ -34,6 +34,7 @@ Changes since version 0.51.0:
- fixed crash with internal dialogs and multi-heads - fixed crash with internal dialogs and multi-heads
- added standard colormap support to wrlib (taken from libXmu sources) - added standard colormap support to wrlib (taken from libXmu sources)
- fixed memory leak in attribute panel - fixed memory leak in attribute panel
- fixed bug with window that can get focus if both shaded and hidden.
Changes since version 0.50.2: Changes since version 0.50.2:
............................. .............................

View File

@@ -267,7 +267,7 @@ WMSetBrowserColumnTitle(WMBrowser *bPtr, int column, char *title)
if (bPtr->titles[column]) if (bPtr->titles[column])
free(bPtr->titles[column]); free(bPtr->titles[column]);
bPtr->titles[column] = wstrdup(title); bPtr->titles[column] = (title!=NULL) ? wstrdup(title) : wstrdup("");
if (COLUMN_IS_VISIBLE(bPtr, column) && bPtr->flags.isTitled) { if (COLUMN_IS_VISIBLE(bPtr, column) && bPtr->flags.isTitled) {
drawTitleOfColumn(bPtr, column); drawTitleOfColumn(bPtr, column);
@@ -893,27 +893,31 @@ listCallback(void *self, void *clientData)
int i; int i;
item = WMGetListSelectedItem(lPtr); item = WMGetListSelectedItem(lPtr);
if (!item || oldItem == item) if (!item) {
return; oldItem = item;
return;
for (i=0; i<bPtr->columnCount; i++) {
if (lPtr == bPtr->columns[i])
break;
} }
assert(i<bPtr->columnCount);
/* columns at right must be cleared */ if (oldItem != item) {
removeColumn(bPtr, i+1); for (i=0; i<bPtr->columnCount; i++) {
/* open directory */ if (lPtr == bPtr->columns[i])
if (item->isBranch) { break;
WMAddBrowserColumn(bPtr); }
loadColumn(bPtr, bPtr->usedColumnCount-1); assert(i<bPtr->columnCount);
/* columns at right must be cleared */
removeColumn(bPtr, i+1);
/* open directory */
if (item->isBranch) {
WMAddBrowserColumn(bPtr);
loadColumn(bPtr, bPtr->usedColumnCount-1);
}
if (bPtr->usedColumnCount < bPtr->maxVisibleColumns)
i = 0;
else
i = bPtr->usedColumnCount-bPtr->maxVisibleColumns;
scrollToColumn(bPtr, i, True);
} }
if (bPtr->usedColumnCount < bPtr->maxVisibleColumns)
i = 0;
else
i = bPtr->usedColumnCount-bPtr->maxVisibleColumns;
scrollToColumn(bPtr, i, True);
/* call callback for click */ /* call callback for click */
if (bPtr->action) if (bPtr->action)

View File

@@ -104,22 +104,16 @@ textChangedObserver(void *observerData, WMNotification *notification)
char *text; char *text;
WMList *list; WMList *list;
int col = WMGetBrowserNumberOfColumns(panel->browser) - 1; int col = WMGetBrowserNumberOfColumns(panel->browser) - 1;
int i, j, textEvent = (int)WMGetNotificationClientData(notification); int i, j, textEvent;
static int running = 0;
if (running)
return;
running = 1;
if (panel->flags.ignoreTextChangeNotification) if (panel->flags.ignoreTextChangeNotification)
return; return;
list = WMGetBrowserListInColumn(panel->browser, col); if (!(list = WMGetBrowserListInColumn(panel->browser, col)))
if (!list) return;
return;
text = WMGetTextFieldText(panel->fileField); text = WMGetTextFieldText(panel->fileField);
textEvent = (int)WMGetNotificationClientData(notification);
if (panel->flags.autoCompletion && textEvent!=WMDeleteTextEvent) if (panel->flags.autoCompletion && textEvent!=WMDeleteTextEvent)
i = closestListItem(list, text, False); i = closestListItem(list, text, False);
@@ -132,14 +126,16 @@ textChangedObserver(void *observerData, WMNotification *notification)
int textLen = strlen(text), itemTextLen = strlen(item->text); int textLen = strlen(text), itemTextLen = strlen(item->text);
int visibleItems = WMWidgetHeight(list)/WMGetListItemHeight(list); int visibleItems = WMWidgetHeight(list)/WMGetListItemHeight(list);
if (textEvent!=WMSetTextEvent || textLen<itemTextLen) WMSetListPosition(list, i - visibleItems/2);
WMSetListPosition(list, i - visibleItems/2);
if (textEvent!=WMDeleteTextEvent && textLen<itemTextLen) { if (textEvent!=WMDeleteTextEvent) {
WMRange range; WMRange range;
panel->flags.ignoreTextChangeNotification = 1;
WMInsertTextFieldText(panel->fileField, &item->text[textLen], WMInsertTextFieldText(panel->fileField, &item->text[textLen],
textLen); textLen);
panel->flags.ignoreTextChangeNotification = 0;
WMSetTextFieldCursorPosition(panel->fileField, itemTextLen); WMSetTextFieldCursorPosition(panel->fileField, itemTextLen);
range.position = textLen; range.position = textLen;
range.count = itemTextLen - textLen; range.count = itemTextLen - textLen;
@@ -148,7 +144,6 @@ textChangedObserver(void *observerData, WMNotification *notification)
} }
free(text); free(text);
running = 0;
} }

View File

@@ -820,7 +820,8 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event)
switch (ksym) { switch (ksym) {
case XK_Tab: case XK_Tab:
if (event->xkey.state & ShiftMask) { if (event->xkey.state & ShiftMask) {
if (tPtr->view->prevFocusChain) { if (tPtr->view->prevFocusChain &&
tPtr->view->prevFocusChain->flags.mapped) {
W_SetFocusOfTopLevel(W_TopLevelOfView(tPtr->view), W_SetFocusOfTopLevel(W_TopLevelOfView(tPtr->view),
tPtr->view->prevFocusChain); tPtr->view->prevFocusChain);
tPtr->flags.notIllegalMovement = 1; tPtr->flags.notIllegalMovement = 1;
@@ -828,7 +829,8 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event)
WMPostNotificationName(WMTextDidEndEditingNotification, tPtr, WMPostNotificationName(WMTextDidEndEditingNotification, tPtr,
(void*)WMBacktabTextMovement); (void*)WMBacktabTextMovement);
} else { } else {
if (tPtr->view->nextFocusChain) { if (tPtr->view->nextFocusChain &&
tPtr->view->nextFocusChain->flags.mapped) {
W_SetFocusOfTopLevel(W_TopLevelOfView(tPtr->view), W_SetFocusOfTopLevel(W_TopLevelOfView(tPtr->view),
tPtr->view->nextFocusChain); tPtr->view->nextFocusChain);
tPtr->flags.notIllegalMovement = 1; tPtr->flags.notIllegalMovement = 1;

View File

@@ -366,7 +366,7 @@ WInsertMenuItemWithTitle(WEditMenu *mPtr, char *title, int index)
index = mPtr->itemCount; index = mPtr->itemCount;
if (mPtr->itemCount == mPtr->itemsAlloced) { if (mPtr->itemCount == mPtr->itemsAlloced) {
WEditMenuItem *newList; WEditMenuItem **newList;
newList = wmalloc(sizeof(WEditMenuItem*)*(mPtr->itemsAlloced+10)); newList = wmalloc(sizeof(WEditMenuItem*)*(mPtr->itemsAlloced+10));
memset(newList, 0, sizeof(WEditMenuItem*)*(mPtr->itemsAlloced+10)); memset(newList, 0, sizeof(WEditMenuItem*)*(mPtr->itemsAlloced+10));

View File

@@ -48,9 +48,7 @@
AutoArrangeIcons = NO; AutoArrangeIcons = NO;
AdvanceToNewWorkspace = NO; AdvanceToNewWorkspace = NO;
CycleWorkspaces = NO; CycleWorkspaces = NO;
#ifdef WEENDOZE_CYCLE WindozeCycling = NO;
WindozeCycling = YES;
#endif /* WEENDOZE_CYCLE */
ResizeDisplay = line; ResizeDisplay = line;
MoveDisplay = floating; MoveDisplay = floating;
OpaqueMove = YES; OpaqueMove = YES;

View File

@@ -48,9 +48,7 @@
AutoArrangeIcons = NO; AutoArrangeIcons = NO;
AdvanceToNewWorkspace = NO; AdvanceToNewWorkspace = NO;
CycleWorkspaces = NO; CycleWorkspaces = NO;
#ifdef WEENDOZE_CYCLE WindozeCycling = NO;
WindozeCycling = YES;
#endif /* WEENDOZE_CYCLE */
ResizeDisplay = line; ResizeDisplay = line;
MoveDisplay = floating; MoveDisplay = floating;
OpaqueMove = YES; OpaqueMove = YES;

View File

@@ -425,7 +425,7 @@ wWindowSetupInitialAttributes(WWindow *wwin, int *level, int *workspace)
Bool Bool
wWindowCanReceiveFocus(WWindow *wwin) wWindowCanReceiveFocus(WWindow *wwin)
{ {
if (!wwin->flags.mapped && !wwin->flags.shaded) if (!wwin->flags.mapped && (!wwin->flags.shaded || wwin->flags.hidden))
return False; return False;
if (WFLAGP(wwin, no_focusable) || wwin->flags.miniaturized) if (WFLAGP(wwin, no_focusable) || wwin->flags.miniaturized)
return False; return False;