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:
@@ -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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -281,8 +281,8 @@ 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);
|
||||||
|
|
||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user