int font_steps;
int last_inc;
int can_delete;
+ int java;
unsigned long quirks;
struct workspace *ws; /* always valid */
struct swm_screen *s; /* always valid, never changes */
DNPRINTF(SWM_D_EVENT, "set_win_state: window: %lu\n", win->id);
+ if (win == NULL)
+ return;
/* make sure we drain everything */
XSync(display, True);
if (wa.map_state == IsUnmapped && getstate(win->id) == IconicState)
return;
- set_win_state(win, IconicState);
+ /* java shits itself when windows are set to iconic state */
+ if (win->java == 0)
+ set_win_state(win, IconicState);
+
XUnmapWindow(display, win->id);
/* make sure we wait for XUnmapWindow completion */
if (XGetClassHint(display, win->id, &win->ch)) {
DNPRINTF(SWM_D_CLASS, "class: %s name: %s\n",
win->ch.res_class, win->ch.res_name);
+
+ /* java is retarded so treat it special */
+ if (strstr(win->ch.res_name, "sun-awt"))
+ win->java = 1;
+
for (i = 0; i < quirks_length; i++){
if (!strcmp(win->ch.res_class, quirks[i].class) &&
!strcmp(win->ch.res_name, quirks[i].name)) {
if (win == NULL)
return;
+ /* java can not deal with this heuristic */
+ if (win->java)
+ return;
+
if (getstate(e->xunmap.window) == NormalState) {
/*
* this window does not have a destroy event but but it is no