always re-set xmodmap after changing kbd layout group
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Wed, 12 Dec 2012 13:31:18 +0000 (13:31 +0000)
committerMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Wed, 12 Dec 2012 13:31:18 +0000 (13:31 +0000)
SVN revision: 80761

src/bin/e_deskenv.c
src/bin/e_deskenv.h
src/bin/e_xkb.c

index 4e68a06..f89b21d 100644 (file)
@@ -23,18 +23,7 @@ e_deskenv_init(void)
           }
      }
 
-   // load ~/.Xmodmap
-   // NOTE: one day we should replace this with an e based config + service
-   if (e_config->deskenv.load_xmodmap)
-     {
-        e_user_homedir_concat(buf, sizeof(buf), ".Xmodmap");
-        if (ecore_file_exists(buf))
-          {
-             snprintf(buf2, sizeof(buf2), "xmodmap %s", buf);
-             ecore_exe_run(buf2, NULL);
-          }
-     }
-
+   e_deskenv_xmodmap_run();
    // make gnome apps happy
    // NOTE: one day we should replace this with an e based config + service
    if (e_config->deskenv.load_gnome)
@@ -56,3 +45,16 @@ e_deskenv_shutdown(void)
 {
    return 1;
 }
+
+EAPI void
+e_deskenv_xmodmap_run(void)
+{
+   char buf[PATH_MAX], buf2[PATH_MAX + sizeof("xmodmap ")];
+   // load ~/.Xmodmap
+   // NOTE: one day we should replace this with an e based config + service
+   if (!e_config->deskenv.load_xmodmap) return;
+   e_user_homedir_concat(buf, sizeof(buf), ".Xmodmap");
+   if (!ecore_file_exists(buf)) return;
+   snprintf(buf2, sizeof(buf2), "xmodmap %s", buf);
+   ecore_exe_run(buf2, NULL);
+}
index 737c410..bbab0f4 100644 (file)
@@ -5,6 +5,6 @@
 
 EINTERN int  e_deskenv_init(void);
 EINTERN int  e_deskenv_shutdown(void);
-
+EAPI void e_deskenv_xmodmap_run(void);
 #endif
 #endif
index 34ede79..def7f5a 100644 (file)
@@ -45,6 +45,7 @@ e_xkb_update(int cur_group)
      {
         _e_xkb_cur_group = cur_group;
         ecore_x_xkb_select_group(cur_group);
+        e_deskenv_xmodmap_run();
         _e_xkb_update_event(cur_group);
         return;
      }