popup: a border, a preedit as wide as its text, one place by the pointer, and no dying
The popup was a white box on the usually white text it covered, with no edge to tell them apart; it has a border in the separator's colour. A syllable being composed came in a bar twelve ems wide, wiping out the line under it: only candidate rows share that steady width now, a preedit alone hugs its text. A popup placed by the pointer, when the client sends no caret, was placed again on every key and so followed the mouse; it stays where it came up. Clicks on it no longer fall through to the root window and its menu. And one failed draw — a lost pointer reply, a pixmap the server refused — ended the draw thread and the popup for the rest of the session; only a dead connection does now.
This commit is contained in:
@@ -144,10 +144,10 @@ popup_layout(struct ct *t)
|
||||
CT_EQ_INT(t, -1, p.rowsy);
|
||||
CT_EQ_INT(t, -1, p.marky);
|
||||
|
||||
/* Preedit only. */
|
||||
/* Preedit only: as wide as its text. */
|
||||
dc.pre = mkstr("preedit");
|
||||
popuplayout(&dc, 2*PopupBasew, Imgh, &p);
|
||||
CT_EQ_INT(t, PopupBasew, p.w);
|
||||
CT_EQ_INT(t, textwidth(&dc.pre) + 2*PopupPad, p.w);
|
||||
CT_EQ_INT(t, PopupPad, p.prey);
|
||||
CT_EQ_INT(t, -1, p.sepy);
|
||||
CT_EQ_INT(t, -1, p.rowsy);
|
||||
|
||||
Reference in New Issue
Block a user