all repos — openbox @ 7a166a383805f7693e0800f3bf693e3736463a0d

openbox fork - make it a bit more like ryudo

give the dock a strut and use it
Dana Jansens danakj@orodu.net
commit

7a166a383805f7693e0800f3bf693e3736463a0d

parent

66d3006671e7729b3f6244c49fda175caaae5174

3 files changed, 57 insertions(+), 1 deletions(-)

jump to
M openbox/dock.copenbox/dock.c

@@ -11,10 +11,14 @@ #define DOCKAPP_EVENT_MASK (StructureNotifyMask)

static Dock *dock; +Strut dock_strut; + void dock_startup() { XSetWindowAttributes attrib; int i; + + STRUT_SET(dock_strut, 0, 0, 0, 0); dock = g_new0(struct Dock, 1); dock->obwin.type = Window_Dock;

@@ -273,6 +277,49 @@ break;

} } + /* 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 */ dock->w -= theme_bwidth * 2; dock->h -= theme_bwidth * 2;

@@ -290,6 +337,8 @@

/* but they are useful outside of this function! */ dock->w += theme_bwidth * 2; dock->h += theme_bwidth * 2; + + screen_update_struts(); } void dock_app_configure(DockApp *app, int w, int h)
M openbox/dock.hopenbox/dock.h

@@ -2,9 +2,10 @@ #ifndef __dock_h

#define __dock_h #include "timer.h" -#include "render/render.h" #include "window.h" #include "stacking.h" +#include "geom.h" +#include "render/render.h" #include <glib.h> #include <X11/Xlib.h>

@@ -50,6 +51,8 @@ int y;

int w; int h; } DockApp; + +extern Strut dock_strut; void dock_startup(); void dock_shutdown();
M openbox/screen.copenbox/screen.c

@@ -497,6 +497,10 @@ }

/* apply to the 'all desktops' 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(); }