fix statusbar display when on right
This commit is contained in:
parent
05dad60786
commit
543899da7c
9
draw.c
9
draw.c
|
@ -126,7 +126,7 @@ drawcircle(Display *disp, int screen, int x, int y, int r, Drawable drawable, in
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
draw_rotate(Display *disp, int screen, Drawable drawable, int dw, int dh, double angle)
|
draw_rotate(Display *disp, int screen, Drawable drawable, int dw, int dh, double angle, int tx, int ty)
|
||||||
{
|
{
|
||||||
cairo_surface_t *surface, *source;
|
cairo_surface_t *surface, *source;
|
||||||
cairo_t *cr;
|
cairo_t *cr;
|
||||||
|
@ -134,11 +134,12 @@ draw_rotate(Display *disp, int screen, Drawable drawable, int dw, int dh, double
|
||||||
surface = cairo_xlib_surface_create(disp, drawable, DefaultVisual(disp, screen), dw, dw);
|
surface = cairo_xlib_surface_create(disp, drawable, DefaultVisual(disp, screen), dw, dw);
|
||||||
source = cairo_xlib_surface_create(disp, drawable, DefaultVisual(disp, screen), dw, dw);
|
source = cairo_xlib_surface_create(disp, drawable, DefaultVisual(disp, screen), dw, dw);
|
||||||
cr = cairo_create (surface);
|
cr = cairo_create (surface);
|
||||||
cairo_rotate(cr, M_PI / 2);
|
|
||||||
cairo_translate(cr, 0.0, -dh);
|
cairo_rotate(cr, angle);
|
||||||
|
cairo_translate(cr, tx, ty);
|
||||||
|
|
||||||
cairo_set_source_surface(cr, source, 0.0, 0.0);
|
cairo_set_source_surface(cr, source, 0.0, 0.0);
|
||||||
cairo_paint_with_alpha(cr, 1.0);
|
cairo_paint(cr);
|
||||||
|
|
||||||
cairo_destroy(cr);
|
cairo_destroy(cr);
|
||||||
cairo_surface_destroy(source);
|
cairo_surface_destroy(source);
|
||||||
|
|
2
draw.h
2
draw.h
|
@ -27,7 +27,7 @@
|
||||||
void drawtext(Display *, int, int, int, int, int, Drawable, int, int, XftFont *, const char *, XColor []);
|
void drawtext(Display *, int, int, int, int, int, Drawable, int, int, XftFont *, const char *, XColor []);
|
||||||
void drawrectangle(Display *, int, int, int, int, int, Drawable, int, int, Bool, XColor);
|
void drawrectangle(Display *, int, int, int, int, int, Drawable, int, int, Bool, XColor);
|
||||||
void drawcircle(Display *, int, int, int, int, Drawable, int, int, Bool, XColor);
|
void drawcircle(Display *, int, int, int, int, Drawable, int, int, Bool, XColor);
|
||||||
void draw_rotate(Display *, int, Drawable, int, int, double);
|
void draw_rotate(Display *, int, Drawable, int, int, double, int, int);
|
||||||
unsigned short textwidth(Display *, XftFont *, char *);
|
unsigned short textwidth(Display *, XftFont *, char *);
|
||||||
#endif
|
#endif
|
||||||
// vim: filetype=c:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99
|
// vim: filetype=c:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99
|
||||||
|
|
15
statusbar.c
15
statusbar.c
|
@ -161,9 +161,16 @@ drawstatusbar(awesome_config *awesomeconf)
|
||||||
if(awesomeconf->statusbar.position == BarRight
|
if(awesomeconf->statusbar.position == BarRight
|
||||||
|| awesomeconf->statusbar.position == BarLeft)
|
|| awesomeconf->statusbar.position == BarLeft)
|
||||||
{
|
{
|
||||||
draw_rotate(awesomeconf->display, awesomeconf->phys_screen,
|
if(awesomeconf->statusbar.position == BarRight)
|
||||||
awesomeconf->statusbar.drawable, awesomeconf->statusbar.width,
|
draw_rotate(awesomeconf->display, awesomeconf->phys_screen,
|
||||||
awesomeconf->statusbar.height, M_PI * 1.5);
|
awesomeconf->statusbar.drawable, awesomeconf->statusbar.width,
|
||||||
|
awesomeconf->statusbar.height, M_PI * 0.5,
|
||||||
|
0, -awesomeconf->statusbar.height);
|
||||||
|
else
|
||||||
|
draw_rotate(awesomeconf->display, awesomeconf->phys_screen,
|
||||||
|
awesomeconf->statusbar.drawable, awesomeconf->statusbar.width,
|
||||||
|
awesomeconf->statusbar.height, M_PI * 0.5,
|
||||||
|
0, -awesomeconf->statusbar.height);
|
||||||
XCopyArea(awesomeconf->display, awesomeconf->statusbar.drawable,
|
XCopyArea(awesomeconf->display, awesomeconf->statusbar.drawable,
|
||||||
awesomeconf->statusbar.window,
|
awesomeconf->statusbar.window,
|
||||||
DefaultGC(awesomeconf->display, awesomeconf->phys_screen), 0, 0,
|
DefaultGC(awesomeconf->display, awesomeconf->phys_screen), 0, 0,
|
||||||
|
@ -250,7 +257,7 @@ updatebarpos(Display *disp, Statusbar statusbar)
|
||||||
XMoveWindow(disp, statusbar.window, si[statusbar.screen].x_org, si[statusbar.screen].y_org);
|
XMoveWindow(disp, statusbar.window, si[statusbar.screen].x_org, si[statusbar.screen].y_org);
|
||||||
break;
|
break;
|
||||||
case BarRight:
|
case BarRight:
|
||||||
XMoveWindow(disp, statusbar.window, si[statusbar.screen].width - statusbar.width, si[statusbar.screen].y_org);
|
XMoveWindow(disp, statusbar.window, si[statusbar.screen].width - statusbar.height, si[statusbar.screen].y_org);
|
||||||
break;
|
break;
|
||||||
case BarBot:
|
case BarBot:
|
||||||
XMoveWindow(disp, statusbar.window, si[statusbar.screen].x_org, si[statusbar.screen].height - statusbar.height);
|
XMoveWindow(disp, statusbar.window, si[statusbar.screen].x_org, si[statusbar.screen].height - statusbar.height);
|
||||||
|
|
Loading…
Reference in New Issue