discomfitor pushed a commit to branch master.

commit d95369726b76ecee284990fa77b16dcb97d467ac
Author: Mike Blumenkrantz <[email protected]>
Date:   Thu May 30 11:05:58 2013 +0100

    start a new "hacks" section for border clients to reduce repeated match 
attempts against broken clients
---
 src/bin/e_border.c | 9 +++++----
 src/bin/e_border.h | 5 +++++
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/src/bin/e_border.c b/src/bin/e_border.c
index b03fbba..bfbcf3d 100644
--- a/src/bin/e_border.c
+++ b/src/bin/e_border.c
@@ -4811,8 +4811,7 @@ _e_border_free(E_Border *bd)
    bd->client.icccm.name = NULL;
    if (bd->client.icccm.class)
      {
-        if ((!strcasecmp(bd->client.icccm.class, "vmplayer")) || 
-            (!strcasecmp(bd->client.icccm.class, "vmware")))
+        if (bd->client.hacks.mapping_change)
           e_bindings_mapping_change_enable(EINA_TRUE);
         eina_stringshare_del(bd->client.icccm.class);
         bd->client.icccm.class = NULL;
@@ -7138,8 +7137,10 @@ _e_border_eval0(E_Border *bd)
         pclass = bd->client.icccm.class;
         bd->client.icccm.name = eina_stringshare_add(nname);
         bd->client.icccm.class = eina_stringshare_add(nclass);
-        if ((!e_util_strcasecmp(bd->client.icccm.class, "vmplayer")) || 
-            (!e_util_strcasecmp(bd->client.icccm.class, "vmware")))
+        bd->client.hacks.mapping_change =
+          ((!e_util_strcasecmp(bd->client.icccm.class, "vmplayer")) || 
+           (!e_util_strcasecmp(bd->client.icccm.class, "vmware")));
+        if (bd->client.hacks.mapping_change)
           e_bindings_mapping_change_enable(EINA_FALSE);
         free(nname);
         free(nclass);
diff --git a/src/bin/e_border.h b/src/bin/e_border.h
index 3364d7a..e1aea39 100644
--- a/src/bin/e_border.h
+++ b/src/bin/e_border.h
@@ -201,6 +201,11 @@ struct _E_Border
 
       struct
       {
+         Eina_Bool mapping_change : 1;
+      } hacks;
+
+      struct
+      {
          unsigned char changed : 1;
          unsigned char user_selected : 1;
          Eina_Stringshare *name;

-- 

------------------------------------------------------------------------------
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
Get 100% visibility into your production application - at no cost.
Code-level diagnostics for performance bottlenecks with <2% overhead
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap1

Reply via email to