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
index 0cecccf4dfa6d5b160a78e515aeca185b2b462f5,0cecccf4dfa6d5b160a78e515aeca185b2b462f5,f1af19ebda84d8b79d095674bbcd78035dcf477a,0cecccf4dfa6d5b160a78e515aeca185b2b462f5,2099706a6361f1fec366cb921583152b096a355d..fad6f9b0706e5c09e9e9342d1c17d04849bca749
@@@@@@ -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
index acb5c956ede42d3c1ca2182de40218e5d071df1c,acb5c956ede42d3c1ca2182de40218e5d071df1c,6260a7a97253360f6700246b85bd3c9acdc8fbb4,acb5c956ede42d3c1ca2182de40218e5d071df1c,62f86bd9dff188155263cc7cf5018b7ffbeac2e4..6909b174d8c4dc3c53cccc94ffdf3a4ba20508f7
@@@@@@ -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
index c26b6fa036f3da35c874d068c07b67e50ee13b07,c26b6fa036f3da35c874d068c07b67e50ee13b07,395d6d08af35f755d724c51e52ea55f679fcd7bd,dfae21ed9a778f75fc1e8331fca0fb8ade50f527,ee57270c5e2c6a7ea24670f2ee1095e86acc51d8..9c98d93ad69921e50116435c72d4cfdd3254a7c3
@@@@@@ -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
index 59fc21c7ccd957b58d51d136c4c9bcdf6ad79161,243f207817723de69646955489f9a59bad0b309f,1488cbff9bfa925a57fbb0fcb963294f17081f33,855ad0ff12cd8dcc0e35c66dc00935fa0a13ae93,9a2e844f33309dd574730de9e64a3aea633cb5e5..fcbe8cdad2817b628aded9cd0c64dd342ef958d1
@@@@@@ -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
index 60f3bf915c4263065325b167a4ec3d6a18460e2d,3b27bbcd214fba2cb0d1923e331f7fc006ab327d,b94ea84951d56b081b1baff9aa8792366a98c73e,e758ada1c5207f2abd82fd2e94351ea61d2d89e5,a6551cfba34562e80dbae4ea8d026ee0c79de14c..bde65c2de177cb2538a489d80b2177bd7a078658
@@@@@@ -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)