X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fframe.c;h=0975214cbf4ddef804dc7e849d49a9c171b4fec8;hb=d81339c9cf6592fc86dc05428ee6e70ac573afe5;hp=7f28bbb243f7b7f33f720da2e86dae5abdd25553;hpb=e2ddfaf9fff1fb9dd6ebdc1a95f2b228d6baedb2;p=chaz%2Fopenbox diff --git a/openbox/frame.c b/openbox/frame.c index 7f28bbb2..0975214c 100644 --- a/openbox/frame.c +++ b/openbox/frame.c @@ -20,7 +20,6 @@ #include "frame.h" #include "client.h" #include "openbox.h" -#include "prop.h" #include "grab.h" #include "config.h" #include "framerender.h" @@ -30,6 +29,7 @@ #include "screen.h" #include "render/theme.h" #include "obt/display.h" +#include "obt/prop.h" #define FRAME_EVENTMASK (EnterWindowMask | LeaveWindowMask | \ ButtonPressMask | ButtonReleaseMask | \ @@ -101,13 +101,12 @@ ObFrame *frame_new(ObClient *client) mask |= CWColormap | CWBackPixel | CWBorderPixel; /* create a colormap with the visual */ self->colormap = attrib.colormap = - XCreateColormap(obt_display, - RootWindow(obt_display, ob_screen), + XCreateColormap(obt_display, obt_root(ob_screen), visual, AllocNone); attrib.background_pixel = BlackPixel(obt_display, ob_screen); attrib.border_pixel = BlackPixel(obt_display, ob_screen); } - self->window = createWindow(RootWindow(obt_display, ob_screen), visual, + self->window = createWindow(obt_root(ob_screen), visual, mask, &attrib); /* create the visible decor windows */ @@ -215,27 +214,10 @@ static void set_theme_statics(ObFrame *self) ob_rr_theme->paddingx + 1, ob_rr_theme->title_height); XResizeWindow(obt_display, self->trrresize, ob_rr_theme->paddingx + 1, ob_rr_theme->title_height); - - /* set up the dynamic appearances */ - self->a_unfocused_title = RrAppearanceCopy(ob_rr_theme->a_unfocused_title); - self->a_focused_title = RrAppearanceCopy(ob_rr_theme->a_focused_title); - self->a_unfocused_label = RrAppearanceCopy(ob_rr_theme->a_unfocused_label); - self->a_focused_label = RrAppearanceCopy(ob_rr_theme->a_focused_label); - self->a_unfocused_handle = - RrAppearanceCopy(ob_rr_theme->a_unfocused_handle); - self->a_focused_handle = RrAppearanceCopy(ob_rr_theme->a_focused_handle); - self->a_icon = RrAppearanceCopy(ob_rr_theme->a_icon); } static void free_theme_statics(ObFrame *self) { - RrAppearanceFree(self->a_unfocused_title); - RrAppearanceFree(self->a_focused_title); - RrAppearanceFree(self->a_unfocused_label); - RrAppearanceFree(self->a_focused_label); - RrAppearanceFree(self->a_unfocused_handle); - RrAppearanceFree(self->a_focused_handle); - RrAppearanceFree(self->a_icon); } void frame_free(ObFrame *self) @@ -859,10 +841,10 @@ void frame_adjust_area(ObFrame *self, gboolean moved, vals[1] = self->size.right; vals[2] = self->size.top; vals[3] = self->size.bottom; - PROP_SETA32(self->client->window, net_frame_extents, - cardinal, vals, 4); - PROP_SETA32(self->client->window, kde_net_wm_frame_strut, - cardinal, vals, 4); + OBT_PROP_SETA32(self->client->window, NET_FRAME_EXTENTS, + CARDINAL, vals, 4); + OBT_PROP_SETA32(self->client->window, KDE_NET_WM_FRAME_STRUT, + CARDINAL, vals, 4); } /* if this occurs while we are focus cycling, the indicator needs to @@ -999,51 +981,51 @@ void frame_grab_client(ObFrame *self) XSelectInput(obt_display, self->window, FRAME_EVENTMASK); /* set all the windows for the frame in the window_map */ - g_hash_table_insert(window_map, &self->window, self->client); - g_hash_table_insert(window_map, &self->backback, self->client); - g_hash_table_insert(window_map, &self->backfront, self->client); - g_hash_table_insert(window_map, &self->innerleft, self->client); - g_hash_table_insert(window_map, &self->innertop, self->client); - g_hash_table_insert(window_map, &self->innerright, self->client); - g_hash_table_insert(window_map, &self->innerbottom, self->client); - g_hash_table_insert(window_map, &self->innerblb, self->client); - g_hash_table_insert(window_map, &self->innerbll, self->client); - g_hash_table_insert(window_map, &self->innerbrb, self->client); - g_hash_table_insert(window_map, &self->innerbrr, self->client); - g_hash_table_insert(window_map, &self->title, self->client); - g_hash_table_insert(window_map, &self->label, self->client); - g_hash_table_insert(window_map, &self->max, self->client); - g_hash_table_insert(window_map, &self->close, self->client); - g_hash_table_insert(window_map, &self->desk, self->client); - g_hash_table_insert(window_map, &self->shade, self->client); - g_hash_table_insert(window_map, &self->icon, self->client); - g_hash_table_insert(window_map, &self->iconify, self->client); - g_hash_table_insert(window_map, &self->handle, self->client); - g_hash_table_insert(window_map, &self->lgrip, self->client); - g_hash_table_insert(window_map, &self->rgrip, self->client); - g_hash_table_insert(window_map, &self->topresize, self->client); - g_hash_table_insert(window_map, &self->tltresize, self->client); - g_hash_table_insert(window_map, &self->tllresize, self->client); - g_hash_table_insert(window_map, &self->trtresize, self->client); - g_hash_table_insert(window_map, &self->trrresize, self->client); - g_hash_table_insert(window_map, &self->left, self->client); - g_hash_table_insert(window_map, &self->right, self->client); - g_hash_table_insert(window_map, &self->titleleft, self->client); - g_hash_table_insert(window_map, &self->titletop, self->client); - g_hash_table_insert(window_map, &self->titletopleft, self->client); - g_hash_table_insert(window_map, &self->titletopright, self->client); - g_hash_table_insert(window_map, &self->titleright, self->client); - g_hash_table_insert(window_map, &self->titlebottom, self->client); - g_hash_table_insert(window_map, &self->handleleft, self->client); - g_hash_table_insert(window_map, &self->handletop, self->client); - g_hash_table_insert(window_map, &self->handleright, self->client); - g_hash_table_insert(window_map, &self->handlebottom, self->client); - g_hash_table_insert(window_map, &self->lgripleft, self->client); - g_hash_table_insert(window_map, &self->lgriptop, self->client); - g_hash_table_insert(window_map, &self->lgripbottom, self->client); - g_hash_table_insert(window_map, &self->rgripright, self->client); - g_hash_table_insert(window_map, &self->rgriptop, self->client); - g_hash_table_insert(window_map, &self->rgripbottom, self->client); + window_add(&self->window, CLIENT_AS_WINDOW(self->client)); + window_add(&self->backback, CLIENT_AS_WINDOW(self->client)); + window_add(&self->backfront, CLIENT_AS_WINDOW(self->client)); + window_add(&self->innerleft, CLIENT_AS_WINDOW(self->client)); + window_add(&self->innertop, CLIENT_AS_WINDOW(self->client)); + window_add(&self->innerright, CLIENT_AS_WINDOW(self->client)); + window_add(&self->innerbottom, CLIENT_AS_WINDOW(self->client)); + window_add(&self->innerblb, CLIENT_AS_WINDOW(self->client)); + window_add(&self->innerbll, CLIENT_AS_WINDOW(self->client)); + window_add(&self->innerbrb, CLIENT_AS_WINDOW(self->client)); + window_add(&self->innerbrr, CLIENT_AS_WINDOW(self->client)); + window_add(&self->title, CLIENT_AS_WINDOW(self->client)); + window_add(&self->label, CLIENT_AS_WINDOW(self->client)); + window_add(&self->max, CLIENT_AS_WINDOW(self->client)); + window_add(&self->close, CLIENT_AS_WINDOW(self->client)); + window_add(&self->desk, CLIENT_AS_WINDOW(self->client)); + window_add(&self->shade, CLIENT_AS_WINDOW(self->client)); + window_add(&self->icon, CLIENT_AS_WINDOW(self->client)); + window_add(&self->iconify, CLIENT_AS_WINDOW(self->client)); + window_add(&self->handle, CLIENT_AS_WINDOW(self->client)); + window_add(&self->lgrip, CLIENT_AS_WINDOW(self->client)); + window_add(&self->rgrip, CLIENT_AS_WINDOW(self->client)); + window_add(&self->topresize, CLIENT_AS_WINDOW(self->client)); + window_add(&self->tltresize, CLIENT_AS_WINDOW(self->client)); + window_add(&self->tllresize, CLIENT_AS_WINDOW(self->client)); + window_add(&self->trtresize, CLIENT_AS_WINDOW(self->client)); + window_add(&self->trrresize, CLIENT_AS_WINDOW(self->client)); + window_add(&self->left, CLIENT_AS_WINDOW(self->client)); + window_add(&self->right, CLIENT_AS_WINDOW(self->client)); + window_add(&self->titleleft, CLIENT_AS_WINDOW(self->client)); + window_add(&self->titletop, CLIENT_AS_WINDOW(self->client)); + window_add(&self->titletopleft, CLIENT_AS_WINDOW(self->client)); + window_add(&self->titletopright, CLIENT_AS_WINDOW(self->client)); + window_add(&self->titleright, CLIENT_AS_WINDOW(self->client)); + window_add(&self->titlebottom, CLIENT_AS_WINDOW(self->client)); + window_add(&self->handleleft, CLIENT_AS_WINDOW(self->client)); + window_add(&self->handletop, CLIENT_AS_WINDOW(self->client)); + window_add(&self->handleright, CLIENT_AS_WINDOW(self->client)); + window_add(&self->handlebottom, CLIENT_AS_WINDOW(self->client)); + window_add(&self->lgripleft, CLIENT_AS_WINDOW(self->client)); + window_add(&self->lgriptop, CLIENT_AS_WINDOW(self->client)); + window_add(&self->lgripbottom, CLIENT_AS_WINDOW(self->client)); + window_add(&self->rgripright, CLIENT_AS_WINDOW(self->client)); + window_add(&self->rgriptop, CLIENT_AS_WINDOW(self->client)); + window_add(&self->rgripbottom, CLIENT_AS_WINDOW(self->client)); } void frame_release_client(ObFrame *self) @@ -1076,58 +1058,56 @@ void frame_release_client(ObFrame *self) if (reparent) { /* according to the ICCCM - if the client doesn't reparent itself, then we will reparent the window to root for them */ - XReparentWindow(obt_display, self->client->window, - RootWindow(obt_display, ob_screen), - self->client->area.x, - self->client->area.y); + XReparentWindow(obt_display, self->client->window, obt_root(ob_screen), + self->client->area.x, self->client->area.y); } /* remove all the windows for the frame from the window_map */ - g_hash_table_remove(window_map, &self->window); - g_hash_table_remove(window_map, &self->backback); - g_hash_table_remove(window_map, &self->backfront); - g_hash_table_remove(window_map, &self->innerleft); - g_hash_table_remove(window_map, &self->innertop); - g_hash_table_remove(window_map, &self->innerright); - g_hash_table_remove(window_map, &self->innerbottom); - g_hash_table_remove(window_map, &self->innerblb); - g_hash_table_remove(window_map, &self->innerbll); - g_hash_table_remove(window_map, &self->innerbrb); - g_hash_table_remove(window_map, &self->innerbrr); - g_hash_table_remove(window_map, &self->title); - g_hash_table_remove(window_map, &self->label); - g_hash_table_remove(window_map, &self->max); - g_hash_table_remove(window_map, &self->close); - g_hash_table_remove(window_map, &self->desk); - g_hash_table_remove(window_map, &self->shade); - g_hash_table_remove(window_map, &self->icon); - g_hash_table_remove(window_map, &self->iconify); - g_hash_table_remove(window_map, &self->handle); - g_hash_table_remove(window_map, &self->lgrip); - g_hash_table_remove(window_map, &self->rgrip); - g_hash_table_remove(window_map, &self->topresize); - g_hash_table_remove(window_map, &self->tltresize); - g_hash_table_remove(window_map, &self->tllresize); - g_hash_table_remove(window_map, &self->trtresize); - g_hash_table_remove(window_map, &self->trrresize); - g_hash_table_remove(window_map, &self->left); - g_hash_table_remove(window_map, &self->right); - g_hash_table_remove(window_map, &self->titleleft); - g_hash_table_remove(window_map, &self->titletop); - g_hash_table_remove(window_map, &self->titletopleft); - g_hash_table_remove(window_map, &self->titletopright); - g_hash_table_remove(window_map, &self->titleright); - g_hash_table_remove(window_map, &self->titlebottom); - g_hash_table_remove(window_map, &self->handleleft); - g_hash_table_remove(window_map, &self->handletop); - g_hash_table_remove(window_map, &self->handleright); - g_hash_table_remove(window_map, &self->handlebottom); - g_hash_table_remove(window_map, &self->lgripleft); - g_hash_table_remove(window_map, &self->lgriptop); - g_hash_table_remove(window_map, &self->lgripbottom); - g_hash_table_remove(window_map, &self->rgripright); - g_hash_table_remove(window_map, &self->rgriptop); - g_hash_table_remove(window_map, &self->rgripbottom); + window_remove(self->window); + window_remove(self->backback); + window_remove(self->backfront); + window_remove(self->innerleft); + window_remove(self->innertop); + window_remove(self->innerright); + window_remove(self->innerbottom); + window_remove(self->innerblb); + window_remove(self->innerbll); + window_remove(self->innerbrb); + window_remove(self->innerbrr); + window_remove(self->title); + window_remove(self->label); + window_remove(self->max); + window_remove(self->close); + window_remove(self->desk); + window_remove(self->shade); + window_remove(self->icon); + window_remove(self->iconify); + window_remove(self->handle); + window_remove(self->lgrip); + window_remove(self->rgrip); + window_remove(self->topresize); + window_remove(self->tltresize); + window_remove(self->tllresize); + window_remove(self->trtresize); + window_remove(self->trrresize); + window_remove(self->left); + window_remove(self->right); + window_remove(self->titleleft); + window_remove(self->titletop); + window_remove(self->titletopleft); + window_remove(self->titletopright); + window_remove(self->titleright); + window_remove(self->titlebottom); + window_remove(self->handleleft); + window_remove(self->handletop); + window_remove(self->handleright); + window_remove(self->handlebottom); + window_remove(self->lgripleft); + window_remove(self->lgriptop); + window_remove(self->lgripbottom); + window_remove(self->rgripright); + window_remove(self->rgriptop); + window_remove(self->rgripbottom); obt_main_loop_timeout_remove_data(ob_main_loop, flash_timeout, self, TRUE); } @@ -1357,7 +1337,7 @@ ObFrameContext frame_context(ObClient *client, Window win, gint x, gint y) if (moveresize_in_progress) return OB_FRAME_CONTEXT_MOVE_RESIZE; - if (win == RootWindow(obt_display, ob_screen)) + if (win == obt_root(ob_screen)) return OB_FRAME_CONTEXT_ROOT ; if (client == NULL) return OB_FRAME_CONTEXT_NONE; if (win == client->window) {