/[oroborus]/oroborus/src/client.c
ViewVC logotype

Diff of /oroborus/src/client.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.16 by dreamind, Mon Jul 1 21:25:03 2002 UTC revision 1.17 by dreamind, Tue Jul 2 02:32:11 2002 UTC
# Line 433  clientFrame (Window w) Line 433  clientFrame (Window w)
433    c->border_width = attr.border_width;    c->border_width = attr.border_width;
434    for (i = 0; i < BUTTON_COUNT; i++)    for (i = 0; i < BUTTON_COUNT; i++)
435      c->button_pressed[i] = False;      c->button_pressed[i] = False;
436    if (!getGnomeHint (dpy, w, win_hints, &c->win_hints))    if (!getGnomeHint (w, win_hints, &c->win_hints))
437      c->win_hints = 0;      c->win_hints = 0;
438    if (!getGnomeHint (dpy, w, win_state, &c->win_state))    if (!getGnomeHint (w, win_state, &c->win_state))
439      c->win_state = 0;      c->win_state = 0;
440    getEWMHState (dpy, w, &c->win_state);    getEWMHState (w, &c->win_state);
441    if (!getGnomeHint (dpy, w, win_layer, &c->win_layer))    if (!getGnomeHint (w, win_layer, &c->win_layer))
442      c->win_layer = WIN_LAYER_NORMAL;      c->win_layer = WIN_LAYER_NORMAL;
443    if (!getGnomeHint (dpy, w, win_workspace, &c->win_workspace))    if (!getGnomeHint (w, win_workspace, &c->win_workspace))
444      {      {
445        setGnomeHint (dpy, w, win_workspace, workspace);        setGnomeHint (w, win_workspace, workspace);
446        c->win_workspace = workspace;        c->win_workspace = workspace;
447      }      }
448    if (c->win_workspace > workspace_count - 1)    if (c->win_workspace > workspace_count - 1)
449      {      {
450        setGnomeHint (dpy, w, win_workspace, workspace_count - 1);        setGnomeHint (w, win_workspace, workspace_count - 1);
451        c->win_workspace = workspace_count - 1;        c->win_workspace = workspace_count - 1;
452      }      }
453    
# Line 457  clientFrame (Window w) Line 457  clientFrame (Window w)
457    else    else
458      c->has_border = True;      c->has_border = True;
459    
460    if (typeDesktop (dpy, c->window))    if (typeDesktop (c->window))
461      {      {
462        c->win_hints = c->win_hints | WIN_HINTS_SKIP_FOCUS;        c->win_hints = c->win_hints | WIN_HINTS_SKIP_FOCUS;
463        c->win_state = c->win_state | WIN_STATE_STICKY;        c->win_state = c->win_state | WIN_STATE_STICKY;
# Line 465  clientFrame (Window w) Line 465  clientFrame (Window w)
465        c->win_layer = WIN_LAYER_DESKTOP;        c->win_layer = WIN_LAYER_DESKTOP;
466      }      }
467    
468    if (typeDock (dpy, c->window))    if (typeDock (c->window))
469      {      {
470        c->win_hints = c->win_hints | WIN_HINTS_SKIP_FOCUS;        c->win_hints = c->win_hints | WIN_HINTS_SKIP_FOCUS;
471      }      }
# Line 474  clientFrame (Window w) Line 474  clientFrame (Window w)
474    c->focus = False;    c->focus = False;
475    getWindowName (dpy, c->window, &c->name);    getWindowName (dpy, c->window, &c->name);
476    
477    mwm_hints = getMotifHints (dpy, c->window);    mwm_hints = getMotifHints (c->window);
478    if (mwm_hints)    if (mwm_hints)
479      {      {
480        if (mwm_hints->flags & MWM_HINTS_DECORATIONS &&        if (mwm_hints->flags & MWM_HINTS_DECORATIONS &&
# Line 551  clientFrame (Window w) Line 551  clientFrame (Window w)
551    wc.stack_mode = Above;    wc.stack_mode = Above;
552    clientConfigure (c, &wc, CWX | CWY | CWHeight | CWWidth | CWStackMode);    clientConfigure (c, &wc, CWX | CWY | CWHeight | CWWidth | CWStackMode);
553    
554    if (getWMState (dpy, c->window) != IconicState)    if (getWMState (c->window) != IconicState)
555      {      {
556        clientShow (c, True);        clientShow (c, True);
557        if (focus_new && !(c->win_hints & WIN_HINTS_SKIP_FOCUS))        if (focus_new && !(c->win_hints & WIN_HINTS_SKIP_FOCUS))
# Line 560  clientFrame (Window w) Line 560  clientFrame (Window w)
560          }          }
561      }      }
562    else    else
563      setWMState (dpy, c->window, IconicState);      setWMState (c->window, IconicState);
564    
565  #ifdef DEBUG  #ifdef DEBUG
566    printf ("client_count=%d\n", client_count);    printf ("client_count=%d\n", client_count);
# Line 582  clientUnframe (Client * c, int remap) Line 582  clientUnframe (Client * c, int remap)
582    if (remap)    if (remap)
583      XMapWindow (dpy, c->window);      XMapWindow (dpy, c->window);
584    else    else
585      setWMState (dpy, c->window, WithdrawnState);      setWMState (c->window, WithdrawnState);
586    XDestroyWindow (dpy, c->frame);    XDestroyWindow (dpy, c->frame);
587    
588    clientRemoveFromList (c);    clientRemoveFromList (c);
# Line 691  clientShow (Client * c, int change_state Line 691  clientShow (Client * c, int change_state
691        XMapWindow (dpy, c->frame);        XMapWindow (dpy, c->frame);
692      }      }
693    if (change_state)    if (change_state)
694      setWMState (dpy, c->window, NormalState);      setWMState (c->window, NormalState);
695  }  }
696    
697  void  void
# Line 705  clientHide (Client * c, int change_state Line 705  clientHide (Client * c, int change_state
705    XUnmapWindow (dpy, c->window);    XUnmapWindow (dpy, c->window);
706    XUnmapWindow (dpy, c->frame);    XUnmapWindow (dpy, c->frame);
707    if (change_state)    if (change_state)
708      setWMState (dpy, c->window, IconicState);      setWMState (c->window, IconicState);
709    c->ignore_unmap++;    c->ignore_unmap++;
710  }  }
711    
# Line 788  clientSetLayer (Client * c, int l) Line 788  clientSetLayer (Client * c, int l)
788    if (l == old_layer)    if (l == old_layer)
789      return;      return;
790    
791    setGnomeHint (dpy, c->window, win_layer, l);    setGnomeHint (c->window, win_layer, l);
792    c->win_layer = l;    c->win_layer = l;
793    if (l > old_layer)    if (l > old_layer)
794      clientRaise (c);      clientRaise (c);
# Line 807  clientSetWorkspace (Client * c, int ws) Line 807  clientSetWorkspace (Client * c, int ws)
807    if (c->win_workspace == ws)    if (c->win_workspace == ws)
808      return;      return;
809    
810    setGnomeHint (dpy, c->window, win_workspace, ws);    setGnomeHint (c->window, win_workspace, ws);
811    c->win_workspace = ws;    c->win_workspace = ws;
812    if (getWMState (dpy, c->window) != IconicState)    if (getWMState (c->window) != IconicState)
813      {      {
814        if (c->win_state & WIN_STATE_STICKY)        if (c->win_state & WIN_STATE_STICKY)
815          clientShow (c, False);          clientShow (c, False);
# Line 834  clientSetState (Client * c, CARD32 mask, Line 834  clientSetState (Client * c, CARD32 mask,
834  #endif  #endif
835    
836    c->win_state = (c->win_state & ~mask) | value;    c->win_state = (c->win_state & ~mask) | value;
837    setGnomeHint (dpy, c->window, win_state, c->win_state);    setGnomeHint (c->window, win_state, c->win_state);
838    if (mask & ~WIN_STATE_STICKY)    if (mask & ~WIN_STATE_STICKY)
839      {      {
840        wc.width = c->width;        wc.width = c->width;
# Line 854  clientToggleShaded (Client * c) Line 854  clientToggleShaded (Client * c)
854  #endif  #endif
855    
856    c->win_state = c->win_state ^ WIN_STATE_SHADED;    c->win_state = c->win_state ^ WIN_STATE_SHADED;
857    setGnomeHint (dpy, c->window, win_state, c->win_state);    setGnomeHint (c->window, win_state, c->win_state);
858    wc.width = c->width;    wc.width = c->width;
859    wc.height = c->height;    wc.height = c->height;
860    clientConfigure (c, &wc, CWWidth | CWHeight);    clientConfigure (c, &wc, CWWidth | CWHeight);
# Line 869  clientToggleSticky (Client * c) Line 869  clientToggleSticky (Client * c)
869  #endif  #endif
870    
871    c->win_state = c->win_state ^ WIN_STATE_STICKY;    c->win_state = c->win_state ^ WIN_STATE_STICKY;
872    setGnomeHint (dpy, c->window, win_state, c->win_state);    setGnomeHint (c->window, win_state, c->win_state);
873    clientSetWorkspace (c, workspace);    clientSetWorkspace (c, workspace);
874  }  }
875    
# Line 933  clientToggleMaximized (Client * c, int m Line 933  clientToggleMaximized (Client * c, int m
933          }          }
934    
935      }      }
936    setGnomeHint (dpy, c->window, win_state, c->win_state);    setGnomeHint (c->window, win_state, c->win_state);
937    clientConfigure (c, &wc, CWX | CWY | CWWidth | CWHeight);    clientConfigure (c, &wc, CWX | CWY | CWWidth | CWHeight);
938    clientWarpMouse (c);    clientWarpMouse (c);
939  }  }
# Line 1500  clientGetNext (Client * c, int mask) Line 1500  clientGetNext (Client * c, int mask)
1500            if (c2->win_hints & WIN_HINTS_SKIP_FOCUS &&            if (c2->win_hints & WIN_HINTS_SKIP_FOCUS &&
1501                !(mask & INCLUDE_SKIP_FOCUS))                !(mask & INCLUDE_SKIP_FOCUS))
1502              okay = False;              okay = False;
1503            if (getWMState (dpy, c2->window) == IconicState &&            if (getWMState (c2->window) == IconicState &&
1504                !(mask & INCLUDE_HIDDEN))                !(mask & INCLUDE_HIDDEN))
1505              okay = False;              okay = False;
1506            if (c2->win_workspace != workspace &&            if (c2->win_workspace != workspace &&
# Line 1562  clientCycle (Client * c) Line 1562  clientCycle (Client * c)
1562          {          {
1563            if (ev.xkey.keycode == keys[KEY_CYCLE_WINDOWS].keycode)            if (ev.xkey.keycode == keys[KEY_CYCLE_WINDOWS].keycode)
1564              {              {
1565                if (getWMState (dpy, c2->window) == IconicState)                if (getWMState (c2->window) == IconicState)
1566                  clientHide (c2, False);                  clientHide (c2, False);
1567                c2 = clientGetNext (c2, INCLUDE_HIDDEN);                c2 = clientGetNext (c2, INCLUDE_HIDDEN);
1568                if (!c2)                if (!c2)

Legend:
Removed from v.1.16  
changed lines
  Added in v.1.17

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26