Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 203947 Details for
Bug 284350
x11-wm/scrotwm (new package)
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch to use XFT instead of the X Core Fonts (written by me, has to be tested)
10_all-use-xft.diff (text/plain), 4.00 KB, created by
Massimo Gengarelli
on 2009-09-13 16:05:31 UTC
(
hide
)
Description:
Patch to use XFT instead of the X Core Fonts (written by me, has to be tested)
Filename:
MIME Type:
Creator:
Massimo Gengarelli
Created:
2009-09-13 16:05:31 UTC
Size:
4.00 KB
patch
obsolete
>--- scrotwm-orig-debian/scrotwm.c 2009-09-13 10:23:13.000000000 +0200 >+++ scrotwm-debian/linux/scrotwm.c 2009-09-13 17:42:18.000000000 +0200 >@@ -82,6 +82,7 @@ > #include <X11/Xproto.h> > #include <X11/Xutil.h> > #include <X11/extensions/Xrandr.h> >+#include <X11/Xft/Xft.h> > > #if RANDR_MAJOR < 1 > # error XRandR versions less than 1.0 are not supported >@@ -186,13 +187,11 @@ > GC bar_gc; > XGCValues bar_gcv; > int bar_fidx = 0; >-XFontStruct *bar_fs; >-char *bar_fonts[] = { >- "-*-terminus-medium-*-*-*-*-*-*-*-*-*-*-*", >- "-*-times-medium-r-*-*-*-*-*-*-*-*-*-*", >- NULL >-}; >- >+/* Things for XFT */ >+XftFont *bar_fs; >+XftDraw *xftdraw; >+char *default_font="terminus-10"; >+char *bar_font_color="#cccccc"; > /* terminal + args */ > char *spawn_term[] = { "xterm", NULL }; > char *spawn_screenshot[] = { "screenshot.sh", NULL, NULL }; >@@ -607,9 +606,10 @@ > else if (!varmatch(var, "bar_color", &i)) > setscreencolor(val, i, SWM_S_COLOR_BAR); > else if (!varmatch(var, "bar_font_color", &i)) >- setscreencolor(val, i, SWM_S_COLOR_BAR_FONT); >+ //setscreencolor(val, i, SWM_S_COLOR_BAR_FONT); >+ asprintf(&bar_font_color, "#%s", val); > else if (!strncmp(var, "bar_font", strlen("bar_font"))) >- asprintf(&bar_fonts[0], "%s", val); >+ asprintf(&default_font, "%s", val); > else if (!strncmp(var, "bar_action", strlen("bar_action"))) > asprintf(&bar_argv[0], "%s", val); > else if (!strncmp(var, "bar_delay", strlen("bar_delay"))) >@@ -724,10 +724,26 @@ > void > bar_print(struct swm_region *r, char *s) > { >+ int scr, len; >+ XGlyphInfo ext; >+ XftColor col; >+ XftDraw *xftdraw; >+ /* how many chars in it? */ >+ scr = DefaultScreen(display); >+ len = strlen(s); >+ /* TODO: here we should check if the whole text >+ * fits inside the bar */ >+ XftColorAllocName(display, DefaultVisual(display, scr), >+ DefaultColormap(display, scr), >+ bar_font_color, >+ &col); >+ /* now draw text */ > XClearWindow(display, r->bar_window); >- XSetForeground(display, bar_gc, r->s->c[SWM_S_COLOR_BAR_FONT].color); >- XDrawString(display, r->bar_window, bar_gc, 4, bar_fs->ascent, s, >- strlen(s)); >+ xftdraw = XftDrawCreate(display, r->bar_window, >+ DefaultVisual(display, scr), >+ DefaultColormap(display, scr)); >+ XftTextExtents8 (display, bar_fs, s, strlen(s), &ext); >+ XftDrawString8 (xftdraw, &col, bar_fs, 4, bar_fs->ascent, s, strlen(s)); > } > > void >@@ -878,25 +894,15 @@ > void > bar_setup(struct swm_region *r) > { >- int i; >- >- for (i = 0; bar_fonts[i] != NULL; i++) { >- bar_fs = XLoadQueryFont(display, bar_fonts[i]); >- if (bar_fs) { >- bar_fidx = i; >- break; >- } >- } >- if (bar_fonts[i] == NULL) >- errx(1, "couldn't load font"); >+ int scr = DefaultScreen (display); >+ bar_fs = XftFontOpenName(display, 0, default_font); > bar_height = bar_fs->ascent + bar_fs->descent + 3; > > r->bar_window = XCreateSimpleWindow(display, > r->s->root, X(r), Y(r), WIDTH(r) - 2, bar_height - 2, > 1, r->s->c[SWM_S_COLOR_BAR_BORDER].color, > r->s->c[SWM_S_COLOR_BAR].color); >- bar_gc = XCreateGC(display, r->bar_window, 0, &bar_gcv); >- XSetFont(display, bar_gc, bar_fs->fid); >+ bar_gc = XCreateGC(display, r->bar_window, GCGraphicsExposures, &bar_gcv); > XSelectInput(display, r->bar_window, VisibilityChangeMask); > if (bar_enabled) > XMapRaised(display, r->bar_window); >@@ -904,6 +910,9 @@ > > if (signal(SIGALRM, bar_signal) == SIG_ERR) > err(1, "could not install bar_signal"); >+ xftdraw = XftDrawCreate (display, >+ r->bar_window, DefaultVisual(display, scr), >+ DefaultColormap(display, scr)); > bar_refresh(); > } > >@@ -1140,7 +1149,6 @@ > { > DNPRINTF(SWM_D_MISC, "spawnmenu\n"); > >- spawn_menu[SWM_MENU_FN] = bar_fonts[bar_fidx]; > spawn_menu[SWM_MENU_NB] = r->s->c[SWM_S_COLOR_BAR].name; > spawn_menu[SWM_MENU_NF] = r->s->c[SWM_S_COLOR_BAR_FONT].name; > spawn_menu[SWM_MENU_SB] = r->s->c[SWM_S_COLOR_BAR_BORDER].name; >@@ -3511,6 +3519,7 @@ > if (cfile) > conf_load(cfile); > >+ printf("Loaded conf file: %s\n", cfile); > /* setup all bars */ > for (i = 0; i < ScreenCount(display); i++) > TAILQ_FOREACH(r, &screens[i].rl, entry)
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 284350
:
203634
|
203636
|
203637
|
203639
|
203640
|
203947
|
203948
|
203950
|
203952
|
204100
|
204102
|
204103
|
204105
|
204107
|
206282
|
206283
|
206319
|
206408
|
206410
|
206518
|
206520
|
206731
|
206967
|
206969
|
206970
|
206974
|
207019
|
210444
|
224619
|
224639
|
224641
|
224651
|
224655
|
253387