Merge branches 'wip/edges', 'mikabox/crap', 'mikabox/lock', 'mikabox/maybe' and ...
authorMikael Magnusson <mikachu@gmail.com>
Thu, 6 Nov 2014 03:50:55 +0000 (04:50 +0100)
committerMikael Magnusson <mikachu@gmail.com>
Thu, 6 Nov 2014 03:50:55 +0000 (04:50 +0100)
Conflicts:
obt/prop.c
openbox/client_list_combined_menu.c
openbox/event.c

14 files changed:
1  2  3  4  5 
Makefile.am
obrender/font.c
obt/prop.c
obt/prop.h
openbox/client.c
openbox/client_list_combined_menu.c
openbox/client_list_menu.c
openbox/client_menu.c
openbox/config.c
openbox/event.c
openbox/menuframe.c
openbox/mouse.c
openbox/openbox.c
openbox/screen.c

diff --cc Makefile.am
Simple merge
diff --cc obrender/font.c
Simple merge
diff --cc obt/prop.c
@@@@@@ -191,6 -191,6 -191,7 -191,6 -192,7 +192,8 @@@@@@ void obt_prop_startup(void
         CREATE_(OB_CONFIG_FILE);
         CREATE_(OB_WM_ACTION_UNDECORATE);
         CREATE_(OB_WM_STATE_UNDECORATED);
++ ++    CREATE_(OB_WM_STATE_LOCKED);
++++     CREATE_(OB_LAST_DESKTOP);
         CREATE_(OB_CONTROL);
         CREATE_(OB_VERSION);
         CREATE_(OB_APP_ROLE);
diff --cc obt/prop.h
@@@@@@ -208,8 -208,8 -208,9 -208,8 -208,9 +208,10 @@@@@@ typedef enum 
     
         /* Openbox specific atoms */
     
++++     OBT_PROP_OB_FOCUS,
         OBT_PROP_OB_WM_ACTION_UNDECORATE,
         OBT_PROP_OB_WM_STATE_UNDECORATED,
++ ++    OBT_PROP_OB_WM_STATE_LOCKED,
         OBT_PROP_OPENBOX_PID, /* this is depreecated in favour of ob_control */
         OBT_PROP_OB_THEME,
         OBT_PROP_OB_CONFIG_FILE,
Simple merge
@@@@@@ -51,9 -51,9 -51,9 -51,15 -51,10 +51,16 @@@@@@ static gboolean self_update(ObMenuFram
     
         menu_clear_entries(menu);
     
--- -    for (desktop = 0; desktop < screen_num_desktops; desktop++) {
+++ +    for (desktop_it = 0; desktop_it < screen_num_desktops; desktop_it++) {
             gboolean empty = TRUE;
             gboolean onlyiconic = TRUE;
++++         gboolean noicons = TRUE;
+++ +        
+++ +        desktop = desktop_it;
+++ +        if (desktop == 0)
+++ +            desktop = screen_desktop;
+++ +        else if (desktop <= screen_desktop)
+++ +            desktop -= 1;
     
             menu_add_separator(menu, SEPARATOR, screen_desktop_names[desktop]);
             for (it = focus_order; it; it = g_list_next(it)) {
Simple merge
Simple merge
Simple merge
diff --cc openbox/event.c
@@@@@@ -1456,15 -1458,15 -1465,10 -1464,15 -1462,17 +1473,17 @@@@@@ static void event_handle_client(ObClien
                     ob_debug_type(OB_DEBUG_APP_BUGS,
                                   "_NET_ACTIVE_WINDOW message for window %s is "
                                   "missing source indication", client->title);
  -              if (!client->locked)
  -                  client_activate(client, FALSE, FALSE, TRUE, TRUE,
  -                                  (e->xclient.data.l[0] == 0 ||
  -                                   e->xclient.data.l[0] == 2));
  +              /* TODO(danakj) This should use
  +                 (e->xclient.data.l[0] == 0 ||
  +                  e->xclient.data.l[0] == 2)
  +                 to determine if a user requested the activation, however GTK+
  +                 applications seem unable to make this distinction ever
  +                 (including panels such as xfce4-panel and gnome-panel).
  +                 So we are left just assuming all activations are from the user.
  +              */
  +              client_activate(client, FALSE, FALSE, TRUE, TRUE, TRUE);
++++         } else if (msgtype == OBT_PROP_ATOM(OB_FOCUS)) {
++++             client_focus(client);
             } else if (msgtype == OBT_PROP_ATOM(NET_WM_MOVERESIZE)) {
                 ob_debug("net_wm_moveresize for 0x%lx direction %d",
                          client->window, e->xclient.data.l[2]);
Simple merge
diff --cc openbox/mouse.c
Simple merge
Simple merge
@@@@@@ -295,8 -294,8 -294,9 -294,8 -294,9 +295,10 @@@@@@ gboolean screen_annex(void
         supported[i++] = OBT_PROP_ATOM(KDE_NET_WM_FRAME_STRUT);
         supported[i++] = OBT_PROP_ATOM(KDE_NET_WM_WINDOW_TYPE_OVERRIDE);
     
++++     supported[i++] = OBT_PROP_ATOM(OB_FOCUS);
         supported[i++] = OBT_PROP_ATOM(OB_WM_ACTION_UNDECORATE);
         supported[i++] = OBT_PROP_ATOM(OB_WM_STATE_UNDECORATED);
++ ++    supported[i++] = OBT_PROP_ATOM(OB_WM_STATE_LOCKED);
         supported[i++] = OBT_PROP_ATOM(OPENBOX_PID);
         supported[i++] = OBT_PROP_ATOM(OB_THEME);
         supported[i++] = OBT_PROP_ATOM(OB_CONFIG_FILE);
@@@@@@ -501,12 -501,11 -502,11 -500,11 -506,12 +510,13 @@@@@@ void screen_resize(void
     
         /* this calls screen_update_areas(), which we need ! */
         dock_configure();
 ++++    edges_configure();
     
----     for (it = client_list; it; it = g_list_next(it)) {
----         client_move_onscreen(it->data, FALSE);
----         client_reconfigure(it->data, FALSE);
----     }
++++     // bug: this is done in screen_update_areas() already
++++ //    for (it = client_list; it; it = g_list_next(it)) {
++++ //        client_move_onscreen(it->data, FALSE);
++++ //        client_reconfigure(it->data, FALSE);
++++ //    }
     }
     
     void screen_set_num_desktops(guint num)