take the decender into account when drawing console text.
also add data types wm and mask to dataname() and unshadow var in ghost/x11
This commit is contained in:
@@ -182,7 +182,6 @@ GHOST_WindowX11(
|
||||
* X can find us a visual matching those requirements. */
|
||||
|
||||
int attributes[40], i, samples;
|
||||
Atom atoms[2];
|
||||
int natom;
|
||||
int glxVersionMajor, glxVersionMinor; /* As in GLX major.minor */
|
||||
|
||||
@@ -405,6 +404,7 @@ GHOST_WindowX11(
|
||||
|
||||
/* The basic for a good ICCCM "work" */
|
||||
if (m_system->m_atom.WM_PROTOCOLS) {
|
||||
Atom atoms[2];
|
||||
natom = 0;
|
||||
|
||||
if (m_system->m_atom.WM_DELETE_WINDOW) {
|
||||
|
||||
@@ -7066,7 +7066,9 @@ static const char *dataname(short id_code)
|
||||
case ID_BR: return "Data from BR";
|
||||
case ID_PA: return "Data from PA";
|
||||
case ID_GD: return "Data from GD";
|
||||
case ID_WM: return "Data from WM";
|
||||
case ID_MC: return "Data from MC";
|
||||
case ID_MSK: return "Data from MSK";
|
||||
case ID_LS: return "Data from LS";
|
||||
}
|
||||
return "Data from Lib Block";
|
||||
|
||||
@@ -57,6 +57,7 @@ static void console_font_begin(TextViewContext *sc)
|
||||
typedef struct ConsoleDrawContext {
|
||||
int cwidth;
|
||||
int lheight;
|
||||
int lofs; /* text vertical offset */
|
||||
int console_width; /* number of characters that fit into the width of the console (fixed width) */
|
||||
int winx;
|
||||
int ymin, ymax;
|
||||
@@ -192,7 +193,7 @@ static int console_draw_string(ConsoleDrawContext *cdc, const char *str, int str
|
||||
glColor3ubv(fg);
|
||||
|
||||
/* last part needs no clipping */
|
||||
BLF_position(mono, cdc->xy[0], cdc->xy[1], 0);
|
||||
BLF_position(mono, cdc->xy[0], cdc->lofs + cdc->xy[1], 0);
|
||||
BLF_draw_mono(mono, s, len, cdc->cwidth);
|
||||
|
||||
if (cdc->sel[0] != cdc->sel[1]) {
|
||||
@@ -208,7 +209,7 @@ static int console_draw_string(ConsoleDrawContext *cdc, const char *str, int str
|
||||
len = offsets[i] - offsets[i - 1];
|
||||
s = str + offsets[i - 1];
|
||||
|
||||
BLF_position(mono, cdc->xy[0], cdc->xy[1], 0);
|
||||
BLF_position(mono, cdc->xy[0], cdc->lofs + cdc->xy[1], 0);
|
||||
BLF_draw_mono(mono, s, len, cdc->cwidth);
|
||||
|
||||
if (cdc->sel[0] != cdc->sel[1]) {
|
||||
@@ -239,7 +240,7 @@ static int console_draw_string(ConsoleDrawContext *cdc, const char *str, int str
|
||||
|
||||
glColor3ubv(fg);
|
||||
|
||||
BLF_position(mono, cdc->xy[0], cdc->xy[1], 0);
|
||||
BLF_position(mono, cdc->xy[0], cdc->lofs + cdc->xy[1], 0);
|
||||
BLF_draw_mono(mono, str, str_len, cdc->cwidth);
|
||||
|
||||
if (cdc->sel[0] != cdc->sel[1]) {
|
||||
@@ -291,6 +292,7 @@ int textview_draw(TextViewContext *tvc, const int draw, int mval[2], void **mous
|
||||
cdc.cwidth = (int)BLF_fixed_width(mono);
|
||||
assert(cdc.cwidth > 0);
|
||||
cdc.lheight = tvc->lheight;
|
||||
cdc.lofs = -BLF_descender(mono);
|
||||
/* note, scroll bar must be already subtracted () */
|
||||
cdc.console_width = (tvc->winx - (CONSOLE_DRAW_MARGIN * 2) ) / cdc.cwidth;
|
||||
CLAMP(cdc.console_width, 1, INT_MAX); /* avoid divide by zero on small windows */
|
||||
|
||||
Reference in New Issue
Block a user