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

Some cleanup after the notification removal in textfields.

This commit is contained in:
dan
1999-05-16 00:45:34 +00:00
parent da36a4ee96
commit 55d51e546d
2 changed files with 12 additions and 28 deletions

View File

@@ -45,9 +45,6 @@ typedef struct W_FilePanel {
unsigned int canFreeFileTypes:1; unsigned int canFreeFileTypes:1;
unsigned int fileMustExist:1; unsigned int fileMustExist:1;
unsigned int panelType:1; unsigned int panelType:1;
/**/
unsigned int ignoreTextChangeNotification:1;
} flags; } flags;
} W_FilePanel; } W_FilePanel;
@@ -117,9 +114,6 @@ textChangedObserver(void *observerData, WMNotification *notification)
int col = WMGetBrowserNumberOfColumns(panel->browser) - 1; int col = WMGetBrowserNumberOfColumns(panel->browser) - 1;
int i, textEvent; int i, textEvent;
if (panel->flags.ignoreTextChangeNotification)
return;
if (!(list = WMGetBrowserListInColumn(panel->browser, col))) if (!(list = WMGetBrowserListInColumn(panel->browser, col)))
return; return;
@@ -142,11 +136,8 @@ textChangedObserver(void *observerData, WMNotification *notification)
if (textEvent!=WMDeleteTextEvent) { 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;
@@ -571,15 +562,11 @@ browserClick(WMBrowser *bPtr, WMFilePanel *panel)
int col = WMGetBrowserSelectedColumn(bPtr); int col = WMGetBrowserSelectedColumn(bPtr);
WMListItem *item = WMGetBrowserSelectedItemInColumn(bPtr, col); WMListItem *item = WMGetBrowserSelectedItemInColumn(bPtr, col);
panel->flags.ignoreTextChangeNotification = 1;
if (!item || item->isBranch) if (!item || item->isBranch)
WMSetTextFieldText(panel->fileField, NULL); WMSetTextFieldText(panel->fileField, NULL);
else { else {
WMSetTextFieldText(panel->fileField, item->text); WMSetTextFieldText(panel->fileField, item->text);
} }
panel->flags.ignoreTextChangeNotification = 0;
} }

View File

@@ -281,9 +281,9 @@ WMInsertTextFieldText(WMTextField *tPtr, char *text, int position)
} }
static void void
deleteTextFieldRange(WMTextField *tPtr, WMRange range) WMDeleteTextFieldRange(WMTextField *tPtr, WMRange range)
{ {
CHECK_CLASS(tPtr, WC_TextField); CHECK_CLASS(tPtr, WC_TextField);
if (range.position >= tPtr->textLen) if (range.position >= tPtr->textLen)
@@ -314,13 +314,6 @@ deleteTextFieldRange(WMTextField *tPtr, WMRange range)
} }
void
WMDeleteTextFieldRange(WMTextField *tPtr, WMRange range)
{
deleteTextFieldRange(tPtr, range);
}
char* char*
WMGetTextFieldText(WMTextField *tPtr) WMGetTextFieldText(WMTextField *tPtr)
@@ -1022,7 +1015,8 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event)
range.count = 1; range.count = 1;
} }
WMDeleteTextFieldRange(tPtr, range); WMDeleteTextFieldRange(tPtr, range);
NOTIFY(tPtr, didChange, WMTextDidChangeNotification, NULL); NOTIFY(tPtr, didChange, WMTextDidChangeNotification,
(void*)WMDeleteTextEvent);
} }
break; break;
@@ -1046,7 +1040,8 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event)
range.count = 1; range.count = 1;
} }
WMDeleteTextFieldRange(tPtr, range); WMDeleteTextFieldRange(tPtr, range);
NOTIFY(tPtr, didChange, WMTextDidChangeNotification, NULL); NOTIFY(tPtr, didChange, WMTextDidChangeNotification,
(void*)WMDeleteTextEvent);
} }
break; break;
@@ -1066,9 +1061,10 @@ handleTextFieldKeyPress(TextField *tPtr, XEvent *event)
range.count = 1; range.count = 1;
} }
if (tPtr->prevselection.count) if (tPtr->prevselection.count)
deleteTextFieldRange(tPtr, range); WMDeleteTextFieldRange(tPtr, range);
WMInsertTextFieldText(tPtr, buffer, tPtr->cursorPosition); WMInsertTextFieldText(tPtr, buffer, tPtr->cursorPosition);
NOTIFY(tPtr, didChange, WMTextDidChangeNotification, NULL); NOTIFY(tPtr, didChange, WMTextDidChangeNotification,
(void*)WMInsertTextEvent);
} else { } else {
return; return;
} }
@@ -1250,7 +1246,8 @@ handleTextFieldActionEvents(XEvent *event, void *data)
if (text) { if (text) {
WMInsertTextFieldText(tPtr, text, tPtr->cursorPosition); WMInsertTextFieldText(tPtr, text, tPtr->cursorPosition);
XFree(text); XFree(text);
NOTIFY(tPtr, didChange, WMTextDidChangeNotification, NULL); NOTIFY(tPtr, didChange, WMTextDidChangeNotification,
(void*)WMInsertTextEvent);
} }
} }
break; break;