e_win now traps elm_win_activate to avoid conflict with active hint ignore settings
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Mon, 31 Dec 2012 08:20:22 +0000 (08:20 +0000)
committerMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Mon, 31 Dec 2012 08:20:22 +0000 (08:20 +0000)
SVN revision: 81926

ChangeLog
NEWS
src/bin/e_win.c

index 6777f0a..8f6accf 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,9 @@
 
         * Added function to hide all active menus
         * Always hide menus on desklock
+        * e_win now traps elm_win_activate to ensure that internal elm
+          windows don't fail to raise as expected if user has configured
+          E to ignore activate hints
 
 2012-12-29 Mike Blumenkrantz
 
diff --git a/NEWS b/NEWS
index b45ae52..1f8458c 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -39,3 +39,6 @@ Fixes:
     * Fix border(less) style of internal elm tooltip windows
     * Fix incorrect config value clamping for window autoraise delay
     * Always hide menus on desklock
+    * e_win now traps elm_win_activate to ensure that internal elm
+      windows don't fail to raise as expected if user has configured
+      E to ignore activate hints
index 4acd3da..17982fe 100644 (file)
@@ -155,6 +155,17 @@ _elm_win_trap_raise(void *data, Evas_Object *o __UNUSED__)
    return EINA_FALSE;
 }
 
+static Eina_Bool
+_elm_win_trap_activate(void *data, Evas_Object *o __UNUSED__)
+{
+   Elm_Win_Trap_Ctx *ctx = data;
+   EINA_SAFETY_ON_NULL_RETURN_VAL(ctx, EINA_TRUE);
+   if (!ctx->border) return EINA_TRUE;
+   e_border_focus_set(ctx->border, 1, 1);
+   e_border_raise(ctx->border);
+   return EINA_FALSE;
+}
+
 static const Elm_Win_Trap _elm_win_trap = {
   ELM_WIN_TRAP_VERSION,
   _elm_win_trap_add,
@@ -166,7 +177,7 @@ static const Elm_Win_Trap _elm_win_trap = {
   _elm_win_trap_center,
   _elm_win_trap_lower,
   _elm_win_trap_raise,
-  /* activate */ NULL,
+  _elm_win_trap_activate,
   /* alpha_set */ NULL,
   /* aspect_set */ NULL,
   /* avoid_damage_set */ NULL,