all repos — openbox @ bca8082d6d09a16a116c70001469a576b93157ce

openbox fork - make it a bit more like ryudo

use a context enum instead of quarks
Dana Jansens danakj@orodu.net
commit

bca8082d6d09a16a116c70001469a576b93157ce

parent

831db744f4c023bd0478631a6050c394497bb2ea

4 files changed, 76 insertions(+), 34 deletions(-)

jump to
M engines/engineinterface.hengines/engineinterface.h

@@ -46,6 +46,6 @@ /*! Hides the frame */

typedef void EngineFrameHide(Frame *self); /* get_context */ -typedef GQuark EngineGetContext(Client *client, Window win); +typedef Context EngineGetContext(Client *client, Window win); #endif
M engines/openbox/obengine.cengines/openbox/obengine.c

@@ -92,21 +92,6 @@ gboolean startup()

{ char *path; - g_quark_from_string("none"); - g_quark_from_string("root"); - g_quark_from_string("client"); - g_quark_from_string("titlebar"); - g_quark_from_string("handle"); - g_quark_from_string("frame"); - g_quark_from_string("blcorner"); - g_quark_from_string("brcorner"); - g_quark_from_string("maximize"); - g_quark_from_string("alldesktops"); - g_quark_from_string("shade"); - g_quark_from_string("iconify"); - g_quark_from_string("icon"); - g_quark_from_string("close"); - /* create the ~/.openbox/themes/openbox dir */ path = g_build_filename(g_get_home_dir(), ".openbox", "themes", "openbox", NULL);

@@ -861,28 +846,28 @@ obrender_frame(self);

} } -GQuark get_context(Client *client, Window win) +Context get_context(Client *client, Window win) { ObFrame *self; - if (win == ob_root) return g_quark_try_string("root"); - if (client == NULL) return g_quark_try_string("none"); - if (win == client->window) return g_quark_try_string("client"); + if (win == ob_root) return Context_Root; + if (client == NULL) return Context_None; + if (win == client->window) return Context_Client; self = (ObFrame*) client->frame; - if (win == self->frame.window) return g_quark_try_string("frame"); - if (win == self->frame.plate) return g_quark_try_string("client"); - if (win == self->title) return g_quark_try_string("titlebar"); - if (win == self->label) return g_quark_try_string("titlebar"); - if (win == self->handle) return g_quark_try_string("handle"); - if (win == self->lgrip) return g_quark_try_string("blcorner"); - if (win == self->rgrip) return g_quark_try_string("brcorner"); - if (win == self->max) return g_quark_try_string("maximize"); - if (win == self->iconify) return g_quark_try_string("iconify"); - if (win == self->close) return g_quark_try_string("close"); - if (win == self->icon) return g_quark_try_string("icon"); - if (win == self->desk) return g_quark_try_string("alldesktops"); - if (win == self->shade) return g_quark_try_string("shade"); + if (win == self->frame.window) return Context_Frame; + if (win == self->frame.plate) return Context_Client; + if (win == self->title) return Context_Titlebar; + if (win == self->label) return Context_Titlebar; + if (win == self->handle) return Context_Handle; + if (win == self->lgrip) return Context_BLCorner; + if (win == self->rgrip) return Context_BRCorner; + if (win == self->max) return Context_Maximize; + if (win == self->iconify) return Context_Iconify; + if (win == self->close) return Context_Close; + if (win == self->icon) return Context_Icon; + if (win == self->desk) return Context_AllDesktops; + if (win == self->shade) return Context_Shade; - return g_quark_try_string("none"); + return Context_None; }
M openbox/frame.copenbox/frame.c

@@ -1,5 +1,40 @@

#include "frame.h" +Context frame_context_from_string(char *name) +{ + if (!g_ascii_strcasecmp("root", name)) + return Context_Root; + else if (!g_ascii_strcasecmp("client", name)) + return Context_Client; + else if (!g_ascii_strcasecmp("titlebar", name)) + return Context_Titlebar; + else if (!g_ascii_strcasecmp("handle", name)) + return Context_Handle; + else if (!g_ascii_strcasecmp("frame", name)) + return Context_Frame; + else if (!g_ascii_strcasecmp("blcorner", name)) + return Context_BLCorner; + else if (!g_ascii_strcasecmp("tlcorner", name)) + return Context_TLCorner; + else if (!g_ascii_strcasecmp("brcorner", name)) + return Context_BRCorner; + else if (!g_ascii_strcasecmp("trcorner", name)) + return Context_TRCorner; + else if (!g_ascii_strcasecmp("maximize", name)) + return Context_Maximize; + else if (!g_ascii_strcasecmp("alldesktops", name)) + return Context_AllDesktops; + else if (!g_ascii_strcasecmp("shade", name)) + return Context_Shade; + else if (!g_ascii_strcasecmp("iconify", name)) + return Context_Iconify; + else if (!g_ascii_strcasecmp("icon", name)) + return Context_Icon; + else if (!g_ascii_strcasecmp("close", name)) + return Context_Close; + return Context_None; +} + void frame_client_gravity(Frame *self, int *x, int *y) { /* horizontal */
M openbox/frame.hopenbox/frame.h

@@ -4,6 +4,28 @@

#include "geom.h" #include "client.h" +typedef enum { + Context_None, + Context_Root, + Context_Client, + Context_Titlebar, + Context_Handle, + Context_Frame, + Context_BLCorner, + Context_BRCorner, + Context_TLCorner, + Context_TRCorner, + Context_Maximize, + Context_AllDesktops, + Context_Shade, + Context_Iconify, + Context_Icon, + Context_Close, + NUM_CONTEXTS +} Context; + +Context frame_context_from_string(char *name); + typedef struct Frame { Client *client;