Merge branch 'mikabox/actions' into wip/mikabox
authorMikael Magnusson <mikachu@comhem.se>
Sat, 8 Mar 2008 16:29:13 +0000 (17:29 +0100)
committerMikael Magnusson <mikachu@comhem.se>
Sat, 8 Mar 2008 16:29:13 +0000 (17:29 +0100)
Conflicts:

Makefile.am
openbox/client.c
po/POTFILES.in

1  2 
Makefile.am
openbox/actions.c
openbox/actions/all.c
openbox/actions/all.h
openbox/actions/desktop.c
openbox/client.c
openbox/client_menu.c
openbox/event.c
po/POTFILES.in

diff --cc Makefile.am
@@@ -191,7 -191,7 +192,8 @@@ openbox_openbox_SOURCES = 
        openbox/actions/if.c \
        openbox/actions/kill.c \
        openbox/actions/layer.c \
+       openbox/actions/lock.c \
 +      openbox/actions/session.c \
        openbox/actions/lower.c \
        openbox/actions/maximize.c \
        openbox/actions/move.c \
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -3572,65 -3543,110 +3577,69 @@@ void client_set_state(ObClient *self, A
          /* if toggling, then pick whether we're adding or removing */
          if (action == OBT_PROP_ATOM(NET_WM_STATE_TOGGLE)) {
              if (state == OBT_PROP_ATOM(NET_WM_STATE_MODAL))
 -                action = modal ? OBT_PROP_ATOM(NET_WM_STATE_REMOVE) :
 -                    OBT_PROP_ATOM(NET_WM_STATE_ADD);
 +                value = modal;
              else if (state == OBT_PROP_ATOM(NET_WM_STATE_MAXIMIZED_VERT))
 -                action = self->max_vert ? OBT_PROP_ATOM(NET_WM_STATE_REMOVE) :
 -                    OBT_PROP_ATOM(NET_WM_STATE_ADD);
 +                value = self->max_vert;
              else if (state == OBT_PROP_ATOM(NET_WM_STATE_MAXIMIZED_HORZ))
 -                action = self->max_horz ? OBT_PROP_ATOM(NET_WM_STATE_REMOVE) :
 -                    OBT_PROP_ATOM(NET_WM_STATE_ADD);
 +                value = self->max_horz;
              else if (state == OBT_PROP_ATOM(NET_WM_STATE_SHADED))
 -                action = shaded ? OBT_PROP_ATOM(NET_WM_STATE_REMOVE) :
 -                    OBT_PROP_ATOM(NET_WM_STATE_ADD);
 +                value = shaded;
              else if (state == OBT_PROP_ATOM(NET_WM_STATE_SKIP_TASKBAR))
 -                action = self->skip_taskbar ?
 -                    OBT_PROP_ATOM(NET_WM_STATE_REMOVE) :
 -                    OBT_PROP_ATOM(NET_WM_STATE_ADD);
 +                value = self->skip_taskbar;
              else if (state == OBT_PROP_ATOM(NET_WM_STATE_SKIP_PAGER))
 -                action = self->skip_pager ?
 -                    OBT_PROP_ATOM(NET_WM_STATE_REMOVE) :
 -                    OBT_PROP_ATOM(NET_WM_STATE_ADD);
 +                value = self->skip_pager;
              else if (state == OBT_PROP_ATOM(NET_WM_STATE_HIDDEN))
 -                action = self->iconic ?
 -                    OBT_PROP_ATOM(NET_WM_STATE_REMOVE) :
 -                    OBT_PROP_ATOM(NET_WM_STATE_ADD);
 +                value = self->iconic;
              else if (state == OBT_PROP_ATOM(NET_WM_STATE_FULLSCREEN))
 -                action = fullscreen ?
 -                    OBT_PROP_ATOM(NET_WM_STATE_REMOVE) :
 -                    OBT_PROP_ATOM(NET_WM_STATE_ADD);
 +                value = fullscreen;
              else if (state == OBT_PROP_ATOM(NET_WM_STATE_ABOVE))
 -                action = self->above ? OBT_PROP_ATOM(NET_WM_STATE_REMOVE) :
 -                    OBT_PROP_ATOM(NET_WM_STATE_ADD);
 +                value = self->above;
              else if (state == OBT_PROP_ATOM(NET_WM_STATE_BELOW))
 -                action = self->below ? OBT_PROP_ATOM(NET_WM_STATE_REMOVE) :
 -                    OBT_PROP_ATOM(NET_WM_STATE_ADD);
 +                value = self->below;
              else if (state == OBT_PROP_ATOM(NET_WM_STATE_DEMANDS_ATTENTION))
 -                action = self->demands_attention ?
 -                    OBT_PROP_ATOM(NET_WM_STATE_REMOVE) :
 -                    OBT_PROP_ATOM(NET_WM_STATE_ADD);
 +                value = self->demands_attention;
              else if (state == OBT_PROP_ATOM(OB_WM_STATE_UNDECORATED))
 -                action = undecorated ? OBT_PROP_ATOM(NET_WM_STATE_REMOVE) :
 -                    OBT_PROP_ATOM(NET_WM_STATE_ADD);
 +                value = undecorated;
+             else if (state == OBT_PROP_ATOM(OB_WM_STATE_LOCKED))
 -                action = locked ? OBT_PROP_ATOM(NET_WM_STATE_REMOVE) :
 -                    OBT_PROP_ATOM(NET_WM_STATE_ADD);
++                value = locked;
 +            action = value ? OBT_PROP_ATOM(NET_WM_STATE_REMOVE) :
 +                             OBT_PROP_ATOM(NET_WM_STATE_ADD);
          }
  
 -        if (action == OBT_PROP_ATOM(NET_WM_STATE_ADD)) {
 -            if (state == OBT_PROP_ATOM(NET_WM_STATE_MODAL)) {
 -                modal = TRUE;
 -            } else if (state == OBT_PROP_ATOM(NET_WM_STATE_MAXIMIZED_VERT)) {
 -                max_vert = TRUE;
 -            } else if (state == OBT_PROP_ATOM(NET_WM_STATE_MAXIMIZED_HORZ)) {
 -                max_horz = TRUE;
 -            } else if (state == OBT_PROP_ATOM(NET_WM_STATE_SHADED)) {
 -                shaded = TRUE;
 -            } else if (state == OBT_PROP_ATOM(NET_WM_STATE_SKIP_TASKBAR)) {
 -                self->skip_taskbar = TRUE;
 -            } else if (state == OBT_PROP_ATOM(NET_WM_STATE_SKIP_PAGER)) {
 -                self->skip_pager = TRUE;
 -            } else if (state == OBT_PROP_ATOM(NET_WM_STATE_HIDDEN)) {
 -                iconic = TRUE;
 -            } else if (state == OBT_PROP_ATOM(NET_WM_STATE_FULLSCREEN)) {
 -                fullscreen = TRUE;
 -            } else if (state == OBT_PROP_ATOM(NET_WM_STATE_ABOVE)) {
 -                above = TRUE;
 +        value = action == OBT_PROP_ATOM(NET_WM_STATE_ADD);
 +        if (state == OBT_PROP_ATOM(NET_WM_STATE_MODAL)) {
 +            modal = value;
 +        } else if (state == OBT_PROP_ATOM(NET_WM_STATE_MAXIMIZED_VERT)) {
 +            max_vert = value;
 +        } else if (state == OBT_PROP_ATOM(NET_WM_STATE_MAXIMIZED_HORZ)) {
 +            max_horz = value;
 +        } else if (state == OBT_PROP_ATOM(NET_WM_STATE_SHADED)) {
 +            shaded = value;
 +        } else if (state == OBT_PROP_ATOM(NET_WM_STATE_SKIP_TASKBAR)) {
 +            self->skip_taskbar = value;
 +        } else if (state == OBT_PROP_ATOM(NET_WM_STATE_SKIP_PAGER)) {
 +            self->skip_pager = value;
 +        } else if (state == OBT_PROP_ATOM(NET_WM_STATE_HIDDEN)) {
 +            iconic = value;
 +        } else if (state == OBT_PROP_ATOM(NET_WM_STATE_FULLSCREEN)) {
 +            fullscreen = value;
 +        } else if (state == OBT_PROP_ATOM(NET_WM_STATE_ABOVE)) {
 +            above = value;
 +            /* only unset below when setting above, otherwise you can't get to
 +               the normal layer */
 +            if (value)
                  below = FALSE;
 -            } else if (state == OBT_PROP_ATOM(NET_WM_STATE_BELOW)) {
 +        } else if (state == OBT_PROP_ATOM(NET_WM_STATE_BELOW)) {
 +            /* and vice versa */
 +            if (value)
                  above = FALSE;
 -                below = TRUE;
 -            } else if (state == OBT_PROP_ATOM(NET_WM_STATE_DEMANDS_ATTENTION)){
 -                demands_attention = TRUE;
 -            } else if (state == OBT_PROP_ATOM(OB_WM_STATE_UNDECORATED)) {
 -                undecorated = TRUE;
 -            } else if (state == OBT_PROP_ATOM(OB_WM_STATE_LOCKED)) {
 -                locked = TRUE;
 -            }
 -
 -        } else { /* action == OBT_PROP_ATOM(NET_WM_STATE_REMOVE) */
 -            if (state == OBT_PROP_ATOM(NET_WM_STATE_MODAL)) {
 -                modal = FALSE;
 -            } else if (state == OBT_PROP_ATOM(NET_WM_STATE_MAXIMIZED_VERT)) {
 -                max_vert = FALSE;
 -            } else if (state == OBT_PROP_ATOM(NET_WM_STATE_MAXIMIZED_HORZ)) {
 -                max_horz = FALSE;
 -            } else if (state == OBT_PROP_ATOM(NET_WM_STATE_SHADED)) {
 -                shaded = FALSE;
 -            } else if (state == OBT_PROP_ATOM(NET_WM_STATE_SKIP_TASKBAR)) {
 -                self->skip_taskbar = FALSE;
 -            } else if (state == OBT_PROP_ATOM(NET_WM_STATE_SKIP_PAGER)) {
 -                self->skip_pager = FALSE;
 -            } else if (state == OBT_PROP_ATOM(NET_WM_STATE_HIDDEN)) {
 -                iconic = FALSE;
 -            } else if (state == OBT_PROP_ATOM(NET_WM_STATE_FULLSCREEN)) {
 -                fullscreen = FALSE;
 -            } else if (state == OBT_PROP_ATOM(NET_WM_STATE_ABOVE)) {
 -                above = FALSE;
 -            } else if (state == OBT_PROP_ATOM(NET_WM_STATE_BELOW)) {
 -                below = FALSE;
 -            } else if (state == OBT_PROP_ATOM(NET_WM_STATE_DEMANDS_ATTENTION)){
 -                demands_attention = FALSE;
 -            } else if (state == OBT_PROP_ATOM(OB_WM_STATE_UNDECORATED)) {
 -                undecorated = FALSE;
 -            } else if (state == OBT_PROP_ATOM(OB_WM_STATE_LOCKED)) {
 -                locked = FALSE;
 -            }
 +            below = value;
 +        } else if (state == OBT_PROP_ATOM(NET_WM_STATE_DEMANDS_ATTENTION)){
 +            demands_attention = value;
 +        } else if (state == OBT_PROP_ATOM(OB_WM_STATE_UNDECORATED)) {
 +            undecorated = value;
++        } else if (state == OBT_PROP_ATOM(OB_WM_STATE_LOCKED)) {
++            locked = value;
          }
      }
  
Simple merge
diff --cc openbox/event.c
Simple merge
diff --cc po/POTFILES.in
@@@ -2,7 -2,7 +2,8 @@@
  openbox/actions.c
  openbox/actions/execute.c
  openbox/actions/exit.c
+ openbox/actions/sendkeyevent.c
 +openbox/actions/session.c
  openbox/client.c
  openbox/client_list_combined_menu.c
  openbox/client_list_menu.c