give the dock a strut and use it
This commit is contained in:
parent
66d3006671
commit
7a166a3838
3 changed files with 57 additions and 1 deletions
|
@ -11,11 +11,15 @@
|
||||||
|
|
||||||
static Dock *dock;
|
static Dock *dock;
|
||||||
|
|
||||||
|
Strut dock_strut;
|
||||||
|
|
||||||
void dock_startup()
|
void dock_startup()
|
||||||
{
|
{
|
||||||
XSetWindowAttributes attrib;
|
XSetWindowAttributes attrib;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
STRUT_SET(dock_strut, 0, 0, 0, 0);
|
||||||
|
|
||||||
dock = g_new0(struct Dock, 1);
|
dock = g_new0(struct Dock, 1);
|
||||||
dock->obwin.type = Window_Dock;
|
dock->obwin.type = Window_Dock;
|
||||||
|
|
||||||
|
@ -273,6 +277,49 @@ void dock_configure()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* set the strut */
|
||||||
|
switch (config_dock_pos) {
|
||||||
|
case DockPos_Floating:
|
||||||
|
STRUT_SET(dock_strut, 0, 0, 0, 0);
|
||||||
|
break;
|
||||||
|
case DockPos_TopLeft:
|
||||||
|
if (config_dock_horz)
|
||||||
|
STRUT_SET(dock_strut, 0, dock->h, 0, 0);
|
||||||
|
else
|
||||||
|
STRUT_SET(dock_strut, dock->w, 0, 0, 0);
|
||||||
|
break;
|
||||||
|
case DockPos_Top:
|
||||||
|
STRUT_SET(dock_strut, 0, dock->h, 0, 0);
|
||||||
|
break;
|
||||||
|
case DockPos_TopRight:
|
||||||
|
if (config_dock_horz)
|
||||||
|
STRUT_SET(dock_strut, 0, dock->h, 0, 0);
|
||||||
|
else
|
||||||
|
STRUT_SET(dock_strut, 0, 0, dock->w, 0);
|
||||||
|
break;
|
||||||
|
case DockPos_Left:
|
||||||
|
STRUT_SET(dock_strut, dock->w, 0, 0, 0);
|
||||||
|
break;
|
||||||
|
case DockPos_Right:
|
||||||
|
STRUT_SET(dock_strut, 0, 0, dock->w, 0);
|
||||||
|
break;
|
||||||
|
case DockPos_BottomLeft:
|
||||||
|
if (config_dock_horz)
|
||||||
|
STRUT_SET(dock_strut, 0, 0, 0, dock->h);
|
||||||
|
else
|
||||||
|
STRUT_SET(dock_strut, dock->w, 0, 0, 0);
|
||||||
|
break;
|
||||||
|
case DockPos_Bottom:
|
||||||
|
STRUT_SET(dock_strut, 0, 0, 0, dock->h);
|
||||||
|
break;
|
||||||
|
case DockPos_BottomRight:
|
||||||
|
if (config_dock_horz)
|
||||||
|
STRUT_SET(dock_strut, 0, 0, 0, dock->h);
|
||||||
|
else
|
||||||
|
STRUT_SET(dock_strut, 0, 0, dock->w, 0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
/* not used for actually sizing shit */
|
/* not used for actually sizing shit */
|
||||||
dock->w -= theme_bwidth * 2;
|
dock->w -= theme_bwidth * 2;
|
||||||
dock->h -= theme_bwidth * 2;
|
dock->h -= theme_bwidth * 2;
|
||||||
|
@ -290,6 +337,8 @@ void dock_configure()
|
||||||
/* but they are useful outside of this function! */
|
/* but they are useful outside of this function! */
|
||||||
dock->w += theme_bwidth * 2;
|
dock->w += theme_bwidth * 2;
|
||||||
dock->h += theme_bwidth * 2;
|
dock->h += theme_bwidth * 2;
|
||||||
|
|
||||||
|
screen_update_struts();
|
||||||
}
|
}
|
||||||
|
|
||||||
void dock_app_configure(DockApp *app, int w, int h)
|
void dock_app_configure(DockApp *app, int w, int h)
|
||||||
|
|
|
@ -2,9 +2,10 @@
|
||||||
#define __dock_h
|
#define __dock_h
|
||||||
|
|
||||||
#include "timer.h"
|
#include "timer.h"
|
||||||
#include "render/render.h"
|
|
||||||
#include "window.h"
|
#include "window.h"
|
||||||
#include "stacking.h"
|
#include "stacking.h"
|
||||||
|
#include "geom.h"
|
||||||
|
#include "render/render.h"
|
||||||
|
|
||||||
#include <glib.h>
|
#include <glib.h>
|
||||||
#include <X11/Xlib.h>
|
#include <X11/Xlib.h>
|
||||||
|
@ -51,6 +52,8 @@ typedef struct DockApp {
|
||||||
int h;
|
int h;
|
||||||
} DockApp;
|
} DockApp;
|
||||||
|
|
||||||
|
extern Strut dock_strut;
|
||||||
|
|
||||||
void dock_startup();
|
void dock_startup();
|
||||||
void dock_shutdown();
|
void dock_shutdown();
|
||||||
|
|
||||||
|
|
|
@ -497,6 +497,10 @@ void screen_update_struts()
|
||||||
/* apply to the 'all desktops' strut */
|
/* apply to the 'all desktops' strut */
|
||||||
STRUT_ADD(strut[screen_num_desktops], c->strut);
|
STRUT_ADD(strut[screen_num_desktops], c->strut);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < screen_num_desktops; ++i)
|
||||||
|
STRUT_ADD(strut[i], dock_strut);
|
||||||
|
|
||||||
screen_update_area();
|
screen_update_area();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue