Catch more errors and let dock windows take care of themselves

This commit is contained in:
Pierre Pronchery 2009-10-11 23:22:57 +00:00
parent 6d1ae32410
commit af14fa96ee
2 changed files with 15 additions and 15 deletions

View File

@ -309,12 +309,16 @@ int framer_window_add(Framer * framer, Window window)
/* framer_window_iconify */ /* framer_window_iconify */
void framer_window_iconify(Framer * framer, Window window) int framer_window_iconify(Framer * framer, Window window)
{ {
#ifdef DEBUG #ifdef DEBUG
fprintf(stderr, "DEBUG: %s(%d)\n", __func__, (int)window); fprintf(stderr, "DEBUG: %s(%d)\n", __func__, (int)window);
#endif #endif
gdk_error_trap_push();
XUnmapWindow(GDK_DISPLAY_XDISPLAY(framer->display), window); XUnmapWindow(GDK_DISPLAY_XDISPLAY(framer->display), window);
if(gdk_error_trap_pop() != 0)
return 1;
return 0;
} }
@ -578,20 +582,12 @@ static GdkFilterReturn _filter_configure_request(
#else #else
if(type == FA_NET_WM_WINDOW_TYPE_DOCK) if(type == FA_NET_WM_WINDOW_TYPE_DOCK)
{ {
if(xconfigure->value_mask & (CWX | CWWidth)) wc.x = xconfigure->x;
{ wc.y = xconfigure->y;
wc.x = 0; wc.width = xconfigure->width;
wc.width = framer->width; wc.height = xconfigure->height;
mask |= CWX | CWWidth;
}
if(xconfigure->value_mask & (CWY | CWHeight))
{
wc.y = framer->height - 64;
wc.height = 64;
mask |= CWY | CWHeight;
}
} }
else /* other than dock window */ else
{ {
wc.x = 0; wc.x = 0;
wc.width = framer->width; wc.width = framer->width;
@ -602,7 +598,9 @@ static GdkFilterReturn _filter_configure_request(
if(xconfigure->value_mask & CWBorderWidth) if(xconfigure->value_mask & CWBorderWidth)
wc.border_width = 0; wc.border_width = 0;
#endif #endif
gdk_error_trap_push();
XConfigureWindow(xconfigure->display, xconfigure->window, mask, &wc); XConfigureWindow(xconfigure->display, xconfigure->window, mask, &wc);
gdk_error_trap_pop();
return GDK_FILTER_CONTINUE; return GDK_FILTER_CONTINUE;
} }
@ -647,7 +645,9 @@ static GdkFilterReturn _filter_map_request(XMapRequestEvent * xmap)
#ifdef DEBUG #ifdef DEBUG
fprintf(stderr, "DEBUG: %s()\n", __func__); fprintf(stderr, "DEBUG: %s()\n", __func__);
#endif #endif
gdk_error_trap_push();
XMapWindow(xmap->display, xmap->window); XMapWindow(xmap->display, xmap->window);
gdk_error_trap_pop(); /* we ignore errors */
return GDK_FILTER_CONTINUE; return GDK_FILTER_CONTINUE;
} }

View File

@ -37,7 +37,7 @@ int framer_window_set_active(Framer * framer, Window window);
/* useful */ /* useful */
int framer_window_add(Framer * framer, Window window); int framer_window_add(Framer * framer, Window window);
void framer_window_iconify(Framer * framer, Window window); int framer_window_iconify(Framer * framer, Window window);
int framer_window_remove(Framer * framer, Window window); int framer_window_remove(Framer * framer, Window window);
#endif /* !FRAMER_FRAMER_H */ #endif /* !FRAMER_FRAMER_H */