raster pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=b7c5fd2a0bcb2e882f351668b8afbd1c2a3c9aa4

commit b7c5fd2a0bcb2e882f351668b8afbd1c2a3c9aa4
Author: Carsten Haitzler (Rasterman) <[email protected]>
Date:   Sun Jan 5 20:35:39 2020 +0000

    pager_plain - remove module and migrate people to just plain pager
    
    let's not keep 2 plager gadgets ... one only - yes. it's mini
    previews. it's easier to maintain this way.
---
 data/config/default/e.src                        |    2 +-
 data/config/standard/e.src                       |    2 +-
 data/config/tiling/e.src                         |    2 +-
 src/bin/e_config.c                               |   17 +
 src/bin/e_config.h                               |    2 +-
 src/bin/e_module.c                               |    1 -
 src/modules/meson.build                          |    1 -
 src/modules/pager_plain/e-module-pager_plain.edj |  Bin 12522 -> 0 bytes
 src/modules/pager_plain/e_mod_config.c           |  520 ----
 src/modules/pager_plain/e_mod_main.c             | 2990 ----------------------
 src/modules/pager_plain/e_mod_main.h             |   63 -
 src/modules/pager_plain/meson.build              |    5 -
 src/modules/pager_plain/module.desktop           |   35 -
 13 files changed, 21 insertions(+), 3619 deletions(-)

diff --git a/data/config/default/e.src b/data/config/default/e.src
index a017effa9..c5ae0fe59 100644
--- a/data/config/default/e.src
+++ b/data/config/default/e.src
@@ -1,5 +1,5 @@
 group "E_Config" struct {
-  value "config_version" int: 1000029;
+  value "config_version" int: 1000030;
   value "config_type" uint: 0; // this profile seems to just be super 
minimalist
   value "show_splash" int: 0;
   value "desktop_default_name" string: "%i-%i";
diff --git a/data/config/standard/e.src b/data/config/standard/e.src
index bc9fc5dad..8f2a0243f 100644
--- a/data/config/standard/e.src
+++ b/data/config/standard/e.src
@@ -1,5 +1,5 @@
 group "E_Config" struct {
-    value "config_version" int: 1000029;
+    value "config_version" int: 1000030;
     value "config_type" uint: 3;
     value "show_splash" int: 1;
     value "desktop_default_name" string: "%i-%i";
diff --git a/data/config/tiling/e.src b/data/config/tiling/e.src
index 2d81e5a6d..41ab40264 100644
--- a/data/config/tiling/e.src
+++ b/data/config/tiling/e.src
@@ -1,5 +1,5 @@
 group "E_Config" struct {
-    value "config_version" int: 1000029;
+    value "config_version" int: 1000030;
     value "config_type" uint: 3;
     value "show_splash" int: 1;
     value "desktop_default_name" string: "%i-%i";
diff --git a/src/bin/e_config.c b/src/bin/e_config.c
index 00fe41138..d1cbaecf3 100644
--- a/src/bin/e_config.c
+++ b/src/bin/e_config.c
@@ -1601,6 +1601,23 @@ e_config_load(void)
                  }
                e_config_save_queue();
             }
+          CONFIG_VERSION_CHECK(30)
+            {
+               Eina_List *l;
+               E_Config_Module *em;
+
+               CONFIG_VERSION_UPDATE_INFO(30);
+               EINA_LIST_FOREACH(e_config->modules, l, em)
+                 {
+                    if (!em->enabled) continue;
+                    if (!em->name) continue;
+                    if (eina_streq(em->name, "pager_plain"))
+                      {
+                         eina_stringshare_replace(&(em->name), "pager");
+                      }
+                 }
+               e_config_save_queue();
+            }
      }
    elm_config_profile_set(_e_config_profile);
    if (!e_config->remember_internal_fm_windows)
diff --git a/src/bin/e_config.h b/src/bin/e_config.h
index 3eeb395fb..7bb7711a0 100644
--- a/src/bin/e_config.h
+++ b/src/bin/e_config.h
@@ -46,7 +46,7 @@ typedef enum
 /* increment this whenever a new set of config values are added but the users
  * config doesn't need to be wiped - simply new values need to be put in
  */
-#define E_CONFIG_FILE_GENERATION 29
+#define E_CONFIG_FILE_GENERATION 30
 #define E_CONFIG_FILE_VERSION    ((E_CONFIG_FILE_EPOCH * 1000000) + 
E_CONFIG_FILE_GENERATION)
 
 #define E_CONFIG_BINDINGS_VERSION 0 // DO NOT INCREMENT UNLESS YOU WANT TO 
WIPE ALL BINDINGS!!!!!
diff --git a/src/bin/e_module.c b/src/bin/e_module.c
index 548697abc..af5cf1f15 100644
--- a/src/bin/e_module.c
+++ b/src/bin/e_module.c
@@ -759,7 +759,6 @@ _e_module_whitelist_check(void)
       "notification",
       "ofono",
       "pager",
-      "pager_plain",
       "quickaccess",
       "shot",
       "start",
diff --git a/src/modules/meson.build b/src/modules/meson.build
index a244bd320..1ca09b64b 100644
--- a/src/modules/meson.build
+++ b/src/modules/meson.build
@@ -8,7 +8,6 @@ mods = [
 # standard run of the mill modules with cion and desktop
   'ibar',
   'pager',
-  'pager_plain',
   'temperature',
   'mixer',
   'notification',
diff --git a/src/modules/pager_plain/e-module-pager_plain.edj 
b/src/modules/pager_plain/e-module-pager_plain.edj
deleted file mode 100644
index 75aa3dc0b..000000000
Binary files a/src/modules/pager_plain/e-module-pager_plain.edj and /dev/null 
differ
diff --git a/src/modules/pager_plain/e_mod_config.c 
b/src/modules/pager_plain/e_mod_config.c
deleted file mode 100644
index f056d9b30..000000000
--- a/src/modules/pager_plain/e_mod_config.c
+++ /dev/null
@@ -1,520 +0,0 @@
-#include "e.h"
-#include "e_mod_main.h"
-
-#define BUTTON_DRAG    0
-#define BUTTON_NOPLACE 1
-#define BUTTON_DESK    2
-
-struct _E_Config_Dialog_Data
-{
-   struct
-   {
-      int    show, urgent_show, urgent_stick, urgent_focus;
-      double speed, urgent_speed;
-      int    height, act_height;
-   } popup;
-   struct
-   {
-      unsigned int drag, noplace, desk;
-   } btn;
-   struct
-   {
-      Ecore_X_Window bind_win;
-      E_Grab_Dialog  *dia;
-      Eina_List     *hdls;
-      int            btn;
-   } grab;
-   struct
-   {
-      Evas_Object *ob1, *ob2, *ob3;
-      Eina_List   *popup_list, *urgent_list;
-   } gui;
-   int drag_resist, flip_desk, show_desk_names, live_preview;
-   E_Config_Dialog *cfd;
-};
-
-/* local function prototypes */
-static void        *_create_data(E_Config_Dialog *cfd);
-static void         _fill_data(E_Config_Dialog_Data *cfdata);
-static void         _free_data(E_Config_Dialog *cfd EINA_UNUSED, 
E_Config_Dialog_Data *cfdata);
-static Evas_Object *_basic_create(E_Config_Dialog *cfd EINA_UNUSED, Evas 
*evas, E_Config_Dialog_Data *cfdata);
-static int          _basic_apply(E_Config_Dialog *cfd EINA_UNUSED, 
E_Config_Dialog_Data *cfdata);
-static int          _basic_check_changed(E_Config_Dialog *cfd EINA_UNUSED, 
E_Config_Dialog_Data *cfdata);
-static Evas_Object *_adv_create(E_Config_Dialog *cfd EINA_UNUSED, Evas *evas, 
E_Config_Dialog_Data *cfdata);
-static int          _adv_apply(E_Config_Dialog *cfd EINA_UNUSED, 
E_Config_Dialog_Data *cfdata);
-static int          _adv_check_changed(E_Config_Dialog *cfd EINA_UNUSED, 
E_Config_Dialog_Data *cfdata);
-static void         _update_btns(E_Config_Dialog_Data *cfdata);
-static void         _update_btn(E_Config_Dialog_Data *cfdata, Evas_Object 
*button, const int mouse_button);
-static void         _grab_window_show(void *data1, void *data2);
-static Eina_Bool    _grab_cb_mouse_down(void *data, int type, void *event);
-static Eina_Bool    _grab_cb_key_down(void *data, int type, void *event);
-static void         _cb_disable_check_list(void *data, Evas_Object *obj);
-
-EINTERN void
-_config_pager_module(Config_Item *ci)
-{
-   E_Config_Dialog *cfd;
-   E_Config_Dialog_View *v;
-   char buff[PATH_MAX];
-
-   v = E_NEW(E_Config_Dialog_View, 1);
-   if (!v) return;
-
-   v->create_cfdata = _create_data;
-   v->free_cfdata = _free_data;
-   v->basic.create_widgets = _basic_create;
-   v->basic.apply_cfdata = _basic_apply;
-   v->basic.check_changed = _basic_check_changed;
-   v->advanced.create_widgets = _adv_create;
-   v->advanced.apply_cfdata = _adv_apply;
-   v->advanced.check_changed = _adv_check_changed;
-
-   snprintf(buff, sizeof(buff), "%s/e-module-pager-plain.edj",
-            pager_config->module->dir);
-   cfd = e_config_dialog_new(NULL, _("Pager Settings"), "E",
-                             "_e_mod_pager_config_dialog", buff, 0, v, ci);
-   pager_config->config_dialog = cfd;
-}
-
-/* local function prototypes */
-static void *
-_create_data(E_Config_Dialog *cfd EINA_UNUSED)
-{
-   E_Config_Dialog_Data *cfdata;
-
-   cfdata = E_NEW(E_Config_Dialog_Data, 1);
-   _fill_data(cfdata);
-   return cfdata;
-}
-
-static void
-_fill_data(E_Config_Dialog_Data *cfdata)
-{
-   cfdata->popup.show = pager_config->popup;
-   cfdata->popup.speed = pager_config->popup_speed;
-   cfdata->popup.urgent_show = pager_config->popup_urgent;
-   cfdata->popup.urgent_stick = pager_config->popup_urgent_stick;
-   cfdata->popup.urgent_focus = pager_config->popup_urgent_focus;
-   cfdata->popup.urgent_speed = pager_config->popup_urgent_speed;
-   cfdata->popup.height = pager_config->popup_height;
-   cfdata->popup.act_height = pager_config->popup_act_height;
-   cfdata->drag_resist = pager_config->drag_resist;
-   cfdata->btn.drag = pager_config->btn_drag;
-   cfdata->btn.noplace = pager_config->btn_noplace;
-   cfdata->btn.desk = pager_config->btn_desk;
-   cfdata->flip_desk = pager_config->flip_desk;
-   cfdata->live_preview = !pager_config->disable_live_preview;
-   cfdata->show_desk_names = pager_config->show_desk_names;
-}
-
-static void
-_free_data(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfdata)
-{
-   cfdata->gui.popup_list = eina_list_free(cfdata->gui.popup_list);
-   cfdata->gui.urgent_list = eina_list_free(cfdata->gui.urgent_list);
-   pager_config->config_dialog = NULL;
-   E_FREE(cfdata);
-}
-
-static Evas_Object *
-_basic_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
-{
-   Evas_Object *ol, *of, *ow;
-
-   e_dialog_resizable_set(cfd->dia, 1);
-   cfdata->cfd = cfd;
-   ol = e_widget_list_add(evas, 0, 0);
-
-   of = e_widget_framelist_add(evas, _("General"), 0);
-   ow = e_widget_check_add(evas, _("Flip desktop on mouse wheel"),
-                           &(cfdata->flip_desk));
-   e_widget_framelist_object_append(of, ow);
-   ow = e_widget_check_add(evas, _("Always show desktop names"),
-                           &(cfdata->show_desk_names));
-   e_widget_framelist_object_append(of, ow);
-   ow = e_widget_check_add(evas, _("Live preview"),
-                           &(cfdata->live_preview));
-   e_widget_framelist_object_append(of, ow);
-   e_widget_list_object_append(ol, of, 1, 0, 0.5);
-
-   of = e_widget_framelist_add(evas, _("Popup"), 0);
-   ow = e_widget_check_add(evas, _("Show popup on desktop change"),
-                           &(cfdata->popup.show));
-   e_widget_framelist_object_append(of, ow);
-   ow = e_widget_check_add(evas, _("Show popup for urgent windows"),
-                           &(cfdata->popup.urgent_show));
-   e_widget_framelist_object_append(of, ow);
-   e_widget_list_object_append(ol, of, 1, 0, 0.5);
-
-   return ol;
-}
-
-static int
-_basic_apply(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfdata)
-{
-   pager_config->popup = cfdata->popup.show;
-   pager_config->flip_desk = cfdata->flip_desk;
-   pager_config->disable_live_preview = !cfdata->live_preview;
-   pager_config->show_desk_names = cfdata->show_desk_names;
-   pager_config->popup_urgent = cfdata->popup.urgent_show;
-   _pager_cb_config_updated();
-   e_config_save_queue();
-   return 1;
-}
-
-static int
-_basic_check_changed(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data 
*cfdata)
-{
-   if ((int)pager_config->popup != cfdata->popup.show) return 1;
-   if ((int)pager_config->flip_desk != cfdata->flip_desk) return 1;
-   if ((int)pager_config->disable_live_preview != !cfdata->live_preview) 
return 1;
-   if ((int)pager_config->show_desk_names != cfdata->show_desk_names) return 1;
-   if ((int)pager_config->popup_urgent != cfdata->popup.urgent_show) return 1;
-
-   return 0;
-}
-
-static Evas_Object *
-_adv_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
-{
-   Evas_Object *otb, *ol, *ow;
-   Evas_Object *pc, *uc;
-
-   e_dialog_resizable_set(cfd->dia, 1);
-   cfdata->cfd = cfd;
-   otb = e_widget_toolbook_add(evas, (48 * e_scale), (48 * e_scale));
-
-   /* General Page */
-   ol = e_widget_list_add(evas, 0, 0);
-   ow = e_widget_check_add(evas, _("Flip desktop on mouse wheel"),
-                           &(cfdata->flip_desk));
-   e_widget_list_object_append(ol, ow, 1, 0, 0.5);
-   ow = e_widget_check_add(evas, _("Always show desktop names"),
-                           &(cfdata->show_desk_names));
-   e_widget_list_object_append(ol, ow, 1, 0, 0.5);
-   ow = e_widget_check_add(evas, _("Live preview"),
-                           &(cfdata->live_preview));
-   e_widget_list_object_append(ol, ow, 1, 0, 0.5);
-   ow = e_widget_label_add(evas, _("Resistance to dragging"));
-   e_widget_list_object_append(ol, ow, 1, 0, 0.5);
-   ow = e_widget_slider_add(evas, 1, 0, _("%.0f pixels"), 0.0, 10.0, 1.0, 0, 
NULL,
-                            &(cfdata->drag_resist), 100);
-   e_widget_list_object_append(ol, ow, 1, 0, 0.5);
-
-#if 0
-   ow = e_widget_label_add(evas, _("Select and Slide button"));
-   e_widget_list_object_append(ol, ow, 1, 0, 0.5);
-   ow = e_widget_button_add(evas, _("Click to set"), NULL,
-                            _grab_window_show, (void *)BUTTON_DRAG, cfdata);
-   cfdata->gui.ob1 = ow;
-   e_widget_list_object_append(ol, ow, 1, 0, 0.5);
-#endif
-
-   ow = e_widget_label_add(evas, _("Drag and Drop button"));
-   e_widget_list_object_append(ol, ow, 1, 0, 0.5);
-   ow = e_widget_button_add(evas, _("Click to set"), NULL,
-                            _grab_window_show, (void *)BUTTON_NOPLACE, cfdata);
-   cfdata->gui.ob2 = ow;
-   e_widget_list_object_append(ol, ow, 1, 0, 0.5);
-   ow = e_widget_label_add(evas, _("Drag whole desktop"));
-   e_widget_list_object_append(ol, ow, 1, 0, 0.5);
-   ow = e_widget_button_add(evas, _("Click to set"), NULL,
-                            _grab_window_show, (void *)BUTTON_DESK, cfdata);
-   cfdata->gui.ob3 = ow;
-   e_widget_list_object_append(ol, ow, 1, 0, 0.5);
-   _update_btns(cfdata);
-   e_widget_toolbook_page_append(otb, NULL, _("General"), ol, 1, 0, 1, 0,
-                                 0.5, 0.0);
-
-   /* Popup Page */
-   ol = e_widget_list_add(evas, 0, 0);
-   pc = e_widget_check_add(evas, _("Show popup on desktop change"),
-                           &(cfdata->popup.show));
-   e_widget_list_object_append(ol, pc, 1, 0, 0.5);
-
-   ow = e_widget_label_add(evas, _("Popup pager height"));
-   cfdata->gui.popup_list = eina_list_append(cfdata->gui.popup_list, ow);
-   e_widget_disabled_set(ow, !cfdata->popup.show);
-   e_widget_list_object_append(ol, ow, 1, 0, 0.5);
-   ow = e_widget_slider_add(evas, 1, 0, _("%.0f pixels"), 20.0, 200.0, 1.0, 0, 
NULL,
-                            &(cfdata->popup.height), 100);
-   cfdata->gui.popup_list = eina_list_append(cfdata->gui.popup_list, ow);
-   e_widget_disabled_set(ow, !cfdata->popup.show);
-   e_widget_list_object_append(ol, ow, 1, 0, 0.5);
-
-   ow = e_widget_label_add(evas, _("Popup duration"));
-   cfdata->gui.popup_list = eina_list_append(cfdata->gui.popup_list, ow);
-   e_widget_disabled_set(ow, !cfdata->popup.show);
-   e_widget_list_object_append(ol, ow, 1, 0, 0.5);
-   ow = e_widget_slider_add(evas, 1, 0, _("%1.1f seconds"), 0.1, 10.0, 0.1, 0,
-                            &(cfdata->popup.speed), NULL, 100);
-   cfdata->gui.popup_list = eina_list_append(cfdata->gui.popup_list, ow);
-   e_widget_disabled_set(ow, !cfdata->popup.show);
-   e_widget_list_object_append(ol, ow, 1, 0, 0.5);
-   e_widget_on_change_hook_set(pc, _cb_disable_check_list,
-                               cfdata->gui.popup_list);
-   ow = e_widget_label_add(evas, _("Pager action popup height"));
-   e_widget_list_object_append(ol, ow, 1, 0, 0.5);
-   ow = e_widget_slider_add(evas, 1, 0, _("%.0f pixels"), 20.0, 200.0, 1.0, 0, 
NULL,
-                            &(cfdata->popup.act_height), 100);
-   e_widget_list_object_append(ol, ow, 1, 0, 0.5);
-   e_widget_toolbook_page_append(otb, NULL, _("Popup"), ol, 1, 0, 1, 0,
-                                 0.5, 0.0);
-
-   /* Urgent Page */
-   ol = e_widget_list_add(evas, 0, 0);
-   uc = e_widget_check_add(evas, _("Show popup for urgent window"),
-                           &(cfdata->popup.urgent_show));
-   e_widget_list_object_append(ol, uc, 1, 0, 0.5);
-
-   ow = e_widget_check_add(evas, _("Urgent popup sticks on screen"),
-                           &(cfdata->popup.urgent_stick));
-   cfdata->gui.urgent_list = eina_list_append(cfdata->gui.urgent_list, ow);
-   e_widget_disabled_set(ow, !cfdata->popup.urgent_show);
-   e_widget_list_object_append(ol, ow, 1, 0, 0.5);
-
-   ow = e_widget_check_add(evas, _("Show popup for focused windows"),
-                           &(cfdata->popup.urgent_focus));
-   cfdata->gui.urgent_list = eina_list_append(cfdata->gui.urgent_list, ow);
-   e_widget_disabled_set(ow, !cfdata->popup.urgent_show);
-   e_widget_list_object_append(ol, ow, 1, 0, 0.5);
-
-   ow = e_widget_label_add(evas, _("Urgent popup duration"));
-   cfdata->gui.urgent_list = eina_list_append(cfdata->gui.urgent_list, ow);
-   e_widget_disabled_set(ow, !cfdata->popup.urgent_show);
-   e_widget_list_object_append(ol, ow, 1, 0, 0.5);
-   ow = e_widget_slider_add(evas, 1, 0, _("%1.1f seconds"), 0.1, 10.0, 0.1, 0,
-                            &(cfdata->popup.urgent_speed), NULL, 100);
-   cfdata->gui.urgent_list = eina_list_append(cfdata->gui.urgent_list, ow);
-   e_widget_disabled_set(ow, !cfdata->popup.urgent_show);
-   e_widget_list_object_append(ol, ow, 1, 0, 0.5);
-   e_widget_on_change_hook_set(uc, _cb_disable_check_list,
-                               cfdata->gui.urgent_list);
-   e_widget_toolbook_page_append(otb, NULL, _("Urgent Windows"), ol,
-                                 1, 0, 1, 0, 0.5, 0.0);
-
-   e_widget_toolbook_page_show(otb, 0);
-   return otb;
-}
-
-static int
-_adv_apply(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfdata)
-{
-   pager_config->popup = cfdata->popup.show;
-   pager_config->popup_speed = cfdata->popup.speed;
-   pager_config->flip_desk = cfdata->flip_desk;
-   pager_config->disable_live_preview = !cfdata->live_preview;
-   pager_config->popup_urgent = cfdata->popup.urgent_show;
-   pager_config->popup_urgent_stick = cfdata->popup.urgent_stick;
-   pager_config->popup_urgent_focus = cfdata->popup.urgent_focus;
-   pager_config->popup_urgent_speed = cfdata->popup.urgent_speed;
-   pager_config->show_desk_names = cfdata->show_desk_names;
-   pager_config->popup_height = cfdata->popup.height;
-   pager_config->popup_act_height = cfdata->popup.act_height;
-   pager_config->drag_resist = cfdata->drag_resist;
-   pager_config->btn_drag = cfdata->btn.drag;
-   pager_config->btn_noplace = cfdata->btn.noplace;
-   pager_config->btn_desk = cfdata->btn.desk;
-   _pager_cb_config_updated();
-   e_config_save_queue();
-   return 1;
-}
-
-static int
-_adv_check_changed(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data 
*cfdata)
-{
-   if ((int)pager_config->popup != cfdata->popup.show) return 1;
-   if (!EINA_DBL_EQ(pager_config->popup_speed, cfdata->popup.speed)) return 1;
-   if ((int)pager_config->flip_desk != cfdata->flip_desk) return 1;
-   if ((int)pager_config->disable_live_preview != !cfdata->live_preview) 
return 1;
-   if ((int)pager_config->popup_urgent != cfdata->popup.urgent_show) return 1;
-   if ((int)pager_config->popup_urgent_stick != cfdata->popup.urgent_stick)
-     return 1;
-   if ((int)pager_config->popup_urgent_focus != cfdata->popup.urgent_focus)
-     return 1;
-   if (!EINA_DBL_EQ(pager_config->popup_urgent_speed, 
cfdata->popup.urgent_speed))
-     return 1;
-   if ((int)pager_config->show_desk_names != cfdata->show_desk_names) return 1;
-   if (pager_config->popup_height != cfdata->popup.height) return 1;
-   if (pager_config->popup_act_height != cfdata->popup.act_height) return 1;
-   if ((int)pager_config->drag_resist != cfdata->drag_resist) return 1;
-   if (pager_config->btn_drag != cfdata->btn.drag) return 1;
-   if (pager_config->btn_noplace != cfdata->btn.noplace) return 1;
-   if (pager_config->btn_desk != cfdata->btn.desk) return 1;
-
-   return 0;
-}
-
-static void
-_update_btns(E_Config_Dialog_Data *cfdata)
-{
-#if 0
-   _update_btn(cfdata, cfdata->gui.ob1, cfdata->btn.drag);
-#endif
-
-   _update_btn(cfdata, cfdata->gui.ob2, cfdata->btn.noplace);
-   _update_btn(cfdata, cfdata->gui.ob3, cfdata->btn.desk);
-}
-
-static void
-_update_btn(E_Config_Dialog_Data *cfdata EINA_UNUSED, Evas_Object *button, 
const int mouse_button)
-{
-   char lbl[256];
-   char *icon = NULL;
-   Evas_Object *ic = NULL;
-
-   switch (mouse_button)
-     {
-      case 0:
-        snprintf(lbl, sizeof(lbl), _("Click to set"));
-        break;
-      case 1:
-        if (e_config->mouse_hand == E_MOUSE_HAND_RIGHT)
-          {
-             snprintf(lbl, sizeof(lbl), _("Left button"));
-             icon = "preferences-desktop-mouse-left";
-          }
-        else if (e_config->mouse_hand == E_MOUSE_HAND_LEFT)
-          {
-             snprintf(lbl, sizeof(lbl), _("Right button"));
-             icon = "preferences-desktop-mouse-right";
-          }
-        else
-          {
-             snprintf(lbl, sizeof(lbl), _("Button %i"), mouse_button);
-             icon = "preferences-desktop-mouse-extra";
-          }
-        break;
-      case 2:
-        snprintf(lbl, sizeof(lbl), _("Middle button"));
-        icon = "preferences-desktop-mouse-middle";
-        break;
-      case 3:
-        if (e_config->mouse_hand == E_MOUSE_HAND_RIGHT)
-          {
-             snprintf(lbl, sizeof(lbl), _("Right button"));
-             icon = "preferences-desktop-mouse-right";
-          }
-        else if (e_config->mouse_hand == E_MOUSE_HAND_LEFT)
-          {
-             snprintf(lbl, sizeof(lbl), _("Left button"));
-             icon = "preferences-desktop-mouse-left";
-          }
-        else
-          {
-             snprintf(lbl, sizeof(lbl), _("Button %i"), mouse_button);
-             icon = "preferences-desktop-mouse-extra";
-          }
-        break;
-      default:
-        snprintf(lbl, sizeof(lbl), _("Button %i"), mouse_button);
-        icon = "preferences-desktop-mouse-extra";
-        break;
-     }
-   e_widget_button_label_set(button, lbl);
-   if (icon)
-     {
-        ic = e_icon_add(evas_object_evas_get(button));
-        e_util_icon_theme_set(ic, icon);
-     }
-   e_widget_button_icon_set(button, ic);
-}
-
-static void
-_grab_window_del(void *data)
-{
-   E_Config_Dialog_Data *cfdata;
-
-   cfdata = e_object_data_get(data);
-   if (!cfdata) return;
-   cfdata->grab.dia = NULL;
-   _update_btns(cfdata);
-}
-
-static void
-_grab_window_show(void *data1, void *data2)
-{
-   E_Config_Dialog_Data *cfdata;
-
-   if (!(cfdata = data2)) return;
-
-   cfdata->grab.btn = 0;
-   if ((long)data1 == BUTTON_DRAG)
-     cfdata->grab.btn = 1;
-   else if ((long)data1 == BUTTON_NOPLACE)
-     cfdata->grab.btn = 2;
-
-   cfdata->grab.dia = e_grab_dialog_show(cfdata->cfd->dia->win, EINA_TRUE, 
_grab_cb_key_down, _grab_cb_mouse_down, NULL, cfdata);
-   e_object_data_set(E_OBJECT(cfdata->grab.dia), cfdata);
-   e_object_del_attach_func_set(E_OBJECT(cfdata->grab.dia), _grab_window_del);
-}
-
-static Eina_Bool
-_grab_cb_mouse_down(void *data, EINA_UNUSED int type, void *event)
-{
-   E_Config_Dialog_Data *cfdata = NULL;
-   Ecore_Event_Mouse_Button *ev;
-
-   ev = event;
-   if (!(cfdata = data)) return ECORE_CALLBACK_PASS_ON;
-   if (ev->buttons == 3)
-     {
-        e_util_dialog_show(_("Attention"),
-                           _("You cannot use the right mouse button in 
the<ps/>"
-                             "shelf for this as it is already taken by 
internal<ps/>"
-                             "code for context menus.<ps/>"
-                             "This button only works in the popup."));
-     }
-   else
-     {
-        if (ev->buttons == cfdata->btn.drag)
-          cfdata->btn.drag = 0;
-        else if (ev->buttons == cfdata->btn.noplace)
-          cfdata->btn.noplace = 0;
-        else if (ev->buttons == cfdata->btn.desk)
-          cfdata->btn.desk = 0;
-
-        if (cfdata->grab.btn == 1)
-          cfdata->btn.drag = ev->buttons;
-        else if (cfdata->grab.btn == 2)
-          cfdata->btn.noplace = ev->buttons;
-        else
-          cfdata->btn.desk = ev->buttons;
-     }
-
-   e_object_del(E_OBJECT(cfdata->grab.dia));
-   return ECORE_CALLBACK_PASS_ON;
-}
-
-static Eina_Bool
-_grab_cb_key_down(void *data, EINA_UNUSED int type, void *event)
-{
-   E_Config_Dialog_Data *cfdata = NULL;
-   Ecore_Event_Key *ev;
-
-   ev = event;
-   if (!(cfdata = data)) return ECORE_CALLBACK_PASS_ON;
-   if (!strcmp(ev->key, "Delete"))
-     {
-        if (cfdata->grab.btn == 1)
-          cfdata->btn.drag = 0;
-        else if (cfdata->grab.btn == 2)
-          cfdata->btn.noplace = 0;
-        else
-          cfdata->btn.desk = 0;
-     }
-   e_object_del(E_OBJECT(cfdata->grab.dia));
-   return ECORE_CALLBACK_PASS_ON;
-}
-
-static void
-_cb_disable_check_list(void *data, Evas_Object *obj)
-{
-   Eina_List *list = (Eina_List *)data;
-   Eina_List *l;
-   Evas_Object *o;
-
-   EINA_LIST_FOREACH(list, l, o)
-     e_widget_disabled_set(o, !e_widget_check_checked_get(obj));
-}
-
diff --git a/src/modules/pager_plain/e_mod_main.c 
b/src/modules/pager_plain/e_mod_main.c
deleted file mode 100644
index 2d14edc39..000000000
--- a/src/modules/pager_plain/e_mod_main.c
+++ /dev/null
@@ -1,2990 +0,0 @@
-#include "e.h"
-#include "e_mod_main.h"
-
-/* gadcon requirements */
-static E_Gadcon_Client *_gc_init(E_Gadcon *gc, const char *name, const char 
*id, const char *style);
-static void             _gc_shutdown(E_Gadcon_Client *gcc);
-static void             _gc_orient(E_Gadcon_Client *gcc, E_Gadcon_Orient 
orient EINA_UNUSED);
-static const char      *_gc_label(const E_Gadcon_Client_Class *client_class 
EINA_UNUSED);
-static Evas_Object     *_gc_icon(const E_Gadcon_Client_Class *client_class 
EINA_UNUSED, Evas *evas);
-static const char      *_gc_id_new(const E_Gadcon_Client_Class *client_class 
EINA_UNUSED);
-
-/* and actually define the gadcon class that this module provides (just 1) */
-static const E_Gadcon_Client_Class _gadcon_class =
-{
-   GADCON_CLIENT_CLASS_VERSION,
-   "pager",
-   {
-      _gc_init, _gc_shutdown, _gc_orient, _gc_label, _gc_icon, _gc_id_new, 
NULL,
-      e_gadcon_site_is_not_toolbar
-   },
-   E_GADCON_CLIENT_STYLE_INSET
-};
-
-/* actual module specifics */
-typedef struct _Instance    Instance;
-typedef struct _Pager       Pager;
-typedef struct _Pager_Desk  Pager_Desk;
-typedef struct _Pager_Win   Pager_Win;
-typedef struct _Pager_Popup Pager_Popup;
-
-struct _Instance
-{
-   E_Gadcon_Client *gcc;
-   Evas_Object     *o_pager; /* table */
-   Pager           *pager;
-};
-
-struct _Pager
-{
-   Instance       *inst;
-   E_Drop_Handler *drop_handler;
-   Pager_Popup    *popup;
-   Evas_Object    *o_table;
-   E_Zone         *zone;
-   int             xnum, ynum;
-   Eina_List      *desks;
-   Pager_Desk     *active_pd;
-   unsigned char   dragging E_BITFIELD;
-   unsigned char   just_dragged E_BITFIELD;
-   Evas_Coord      dnd_x, dnd_y;
-   Pager_Desk     *active_drop_pd;
-   Eina_Bool invert E_BITFIELD;
-};
-
-struct _Pager_Desk
-{
-   Pager       *pager;
-   E_Desk      *desk;
-   Eina_List   *wins;
-   Evas_Object *o_desk;
-   Evas_Object *o_layout;
-   Evas_Object *o_bg;
-   int          xpos, ypos, urgent;
-   int          current E_BITFIELD;
-   struct
-   {
-      Pager        *from_pager;
-      unsigned char in_pager E_BITFIELD;
-      unsigned char start E_BITFIELD;
-      int           x, y, dx, dy, button;
-   } drag;
-};
-
-struct _Pager_Win
-{
-   E_Client     *client;
-   Pager_Desk   *desk;
-   Evas_Object  *o_window;
-   Evas_Object  *o_icon;
-   unsigned char skip_winlist E_BITFIELD;
-   struct
-   {
-      Pager        *from_pager;
-      unsigned char start E_BITFIELD;
-      unsigned char in_pager E_BITFIELD;
-      unsigned char desktop  E_BITFIELD;
-      int           x, y, dx, dy, button;
-   } drag;
-};
-
-struct _Pager_Popup
-{
-   Evas_Object  *popup;
-   Pager        *pager;
-   Evas_Object  *o_bg;
-   Ecore_Timer  *timer;
-   unsigned char urgent E_BITFIELD;
-};
-
-static void             _pager_desk_livethumb_setup(Pager_Desk *pd);
-static void             _pager_cb_obj_moveresize(void *data, Evas *e 
EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED);
-static void             _button_cb_mouse_down(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_UNUSED, void *event_info);
-static void             _pager_inst_cb_menu_configure(void *data EINA_UNUSED, 
E_Menu *m EINA_UNUSED, E_Menu_Item *mi EINA_UNUSED);
-static void             _pager_inst_cb_menu_virtual_desktops_dialog(void 
*data, E_Menu *m EINA_UNUSED, E_Menu_Item *mi EINA_UNUSED);
-static void             _pager_instance_drop_zone_recalc(Instance *inst);
-static Eina_Bool        _pager_cb_event_bg_update(void *data EINA_UNUSED, int 
type EINA_UNUSED, void *event);
-static Eina_Bool        _pager_cb_event_client_resize(void *data EINA_UNUSED, 
int type EINA_UNUSED, void *event);
-static Eina_Bool        _pager_cb_event_client_move(void *data EINA_UNUSED, 
int type EINA_UNUSED, void *event);
-static Eina_Bool        _pager_cb_event_client_add(void *data EINA_UNUSED, int 
type EINA_UNUSED, void *event);
-static Eina_Bool        _pager_cb_event_client_remove(void *data EINA_UNUSED, 
int type EINA_UNUSED, void *event);
-static Eina_Bool        _pager_cb_event_client_iconify(void *data EINA_UNUSED, 
int type EINA_UNUSED, void *event);
-static Eina_Bool        _pager_cb_event_client_uniconify(void *data 
EINA_UNUSED, int type EINA_UNUSED, void *event);
-static Eina_Bool        _pager_cb_event_client_stick(void *data EINA_UNUSED, 
int type EINA_UNUSED, void *event);
-static Eina_Bool        _pager_cb_event_client_unstick(void *data EINA_UNUSED, 
int type EINA_UNUSED, void *event);
-static Eina_Bool        _pager_cb_event_client_desk_set(void *data 
EINA_UNUSED, int type EINA_UNUSED, void *event);
-static Eina_Bool        _pager_cb_event_client_stack(void *data EINA_UNUSED, 
int type EINA_UNUSED, void *event);
-static Eina_Bool        _pager_cb_event_client_icon_change(void *data 
EINA_UNUSED, int type EINA_UNUSED, void *event);
-static Eina_Bool        _pager_cb_event_client_urgent_change(void *data 
EINA_UNUSED, int type EINA_UNUSED, void *event);
-static Eina_Bool        _pager_cb_event_client_focus_in(void *data 
EINA_UNUSED, int type EINA_UNUSED, void *event);
-static Eina_Bool        _pager_cb_event_client_focus_out(void *data 
EINA_UNUSED, int type EINA_UNUSED, void *event);
-static Eina_Bool        _pager_cb_event_client_property(void *data 
EINA_UNUSED, int type EINA_UNUSED, void *event);
-static Eina_Bool        _pager_cb_event_zone_desk_count_set(void *data 
EINA_UNUSED, int type EINA_UNUSED, void *event);
-static Eina_Bool        _pager_cb_event_desk_show(void *data EINA_UNUSED, int 
type EINA_UNUSED, void *event);
-static Eina_Bool        _pager_cb_event_desk_name_change(void *data 
EINA_UNUSED, int type EINA_UNUSED, void *event);
-static Eina_Bool        _pager_cb_event_compositor_resize(void *data 
EINA_UNUSED, int type EINA_UNUSED, void *event);
-static void             _pager_window_cb_mouse_down(void *data, Evas *e 
EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info);
-static void             _pager_window_cb_mouse_up(void *data, Evas *e 
EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info);
-static void             _pager_window_cb_mouse_move(void *data, Evas *e 
EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info);
-static void            *_pager_window_cb_drag_convert(E_Drag *drag, const char 
*type);
-static void             _pager_window_cb_drag_finished(E_Drag *drag, int 
dropped);
-static void             _pager_drop_cb_enter(void *data, const char *type 
EINA_UNUSED, void *event_info);
-static void             _pager_drop_cb_move(void *data, const char *type 
EINA_UNUSED, void *event_info);
-static void             _pager_drop_cb_leave(void *data, const char *type 
EINA_UNUSED, void *event_info EINA_UNUSED);
-static void             _pager_drop_cb_drop(void *data, const char *type, void 
*event_info);
-static void             _pager_inst_cb_scroll(void *data);
-static void             _pager_update_drop_position(Pager *p, Evas_Coord x, 
Evas_Coord y);
-static void             _pager_desk_cb_mouse_down(void *data, Evas *e 
EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info);
-static void             _pager_desk_cb_mouse_up(void *data, Evas *e 
EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info);
-static void             _pager_desk_cb_mouse_move(void *data, Evas *e 
EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info);
-static void             _pager_desk_cb_drag_finished(E_Drag *drag, int 
dropped);
-static void             _pager_desk_cb_mouse_wheel(void *data, Evas *e 
EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info);
-static Eina_Bool        _pager_popup_cb_timeout(void *data);
-static Pager           *_pager_new(Evas *evas, E_Zone *zone, E_Gadcon *gc);
-static void             _pager_free(Pager *p);
-static void             _pager_fill(Pager *p, E_Gadcon *gc);
-static void             _pager_empty(Pager *p);
-static Pager_Desk      *_pager_desk_new(Pager *p, E_Desk *desk, int xpos, int 
ypos, Eina_Bool invert);
-static void             _pager_desk_free(Pager_Desk *pd);
-static Pager_Desk      *_pager_desk_at_coord(Pager *p, Evas_Coord x, 
Evas_Coord y);
-static void             _pager_desk_select(Pager_Desk *pd);
-static Pager_Desk      *_pager_desk_find(Pager *p, E_Desk *desk);
-static void             _pager_desk_switch(Pager_Desk *pd1, Pager_Desk *pd2);
-static Pager_Win       *_pager_window_new(Pager_Desk *pd, E_Client *client);
-static void             _pager_window_free(Pager_Win *pw);
-static void             _pager_window_move(Pager_Win *pw);
-static Pager_Win       *_pager_window_find(Pager *p, E_Client *client);
-static Pager_Win       *_pager_desk_window_find(Pager_Desk *pd, E_Client 
*client);
-static Pager_Popup     *_pager_popup_new(E_Zone *zone, int keyaction);
-static void             _pager_popup_free(Pager_Popup *pp);
-static Pager_Popup     *_pager_popup_find(E_Zone *zone);
-
-/* functions for pager popup on key actions */
-static int              _pager_popup_show(void);
-static void             _pager_popup_hide(int switch_desk);
-static Eina_Bool        _pager_popup_cb_mouse_down(void *data EINA_UNUSED, int 
type EINA_UNUSED, void *event);
-static Eina_Bool        _pager_popup_cb_mouse_up(void *data EINA_UNUSED, int 
type EINA_UNUSED, void *event);
-static Eina_Bool        _pager_popup_cb_mouse_move(void *data EINA_UNUSED, int 
type EINA_UNUSED, void *event);
-static Eina_Bool        _pager_popup_cb_mouse_wheel(void *data EINA_UNUSED, 
int type EINA_UNUSED, void *event);
-static void             _pager_popup_desk_switch(int x, int y);
-static void             _pager_popup_modifiers_set(int mod);
-static Eina_Bool        _pager_popup_cb_key_down(void *data EINA_UNUSED, int 
type EINA_UNUSED, void *event);
-static Eina_Bool        _pager_popup_cb_key_up(void *data EINA_UNUSED, int 
type EINA_UNUSED, void *event);
-static void             _pager_popup_cb_action_show(E_Object *obj EINA_UNUSED, 
const char *params EINA_UNUSED, Ecore_Event_Key *ev EINA_UNUSED);
-static void             _pager_popup_cb_action_switch(E_Object *obj 
EINA_UNUSED, const char *params, Ecore_Event_Key *ev);
-
-/* variables for pager popup on key actions */
-static E_Action *act_popup_show = NULL;
-static E_Action *act_popup_switch = NULL;
-static Ecore_Window input_window = 0;
-static Eina_List *handlers = NULL;
-static Pager_Popup *act_popup = NULL; /* active popup */
-static int hold_count = 0;
-static int hold_mod = 0;
-static E_Desk *current_desk = NULL;
-static E_Config_DD *conf_edd = NULL;
-static Eina_List *pagers = NULL;
-
-Config *pager_config = NULL;
-
-static E_Gadcon_Client *
-_gc_init(E_Gadcon *gc, const char *name, const char *id, const char *style)
-{
-   Pager *p;
-   Evas_Object *o;
-   E_Gadcon_Client *gcc;
-   Instance *inst;
-   Evas_Coord x, y, w, h;
-   const char *drop[] =
-   {
-      "enlightenment/pager_win", "enlightenment/border",
-      "enlightenment/vdesktop"
-   };
-
-   inst = E_NEW(Instance, 1);
-
-   p = _pager_new(gc->evas, gc->zone, gc);
-   p->inst = inst;
-   inst->pager = p;
-   o = p->o_table;
-   gcc = e_gadcon_client_new(gc, name, id, style, o);
-   gcc->data = inst;
-
-   inst->gcc = gcc;
-   inst->o_pager = o;
-
-   evas_object_geometry_get(o, &x, &y, &w, &h);
-   p->drop_handler =
-     e_drop_handler_add(E_OBJECT(inst->gcc), NULL, p,
-                        _pager_drop_cb_enter, _pager_drop_cb_move,
-                        _pager_drop_cb_leave, _pager_drop_cb_drop,
-                        drop, 3, x, y, w, h);
-   evas_object_event_callback_add(o, EVAS_CALLBACK_MOVE,
-                                  _pager_cb_obj_moveresize, inst);
-   evas_object_event_callback_add(o, EVAS_CALLBACK_RESIZE,
-                                  _pager_cb_obj_moveresize, inst);
-   evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN,
-                                  _button_cb_mouse_down, inst);
-   pager_config->instances = eina_list_append(pager_config->instances, inst);
-   return gcc;
-}
-
-static void
-_gc_shutdown(E_Gadcon_Client *gcc)
-{
-   Instance *inst;
-
-   inst = gcc->data;
-   pager_config->instances = eina_list_remove(pager_config->instances, inst);
-   e_drop_handler_del(inst->pager->drop_handler);
-   _pager_free(inst->pager);
-   free(inst);
-}
-
-static void
-_gc_orient(E_Gadcon_Client *gcc, E_Gadcon_Orient orient EINA_UNUSED)
-{
-   Instance *inst;
-   int aspect_w, aspect_h;
-   double aspect_ratio;
-
-   inst = gcc->data;
-   if (inst->pager->invert)
-     {
-        aspect_w = inst->pager->ynum * inst->pager->zone->w;
-        aspect_h = inst->pager->xnum * inst->pager->zone->h;
-     }
-   else
-     {
-        aspect_w = inst->pager->xnum * inst->pager->zone->w;
-        aspect_h = inst->pager->ynum * inst->pager->zone->h;
-     }
-
-   e_gadcon_client_aspect_set(gcc, aspect_w, aspect_h);
-   aspect_ratio = (double)aspect_w / (double)aspect_h;
-
-   if (aspect_ratio > 1.0)
-     e_gadcon_client_min_size_set(gcc, 16 * aspect_ratio, 16);
-   else
-     e_gadcon_client_min_size_set(gcc, 16, 16 * aspect_ratio);
-}
-
-static const char *
-_gc_label(const E_Gadcon_Client_Class *client_class EINA_UNUSED)
-{
-   return _("Pager");
-}
-
-static Evas_Object *
-_gc_icon(const E_Gadcon_Client_Class *client_class EINA_UNUSED, Evas *evas)
-{
-   Evas_Object *o;
-   char buf[PATH_MAX];
-
-   o = edje_object_add(evas);
-   snprintf(buf, sizeof(buf), "%s/e-module-pager-plain.edj",
-            e_module_dir_get(pager_config->module));
-   edje_object_file_set(o, buf, "icon");
-   return o;
-}
-
-static const char *
-_gc_id_new(const E_Gadcon_Client_Class *client_class)
-{
-   static char buf[4096];
-
-   snprintf(buf, sizeof(buf), "%s.%d", client_class->name,
-            eina_list_count(pager_config->instances) + 1);
-   return buf;
-}
-
-static Pager *
-_pager_new(Evas *evas, E_Zone *zone, E_Gadcon *gc)
-{
-   Pager *p;
-
-   p = E_NEW(Pager, 1);
-   p->inst = NULL;
-   p->popup = NULL;
-   p->o_table = elm_table_add(e_win_evas_win_get(evas));
-   E_FILL(p->o_table);
-   elm_table_homogeneous_set(p->o_table, 1);
-   p->zone = zone;
-   _pager_fill(p, gc);
-   pagers = eina_list_append(pagers, p);
-   return p;
-}
-
-static void
-_pager_free(Pager *p)
-{
-   _pager_empty(p);
-   evas_object_del(p->o_table);
-   pagers = eina_list_remove(pagers, p);
-   free(p);
-}
-
-static void
-_pager_fill(Pager *p, E_Gadcon *gc)
-{
-   int x, y;
-
-   if (gc)
-     {
-        switch (gc->orient)
-          {
-
-             case E_GADCON_ORIENT_TOP:
-             case E_GADCON_ORIENT_BOTTOM:
-             case E_GADCON_ORIENT_CORNER_TL:
-             case E_GADCON_ORIENT_CORNER_TR:
-             case E_GADCON_ORIENT_CORNER_BL:
-             case E_GADCON_ORIENT_CORNER_BR:
-             case E_GADCON_ORIENT_HORIZ:
-             case E_GADCON_ORIENT_FLOAT:
-               p->invert = EINA_FALSE;
-               break;
-             case E_GADCON_ORIENT_VERT:
-             case E_GADCON_ORIENT_LEFT:
-             case E_GADCON_ORIENT_RIGHT:
-             case E_GADCON_ORIENT_CORNER_LT:
-             case E_GADCON_ORIENT_CORNER_RT:
-             case E_GADCON_ORIENT_CORNER_LB:
-             case E_GADCON_ORIENT_CORNER_RB:
-             default:
-               p->invert = EINA_TRUE;
-          }
-     }
-   e_zone_desk_count_get(p->zone, &(p->xnum), &(p->ynum));
-   if (p->ynum != 1) p->invert = EINA_FALSE;
-   for (x = 0; x < p->xnum; x++)
-     {
-        for (y = 0; y < p->ynum; y++)
-          {
-             Pager_Desk *pd;
-             E_Desk *desk;
-
-             desk = e_desk_at_xy_get(p->zone, x, y);
-             if (desk)
-               {
-                  pd = _pager_desk_new(p, desk, x, y, p->invert);
-                  if (pd)
-                    {
-                       p->desks = eina_list_append(p->desks, pd);
-                       if (desk == e_desk_current_get(desk->zone))
-                         _pager_desk_select(pd);
-                    }
-               }
-          }
-     }
-}
-
-static void
-_pager_empty(Pager *p)
-{
-   p->active_pd = NULL;
-   while (p->desks)
-     {
-        _pager_desk_free(p->desks->data);
-        p->desks = eina_list_remove_list(p->desks, p->desks);
-     }
-}
-
-static void
-_pager_desk_livethumb_setup(Pager_Desk *pd)
-{
-   const char *bgfile;
-   Evas *e;
-   Evas_Object *o;
-
-   e = evas_object_evas_get(pd->pager->o_table);
-
-   if (!pd->o_bg)
-     {
-        pd->o_bg = e_livethumb_add(e);
-        e_livethumb_vsize_set(pd->o_bg, pd->desk->zone->w / 16, 
pd->desk->zone->h / 16);
-//        edje_extern_object_aspect_set(pd->o_bg, EDJE_ASPECT_CONTROL_NEITHER,
-//                                      pd->desk->zone->w / 16, 
pd->desk->zone->h / 16);
-        edje_object_part_swallow(pd->o_desk, "e.background", pd->o_bg);
-     }
-
-   o = e_livethumb_thumb_get(pd->o_bg);
-   if (!o) o = edje_object_add(e_livethumb_evas_get(pd->o_bg));
-   bgfile = e_bg_file_get(pd->desk->zone->num, pd->desk->x, pd->desk->y);
-   edje_object_file_set(o, bgfile, "e/desktop/background");
-   e_livethumb_thumb_set(pd->o_bg, o);
-   eina_stringshare_del(bgfile);
-}
-
-static Pager_Desk *
-_pager_desk_new(Pager *p, E_Desk *desk, int xpos, int ypos, Eina_Bool invert)
-{
-   Pager_Desk *pd;
-   Evas_Object *o, *evo;
-   E_Client *ec;
-   int w, h;
-   Evas *e;
-
-   if (!desk) return NULL;
-   pd = E_NEW(Pager_Desk, 1);
-   if (!pd) return NULL;
-
-   pd->xpos = xpos;
-   pd->ypos = ypos;
-   pd->urgent = 0;
-   pd->desk = desk;
-   e_object_ref(E_OBJECT(desk));
-   pd->pager = p;
-
-   e = evas_object_evas_get(p->o_table);
-   o = edje_object_add(e);
-   pd->o_desk = o;
-   e_theme_edje_object_set(o, "base/theme/modules/pager",
-                           "e/modules/pager/desk");
-   edje_object_part_text_set(o, "e.text.label", desk->name);
-   if (pager_config->show_desk_names)
-     edje_object_signal_emit(o, "e,name,show", "e");
-
-   if (pager_config->disable_live_preview)
-     edje_object_signal_emit(pd->o_desk, "e,preview,off", "e");
-   else
-     {
-        _pager_desk_livethumb_setup(pd);
-        edje_object_signal_emit(pd->o_desk, "e,preview,on", "e");
-     }
-
-   edje_object_size_min_calc(o, &w, &h);
-   E_EXPAND(o);
-   E_FILL(o);
-   evas_object_size_hint_min_set(o, w, h);
-   if (invert)
-     elm_table_pack(p->o_table, o, ypos, xpos, 1, 1);
-   else
-     elm_table_pack(p->o_table, o, xpos, ypos, 1, 1);
-
-   evo = (Evas_Object *)edje_object_part_object_get(o, "e.eventarea");
-   if (!evo) evo = o;
-
-   evas_object_event_callback_add(evo, EVAS_CALLBACK_MOUSE_DOWN,
-                                  _pager_desk_cb_mouse_down, pd);
-   evas_object_event_callback_add(evo, EVAS_CALLBACK_MOUSE_UP,
-                                  _pager_desk_cb_mouse_up, pd);
-   evas_object_event_callback_add(evo, EVAS_CALLBACK_MOUSE_MOVE,
-                                  _pager_desk_cb_mouse_move, pd);
-   evas_object_event_callback_add(evo, EVAS_CALLBACK_MOUSE_WHEEL,
-                                  _pager_desk_cb_mouse_wheel, pd);
-   evas_object_show(o);
-
-   o = e_layout_add(e);
-   pd->o_layout = o;
-
-   e_layout_virtual_size_set(o, desk->zone->w, desk->zone->h);
-   edje_object_part_swallow(pd->o_desk, "e.swallow.content", pd->o_layout);
-   evas_object_show(o);
-
-   E_CLIENT_FOREACH(ec)
-     {
-        Pager_Win *pw;
-
-        if (e_client_util_ignored_get(ec)) continue;
-        if ((ec->new_client) || (ec->zone != desk->zone) ||
-            ((ec->desk != desk) && (!ec->sticky)))
-          continue;
-        pw = _pager_window_new(pd, ec);
-        if (pw) pd->wins = eina_list_append(pd->wins, pw);
-     }
-   return pd;
-}
-
-static void
-_pager_desk_free(Pager_Desk *pd)
-{
-   Pager_Win *w;
-
-   evas_object_del(pd->o_desk);
-   evas_object_del(pd->o_bg);
-   evas_object_del(pd->o_layout);
-   EINA_LIST_FREE(pd->wins, w)
-     _pager_window_free(w);
-   e_object_unref(E_OBJECT(pd->desk));
-   free(pd);
-}
-
-static Pager_Desk *
-_pager_desk_at_coord(Pager *p, Evas_Coord x, Evas_Coord y)
-{
-   Eina_List *l;
-   Pager_Desk *pd;
-
-   EINA_LIST_FOREACH(p->desks, l, pd)
-     {
-        Evas_Coord dx, dy, dw, dh;
-
-        evas_object_geometry_get(pd->o_desk, &dx, &dy, &dw, &dh);
-        if (E_INSIDE(x, y, dx, dy, dw, dh)) return pd;
-     }
-   return NULL;
-}
-
-static void
-_pager_desk_select(Pager_Desk *pd)
-{
-   if (pd->current) return;
-   if (pd->pager->active_pd)
-     {
-        pd->pager->active_pd->current = 0;
-        edje_object_signal_emit(pd->pager->active_pd->o_desk, 
"e,state,unselected", "e");
-     }
-   pd->current = 1;
-   evas_object_raise(pd->o_desk);
-   edje_object_signal_emit(pd->o_desk, "e,state,selected", "e");
-   pd->pager->active_pd = pd;
-}
-
-static Pager_Desk *
-_pager_desk_find(Pager *p, E_Desk *desk)
-{
-   Eina_List *l;
-   Pager_Desk *pd;
-
-   EINA_LIST_FOREACH(p->desks, l, pd)
-     if (pd->desk == desk) return pd;
-
-   return NULL;
-}
-
-static void
-_pager_desk_switch(Pager_Desk *pd1, Pager_Desk *pd2)
-{
-   int c;
-   E_Zone *zone1, *zone2;
-   E_Desk *desk1, *desk2;
-   Pager_Win *pw;
-   Eina_List *l;
-
-   if ((!pd1) || (!pd2) || (!pd1->desk) || (!pd2->desk)) return;
-   if (pd1 == pd2) return;
-
-   desk1 = pd1->desk;
-   desk2 = pd2->desk;
-   zone1 = pd1->desk->zone;
-   zone2 = pd2->desk->zone;
-
-   /* Move opened windows from on desk to the other */
-   EINA_LIST_FOREACH(pd1->wins, l, pw)
-     {
-        if ((!pw) || (!pw->client) || (pw->client->iconic)) continue;
-        pw->client->hidden = 0;
-        e_client_desk_set(pw->client, desk2);
-     }
-   EINA_LIST_FOREACH(pd2->wins, l, pw)
-     {
-        if ((!pw) || (!pw->client) || (pw->client->iconic)) continue;
-        pw->client->hidden = 0;
-        e_client_desk_set(pw->client, desk1);
-     }
-
-   /* Modify desktop names in the config */
-   for (l = e_config->desktop_names, c = 0; l && c < 2; l = l->next)
-     {
-        E_Config_Desktop_Name *tmp_dn;
-
-        tmp_dn = l->data;
-        if (!tmp_dn) continue;
-        if ((tmp_dn->desk_x == desk1->x) &&
-            (tmp_dn->desk_y == desk1->y) &&
-            (tmp_dn->zone == (int)desk1->zone->num))
-          {
-             tmp_dn->desk_x = desk2->x;
-             tmp_dn->desk_y = desk2->y;
-             tmp_dn->zone = desk2->zone->num;
-             c++;
-          }
-        else if ((tmp_dn->desk_x == desk2->x) &&
-                 (tmp_dn->desk_y == desk2->y) &&
-                 (tmp_dn->zone == (int)desk2->zone->num))
-          {
-             tmp_dn->desk_x = desk1->x;
-             tmp_dn->desk_y = desk1->y;
-             tmp_dn->zone = desk1->zone->num;
-             c++;
-          }
-     }
-   if (c > 0) e_config_save();
-   e_desk_name_update();
-
-   /* Modify desktop backgrounds in the config */
-   for (l = e_config->desktop_backgrounds, c = 0; l && c < 2; l = l->next)
-     {
-        E_Config_Desktop_Background *tmp_db;
-
-        tmp_db = l->data;
-        if (!tmp_db) continue;
-        if ((tmp_db->desk_x == desk1->x) &&
-            (tmp_db->desk_y == desk1->y) &&
-            (tmp_db->zone == (int)desk1->zone->num))
-          {
-             tmp_db->desk_x = desk2->x;
-             tmp_db->desk_y = desk2->y;
-             tmp_db->zone = desk2->zone->num;
-             c++;
-          }
-        else if ((tmp_db->desk_x == desk2->x) &&
-                 (tmp_db->desk_y == desk2->y) &&
-                 (tmp_db->zone == (int)desk2->zone->num))
-          {
-             tmp_db->desk_x = desk1->x;
-             tmp_db->desk_y = desk1->y;
-             tmp_db->zone = desk1->zone->num;
-             c++;
-          }
-     }
-   if (c > 0) e_config_save();
-
-   /* If the current desktop has been switched, force to update of the screen 
*/
-   if (desk2 == e_desk_current_get(zone2))
-     {
-        desk2->visible = 0;
-        e_desk_show(desk2);
-     }
-   if (desk1 == e_desk_current_get(zone1))
-     {
-        desk1->visible = 0;
-        e_desk_show(desk1);
-     }
-}
-
-static Pager_Win *
-_pager_window_new(Pager_Desk *pd, E_Client *client)
-{
-   Pager_Win *pw;
-   Evas_Object *o;
-   int visible;
-
-   if (!client) return NULL;
-   pw = E_NEW(Pager_Win, 1);
-   if (!pw) return NULL;
-
-   pw->client = client;
-   e_object_ref(E_OBJECT(client));
-
-   visible = ((!client->iconic) && (!client->netwm.state.skip_pager));
-   pw->skip_winlist = client->netwm.state.skip_pager;
-   pw->desk = pd;
-
-   o = edje_object_add(evas_object_evas_get(pd->pager->o_table));
-   pw->o_window = o;
-   e_theme_edje_object_set(o, "base/theme/modules/pager",
-                           "e/modules/pager/window");
-   if (visible) evas_object_show(o);
-
-   e_layout_pack(pd->o_layout, pw->o_window);
-   e_layout_child_raise(pw->o_window);
-
-   evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN,
-                                  _pager_window_cb_mouse_down, pw);
-   evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_UP,
-                                  _pager_window_cb_mouse_up, pw);
-   evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_MOVE,
-                                  _pager_window_cb_mouse_move, pw);
-
-   o = e_client_icon_add(client, evas_object_evas_get(pd->pager->o_table));
-   if (o)
-     {
-        pw->o_icon = o;
-        evas_object_show(o);
-        edje_object_part_swallow(pw->o_window, "e.swallow.icon", o);
-     }
-
-   if (client->urgent)
-     {
-        if (!(client->iconic))
-          edje_object_signal_emit(pd->o_desk, "e,state,urgent", "e");
-        edje_object_signal_emit(pw->o_window, "e,state,urgent", "e");
-     }
-
-   evas_object_show(o);
-
-   _pager_window_move(pw);
-   return pw;
-}
-
-static void
-_pager_window_free(Pager_Win *pw)
-{
-   if ((pw->drag.from_pager) && (pw->desk->pager->dragging))
-     pw->desk->pager->dragging = 0;
-   if (pw->o_window) evas_object_del(pw->o_window);
-   if (pw->o_icon) evas_object_del(pw->o_icon);
-   e_object_unref(E_OBJECT(pw->client));
-   free(pw);
-}
-
-static void
-_pager_window_move(Pager_Win *pw)
-{
-   e_layout_child_move(pw->o_window,
-                       pw->client->x - pw->client->zone->x,
-                       pw->client->y - pw->client->zone->y);
-   e_layout_child_resize(pw->o_window, pw->client->w, pw->client->h);
-}
-
-static Pager_Win *
-_pager_window_find(Pager *p, E_Client *client)
-{
-   Eina_List *l;
-   Pager_Desk *pd;
-
-   EINA_LIST_FOREACH(p->desks, l, pd)
-     {
-        Pager_Win *pw;
-
-        pw = _pager_desk_window_find(pd, client);
-        if (pw) return pw;
-     }
-   return NULL;
-}
-
-static Pager_Win *
-_pager_desk_window_find(Pager_Desk *pd, E_Client *client)
-{
-   Eina_List *l;
-   Pager_Win *pw;
-
-   EINA_LIST_FOREACH(pd->wins, l, pw)
-     if (pw->client == client) return pw;
-
-   return NULL;
-}
-
-static void
-_pager_popup_cb_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED, void *event_info EINA_UNUSED)
-{
-   Pager_Popup *pp = data;
-   E_FREE_FUNC(pp->timer, ecore_timer_del);
-   _pager_free(pp->pager);
-   free(pp);
-}
-
-static Pager_Popup *
-_pager_popup_new(E_Zone *zone, int keyaction)
-{
-   Pager_Popup *pp;
-   Evas_Coord w, h, zx, zy, zw, zh;
-   int x, y, height, width;
-   E_Desk *desk;
-
-   pp = E_NEW(Pager_Popup, 1);
-   if (!pp) return NULL;
-
-   /* Show popup */
-   pp->pager = _pager_new(e_comp->evas, zone, NULL);
-
-   pp->pager->popup = pp;
-   pp->urgent = 0;
-
-   e_zone_desk_count_get(zone, &x, &y);
-
-   if (keyaction)
-     height = pager_config->popup_act_height * y;
-   else
-     height = pager_config->popup_height * y;
-
-   width = height * (zone->w * x) / (zone->h * y);
-
-   evas_object_move(pp->pager->o_table, 0, 0);
-   evas_object_resize(pp->pager->o_table, width, height);
-
-   pp->o_bg = edje_object_add(e_comp->evas);
-   evas_object_name_set(pp->o_bg, "pager_popup");
-   e_theme_edje_object_set(pp->o_bg, "base/theme/modules/pager",
-                           "e/modules/pager/popup");
-   desk = e_desk_current_get(zone);
-   if (desk)
-     edje_object_part_text_set(pp->o_bg, "e.text.label", desk->name);
-
-   evas_object_size_hint_min_set(pp->pager->o_table, width, height);
-   edje_object_part_swallow(pp->o_bg, "e.swallow.content", pp->pager->o_table);
-   edje_object_size_min_calc(pp->o_bg, &w, &h);
-
-   pp->popup = e_comp_object_util_add(pp->o_bg, E_COMP_OBJECT_TYPE_POPUP);
-   evas_object_layer_set(pp->popup, E_LAYER_CLIENT_POPUP);
-   evas_object_pass_events_set(pp->popup, 1);
-   e_zone_useful_geometry_get(zone, &zx, &zy, &zw, &zh);
-   evas_object_geometry_set(pp->popup, zx, zy, w, h);
-   e_comp_object_util_center(pp->popup);
-   evas_object_event_callback_add(pp->popup, EVAS_CALLBACK_DEL, 
_pager_popup_cb_del, pp);
-   evas_object_show(pp->popup);
-
-   pp->timer = NULL;
-
-   return pp;
-}
-
-static void
-_pager_popup_free(Pager_Popup *pp)
-{
-   E_FREE_FUNC(pp->timer, ecore_timer_del);
-   evas_object_hide(pp->popup);
-   evas_object_del(pp->popup);
-}
-
-static Pager_Popup *
-_pager_popup_find(E_Zone *zone)
-{
-   Eina_List *l;
-   Pager *p;
-
-   EINA_LIST_FOREACH(pagers, l, p)
-     if ((p->popup) && (p->zone == zone))
-       return p->popup;
-
-   return NULL;
-}
-
-static void
-_pager_cb_obj_moveresize(void *data, Evas *e EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED, void *event_info EINA_UNUSED)
-{
-   Instance *inst;
-
-   inst = data;
-   _pager_instance_drop_zone_recalc(inst);
-}
-
-static void
-_button_cb_mouse_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED, void *event_info)
-{
-   Instance *inst;
-   Evas_Event_Mouse_Down *ev;
-   E_Menu *m;
-   E_Menu_Item *mi;
-   int cx, cy;
-
-   inst = data;
-   ev = event_info;
-   if (ev->button != 3) return;
-   if (inst->gcc->menu) return;
-
-   m = e_menu_new();
-   mi = e_menu_item_new(m);
-   e_menu_item_label_set(mi, _("Settings"));
-   e_util_menu_item_theme_icon_set(mi, "configure");
-   e_menu_item_callback_set(mi, _pager_inst_cb_menu_configure, NULL);
-
-   m = e_gadcon_client_util_menu_items_append(inst->gcc, m, 0);
-   if (e_configure_registry_exists("screen/virtual_desktops"))
-     {
-        mi = e_menu_item_new_relative(m, NULL);
-        e_menu_item_label_set(mi, _("Virtual Desktops Settings"));
-        e_util_menu_item_theme_icon_set(mi, "preferences-desktop");
-        e_menu_item_callback_set(mi, 
_pager_inst_cb_menu_virtual_desktops_dialog, inst);
-     }
-
-   e_gadcon_canvas_zone_geometry_get(inst->gcc->gadcon, &cx, &cy,
-                                     NULL, NULL);
-   e_menu_activate_mouse(m, e_zone_current_get(),
-                         cx + ev->output.x, cy + ev->output.y, 1, 1,
-                         E_MENU_POP_DIRECTION_DOWN, ev->timestamp);
-   evas_event_feed_mouse_up(inst->gcc->gadcon->evas, ev->button,
-                            EVAS_BUTTON_NONE, ev->timestamp, NULL);
-}
-
-static void
-_pager_inst_cb_menu_configure(void *data EINA_UNUSED, E_Menu *m EINA_UNUSED, 
E_Menu_Item *mi EINA_UNUSED)
-{
-   if (!pager_config) return;
-   if (pager_config->config_dialog) return;
-   /* FIXME: pass zone config item */
-   _config_pager_module(NULL);
-}
-
-static E_Config_Dialog *
-_pager_config_dialog(Evas_Object *parent EINA_UNUSED, const char *params 
EINA_UNUSED)
-{
-   if (!pager_config) return NULL;
-   if (pager_config->config_dialog) return NULL;
-   /* FIXME: pass zone config item */
-   _config_pager_module(NULL);
-   return pager_config->config_dialog;
-}
-
-static void
-_pager_inst_cb_menu_virtual_desktops_dialog(void *data EINA_UNUSED, E_Menu *m 
EINA_UNUSED, E_Menu_Item *mi EINA_UNUSED)
-{
-   e_configure_registry_call("screen/virtual_desktops", NULL, NULL);
-}
-
-static void
-_pager_instance_drop_zone_recalc(Instance *inst)
-{
-   Evas_Coord x, y, w, h;
-
-   e_gadcon_client_viewport_geometry_get(inst->gcc, &x, &y, &w, &h);
-   e_drop_handler_geometry_set(inst->pager->drop_handler, x, y, w, h);
-}
-
-EINTERN void
-_pager_cb_config_updated(void)
-{
-   Pager *p;
-   Pager_Desk *pd;
-   Eina_List *l, *ll;
-   if (!pager_config) return;
-   EINA_LIST_FOREACH(pagers, l, p)
-     EINA_LIST_FOREACH(p->desks, ll, pd)
-       {
-          if (pager_config->disable_live_preview)
-            {
-               if (pd->o_bg) evas_object_del(pd->o_bg);
-               pd->o_bg = NULL;
-               edje_object_signal_emit(pd->o_desk, "e,preview,off", "e");
-            }
-          else
-            {
-               _pager_desk_livethumb_setup(pd);
-               edje_object_signal_emit(pd->o_desk, "e,preview,on", "e");
-            }
-          if (pd->current)
-            edje_object_signal_emit(pd->o_desk, "e,state,selected", "e");
-          else
-            edje_object_signal_emit(pd->o_desk, "e,state,unselected", "e");
-          if (pager_config->show_desk_names)
-            edje_object_signal_emit(pd->o_desk, "e,name,show", "e");
-          else
-            edje_object_signal_emit(pd->o_desk, "e,name,hide", "e");
-       }
-}
-
-static Eina_Bool
-_pager_cb_event_client_resize(void *data EINA_UNUSED, int type EINA_UNUSED, 
void *event)
-{
-   E_Event_Client *ev = event;
-   Eina_List *l, *l2;
-   Pager *p;
-
-   EINA_LIST_FOREACH(pagers, l, p)
-     {
-        Pager_Desk *pd;
-
-        if (p->zone != ev->ec->zone) continue;
-        EINA_LIST_FOREACH(p->desks, l2, pd)
-          {
-             Pager_Win *pw;
-
-             pw = _pager_desk_window_find(pd, ev->ec);
-             if (pw) _pager_window_move(pw);
-          }
-     }
-   return ECORE_CALLBACK_PASS_ON;
-}
-
-static Eina_Bool
-_pager_cb_event_client_move(void *data EINA_UNUSED, int type EINA_UNUSED, void 
*event)
-{
-   E_Event_Client *ev = event;
-   Eina_List *l;
-   Pager_Win *pw;
-   Pager_Desk *pd;
-   Pager *p;
-
-   EINA_LIST_FOREACH(pagers, l, p)
-     {
-        Eina_List *l2;
-
-        if (p->zone != ev->ec->zone) continue;
-        EINA_LIST_FOREACH(p->desks, l2, pd)
-          {
-             pw = _pager_desk_window_find(pd, ev->ec);
-             if (pw) _pager_window_move(pw);
-          }
-     }
-
-   if ((act_popup) && (act_popup->pager->zone == ev->ec->zone))
-     {
-        EINA_LIST_FOREACH(act_popup->pager->desks, l, pd)
-          {
-             pw = _pager_desk_window_find(pd, ev->ec);
-             if (pw) _pager_window_move(pw);
-          }
-     }
-
-   return ECORE_CALLBACK_PASS_ON;
-}
-
-static Eina_Bool
-_pager_cb_event_client_add(void *data EINA_UNUSED, int type EINA_UNUSED, void 
*event)
-{
-   E_Event_Client *ev = event;
-   Eina_List *l;
-   Pager *p;
-
-   EINA_LIST_FOREACH(pagers, l, p)
-     {
-        Pager_Desk *pd;
-        Pager_Win *pw;
-
-        if ((p->zone != ev->ec->zone) ||
-            (_pager_window_find(p, ev->ec)))
-          continue;
-        pd = _pager_desk_find(p, ev->ec->desk);
-        if (!pd) continue;
-        pw = _pager_window_new(pd, ev->ec);
-        if (pw) pd->wins = eina_list_append(pd->wins, pw);
-     }
-
-   return ECORE_CALLBACK_PASS_ON;
-}
-
-static Eina_Bool
-_pager_cb_event_client_remove(void *data EINA_UNUSED, int type EINA_UNUSED, 
void *event)
-{
-   E_Event_Client *ev = event;
-   Eina_List *l;
-   Pager *p;
-
-   EINA_LIST_FOREACH(pagers, l, p)
-     {
-        Eina_List *l2;
-        Pager_Desk *pd;
-
-        if (p->zone != ev->ec->zone) continue;
-
-        EINA_LIST_FOREACH(p->desks, l2, pd)
-          {
-             Pager_Win *pw;
-
-             pw = _pager_desk_window_find(pd, ev->ec);
-             if (!pw) continue;
-             pd->wins = eina_list_remove(pd->wins, pw);
-             _pager_window_free(pw);
-          }
-     }
-   return ECORE_CALLBACK_PASS_ON;
-}
-
-static Eina_Bool
-_pager_cb_event_client_iconify(void *data EINA_UNUSED, int type EINA_UNUSED, 
void *event)
-{
-   E_Event_Client *ev = event;
-   Eina_List *l;
-   Pager *p;
-
-   EINA_LIST_FOREACH(pagers, l, p)
-     {
-        Eina_List *l2;
-        Pager_Desk *pd;
-
-        if (p->zone != ev->ec->zone) continue;
-
-        EINA_LIST_FOREACH(p->desks, l2, pd)
-          {
-             Pager_Win *pw;
-
-             pw = _pager_desk_window_find(pd, ev->ec);
-             if (!pw) continue;
-             if ((pw->drag.from_pager) && (pw->desk->pager->dragging))
-               pw->desk->pager->dragging = 0;
-             evas_object_hide(pw->o_window);
-          }
-     }
-
-   return ECORE_CALLBACK_PASS_ON;
-}
-
-static Eina_Bool
-_pager_cb_event_client_uniconify(void *data EINA_UNUSED, int type EINA_UNUSED, 
void *event)
-{
-   E_Event_Client *ev = event;
-   Eina_List *l;
-   Pager *p;
-
-   EINA_LIST_FOREACH(pagers, l, p)
-     {
-        Eina_List *l2;
-        Pager_Desk *pd;
-
-        if (p->zone != ev->ec->zone) continue;
-
-        EINA_LIST_FOREACH(p->desks, l2, pd)
-          {
-             Pager_Win *pw;
-
-             pw = _pager_desk_window_find(pd, ev->ec);
-             if ((pw) && (!pw->skip_winlist)) evas_object_show(pw->o_window);
-          }
-     }
-
-   return ECORE_CALLBACK_PASS_ON;
-}
-
-static Eina_Bool
-_pager_cb_event_client_stick(void *data EINA_UNUSED, int type EINA_UNUSED, 
void *event)
-{
-   E_Event_Client_Property *ev = event;
-   Eina_List *l;
-   Pager *p;
-
-   if ((!(ev->property & E_CLIENT_PROPERTY_STICKY)) || (!ev->ec->sticky)) 
return ECORE_CALLBACK_RENEW;
-   EINA_LIST_FOREACH(pagers, l, p)
-     {
-        Eina_List *l2;
-        Pager_Desk *pd;
-        Pager_Win *pw;
-
-        if (p->zone != ev->ec->zone) continue;
-        pw = _pager_window_find(p, ev->ec);
-        if (!pw) continue;
-
-        EINA_LIST_FOREACH(p->desks, l2, pd)
-          if ((ev->ec->desk != pd->desk) && (!_pager_desk_window_find(pd, 
ev->ec)))
-            {
-               pw = _pager_window_new(pd, ev->ec);
-               if (pw) pd->wins = eina_list_append(pd->wins, pw);
-            }
-     }
-
-   return ECORE_CALLBACK_PASS_ON;
-}
-
-static Eina_Bool
-_pager_cb_event_client_unstick(void *data EINA_UNUSED, int type EINA_UNUSED, 
void *event)
-{
-   E_Event_Client_Property *ev = event;
-   Eina_List *l;
-   Pager *p;
-
-   if ((!(ev->property & E_CLIENT_PROPERTY_STICKY)) || (ev->ec->sticky)) 
return ECORE_CALLBACK_RENEW;
-   EINA_LIST_FOREACH(pagers, l, p)
-     {
-        Pager_Desk *pd;
-        Eina_List *l2;
-
-        if (p->zone != ev->ec->zone) continue;
-
-        EINA_LIST_FOREACH(p->desks, l2, pd)
-          if (ev->ec->desk != pd->desk)
-            {
-               Pager_Win *pw;
-
-               pw = _pager_desk_window_find(pd, ev->ec);
-               if (pw)
-                 {
-                    pd->wins = eina_list_remove(pd->wins, pw);
-                    _pager_window_free(pw);
-                 }
-            }
-     }
-   return ECORE_CALLBACK_PASS_ON;
-}
-
-static void
-_pager_window_desk_change(Pager *pager, E_Client *ec)
-{
-   Eina_List *l;
-   Pager_Win *pw;
-   Pager_Desk *pd;
-
-   /* if this pager is not for the zone of the client */
-   if (pager->zone != ec->zone)
-     {
-        /* look at all desks in the pager */
-        EINA_LIST_FOREACH(pager->desks, l, pd)
-          {
-             /* find this client in this desk */
-             pw = _pager_desk_window_find(pd, ec);
-             if (!pw) continue;
-             /* if it is found - remove it. it does not belong in this
-              * pager as it probably moves zones */
-             pd->wins = eina_list_remove(pd->wins, pw);
-             _pager_window_free(pw);
-          }
-        return;
-     }
-   /* and this pager zone is for this client */
-   /* see if the window is in this pager at all */
-   pw = _pager_window_find(pager, ec);
-   if (pw)
-     {
-        /* is it sticky */
-        if (ec->sticky)
-          {
-             /* if its sticky and in this pager - its already everywhere, so 
abort
-              * doing anything else */
-             return;
-          }
-        /* move it to the right desk */
-        /* find the pager desk of the target desk */
-        pd = _pager_desk_find(pager, ec->desk);
-        if (pd)
-          {
-             Pager_Win *pw2 = NULL;
-             E_Client *ec_above;
-
-             /* remove it from whatever desk it was on */
-             pw->desk->wins = eina_list_remove(pw->desk->wins, pw);
-             e_layout_unpack(pw->o_window);
-
-             /* add it to the one its MEANT to be on */
-             pw->desk = pd;
-             pd->wins = eina_list_append(pd->wins, pw);
-             e_layout_pack(pd->o_layout, pw->o_window);
-
-             ec_above = e_util_desk_client_above(pw->client);
-             if (ec_above)
-               pw2 = _pager_desk_window_find(pd, ec_above);
-             if (pw2)
-               e_layout_child_lower_below(pw->o_window, pw2->o_window);
-             else
-               e_layout_child_raise(pw->o_window);
-
-             _pager_window_move(pw);
-          }
-     }
-   /* the client isn't in this pager at all - it must have moved zones */
-   else
-     {
-        if (!ec->sticky)
-          {
-             /* find the pager desk it needs to go to */
-             pd = _pager_desk_find(pager, ec->desk);
-             if ((pd) && (!_pager_desk_window_find(pd, ec)))
-               {
-                  /* create it and add it */
-                  pw = _pager_window_new(pd, ec);
-                  if (pw)
-                    {
-                       Pager_Win *pw2 = NULL;
-                       E_Client *ec_above;
-
-                       pd->wins = eina_list_append(pd->wins, pw);
-                       ec_above = e_util_desk_client_above(pw->client);
-                       if (ec_above)
-                         pw2 = _pager_desk_window_find(pd, ec_above);
-                       if (pw2)
-                         e_layout_child_lower_below(pw->o_window, 
pw2->o_window);
-                       else
-                         e_layout_child_raise(pw->o_window);
-                       _pager_window_move(pw);
-                    }
-               }
-          }
-        else
-          {
-             /* go through all desks */
-             EINA_LIST_FOREACH(pager->desks, l, pd)
-               {
-                  /* create it and add it */
-                  if (_pager_desk_window_find(pd, ec)) continue;
-                  pw = _pager_window_new(pd, ec);
-                  if (pw)
-                    {
-                       Pager_Win *pw2 = NULL;
-                       E_Client *ec_above;
-
-                       pd->wins = eina_list_append(pd->wins, pw);
-                       ec_above = e_util_desk_client_above(pw->client);
-                       if (ec_above)
-                         pw2 = _pager_desk_window_find(pd, ec_above);
-                       if (pw2)
-                         e_layout_child_lower_below(pw->o_window, 
pw2->o_window);
-                       else
-                         e_layout_child_raise(pw->o_window);
-                       _pager_window_move(pw);
-                    }
-               }
-          }
-     }
-}
-
-static Eina_Bool
-_pager_cb_event_client_desk_set(void *data EINA_UNUSED, int type EINA_UNUSED, 
void *event)
-{
-   E_Event_Client_Desk_Set *ev = event;
-   Eina_List *l;
-   Pager *p;
-
-   EINA_LIST_FOREACH(pagers, l, p)
-     _pager_window_desk_change(p, ev->ec);
-
-   return ECORE_CALLBACK_PASS_ON;
-}
-
-static Eina_Bool
-_pager_cb_event_client_stack(void *data EINA_UNUSED, int type EINA_UNUSED, 
void *event)
-{
-   E_Event_Client *ev = event;
-   Eina_List *l;
-   Pager *p;
-
-   EINA_LIST_FOREACH(pagers, l, p)
-     {
-        Eina_List *l2;
-        Pager_Desk *pd;
-
-        if (p->zone != ev->ec->zone) continue;
-        EINA_LIST_FOREACH(p->desks, l2, pd)
-          {
-             Pager_Win *pw, *pw2 = NULL;
-
-             pw = _pager_desk_window_find(pd, ev->ec);
-             if (pw)
-               {
-                  E_Client *ec;
-
-                  ec = e_util_desk_client_below(ev->ec);
-                  if (ec) pw2 = _pager_desk_window_find(pd, ec);
-                  if (pw2)
-                    {
-                       e_layout_child_raise_above(pw->o_window, pw2->o_window);
-                       continue;
-                    }
-                  ec = e_util_desk_client_above(ev->ec);
-                  if (ec) pw2 = _pager_desk_window_find(pd, ec);
-                  if (pw2)
-                    {
-                       e_layout_child_lower_below(pw->o_window, pw2->o_window);
-                       continue;
-                    }
-               }
-          }
-     }
-
-   return ECORE_CALLBACK_PASS_ON;
-}
-
-static Eina_Bool
-_pager_cb_event_client_icon_change(void *data EINA_UNUSED, int type 
EINA_UNUSED, void *event)
-{
-   E_Event_Client_Property *ev = event;
-   Eina_List *l;
-   Pager *p;
-
-   if (!(ev->property & E_CLIENT_PROPERTY_ICON)) return ECORE_CALLBACK_RENEW;
-   EINA_LIST_FOREACH(pagers, l, p)
-     {
-        Eina_List *l2;
-        Pager_Desk *pd;
-
-        if (p->zone != ev->ec->zone) continue;
-        EINA_LIST_FOREACH(p->desks, l2, pd)
-          {
-             Pager_Win *pw;
-
-             pw = _pager_desk_window_find(pd, ev->ec);
-             if (pw)
-               {
-                  Evas_Object *o;
-
-                  if (pw->o_icon)
-                    {
-                       evas_object_del(pw->o_icon);
-                       pw->o_icon = NULL;
-                    }
-                  o = e_client_icon_add(ev->ec,
-                                        evas_object_evas_get(p->o_table));
-                  if (o)
-                    {
-                       pw->o_icon = o;
-                       evas_object_show(o);
-                       edje_object_part_swallow(pw->o_window,
-                                                "e.swallow.icon", o);
-                    }
-               }
-          }
-     }
-
-   return ECORE_CALLBACK_PASS_ON;
-}
-
-static Eina_Bool
-_pager_cb_event_client_urgent_change(void *data EINA_UNUSED, int type 
EINA_UNUSED, void *event)
-{
-   E_Event_Client_Property *ev = event;
-   Eina_List *l, *l2;
-   Pager_Popup *pp;
-   E_Zone *zone;
-   int urgent;
-   Pager *p;
-   Pager_Desk *pd;
-   Pager_Win *pw;
-
-   if (!(ev->property & E_CLIENT_PROPERTY_URGENCY)) return 
ECORE_CALLBACK_RENEW;
-   zone = ev->ec->zone;
-   urgent = ev->ec->urgent || ev->ec->icccm.urgent;
-
-   if (pager_config->popup_urgent && (!e_client_util_desk_visible(ev->ec, 
e_desk_current_get(ev->ec->zone))) &&
-                                      (pager_config->popup_urgent_focus ||
-                                      ((!pager_config->popup_urgent_focus) && 
(!ev->ec->focused) && (!ev->ec->want_focus))))
-     {
-        pp = _pager_popup_find(zone);
-
-        if ((!pp) && (urgent) && !(ev->ec->iconic))
-          {
-             pp = _pager_popup_new(zone, 0);
-
-             if ((pp) && (!pager_config->popup_urgent_stick))
-               pp->timer = 
ecore_timer_loop_add(pager_config->popup_urgent_speed,
-                                           _pager_popup_cb_timeout, pp);
-             if (pp) pp->urgent = 1;
-          }
-     }
-
-   EINA_LIST_FOREACH(pagers, l, p)
-     {
-        if (p->zone != zone) continue;
-
-        EINA_LIST_FOREACH(p->desks, l2, pd)
-          {
-             pw = _pager_desk_window_find(pd, ev->ec);
-             if (pw)
-               {
-                  if (ev->ec->urgent)
-                    {
-                       if (!(ev->ec->iconic))
-                         {
-                            if ((pd->pager) && (pd->pager->inst) &&
-                                (!pager_config->popup_urgent))
-                              
e_gadcon_urgent_show(pd->pager->inst->gcc->gadcon);
-                            edje_object_signal_emit(pd->o_desk,
-                                                    "e,state,urgent", "e");
-                         }
-                       edje_object_signal_emit(pw->o_window,
-                                               "e,state,urgent", "e");
-                    }
-                  else
-                    {
-                       if (!(ev->ec->iconic))
-                         edje_object_signal_emit(pd->o_desk,
-                                                 "e,state,not_urgent", "e");
-                       edje_object_signal_emit(pw->o_window,
-                                               "e,state,not_urgent", "e");
-                    }
-               }
-          }
-     }
-
-   return ECORE_CALLBACK_PASS_ON;
-}
-
-static Eina_Bool
-_pager_cb_event_client_focus_in(void *data EINA_UNUSED, int type EINA_UNUSED, 
void *event)
-{
-   E_Event_Client *ev = event;
-   Instance *inst;
-   Eina_List *l, *l2;
-   Pager_Popup *pp;
-   Pager_Desk *pd;
-   Pager_Win *pw;
-   E_Zone *zone;
-
-   zone = ev->ec->zone;
-
-   EINA_LIST_FOREACH(pager_config->instances, l, inst)
-     {
-        if (inst->pager->zone != zone) continue;
-
-        EINA_LIST_FOREACH(inst->pager->desks, l2, pd)
-          {
-             pw = _pager_desk_window_find(pd, ev->ec);
-             if (pw)
-               {
-                  edje_object_signal_emit(pw->o_window,
-                                          "e,state,focused", "e");
-                  break;
-               }
-          }
-     }
-
-   pp = _pager_popup_find(zone);
-   if (!pp) return ECORE_CALLBACK_PASS_ON;
-
-   EINA_LIST_FOREACH(pp->pager->desks, l, pd)
-     {
-        pw = _pager_desk_window_find(pd, ev->ec);
-        if (pw)
-          {
-             edje_object_signal_emit(pw->o_window,
-                                     "e,state,focused", "e");
-             break;
-          }
-     }
-
-   return ECORE_CALLBACK_PASS_ON;
-}
-
-static Eina_Bool
-_pager_cb_event_client_focus_out(void *data EINA_UNUSED, int type EINA_UNUSED, 
void *event)
-{
-   E_Event_Client *ev = event;
-   Eina_List *l;
-   Pager_Popup *pp;
-   Pager_Desk *pd;
-   Pager_Win *pw;
-   Instance *inst;
-   E_Zone *zone;
-
-   zone = ev->ec->zone;
-
-   EINA_LIST_FOREACH(pager_config->instances, l, inst)
-     {
-        Eina_List *l2;
-
-        if (inst->pager->zone != zone) continue;
-
-        EINA_LIST_FOREACH(inst->pager->desks, l2, pd)
-          {
-             pw = _pager_desk_window_find(pd, ev->ec);
-             if (pw)
-               {
-                  edje_object_signal_emit(pw->o_window,
-                                          "e,state,unfocused", "e");
-                  break;
-               }
-          }
-     }
-
-   pp = _pager_popup_find(zone);
-   if (!pp) return ECORE_CALLBACK_PASS_ON;
-
-   EINA_LIST_FOREACH(pp->pager->desks, l, pd)
-     {
-        pw = _pager_desk_window_find(pd, ev->ec);
-        if (pw)
-          {
-             edje_object_signal_emit(pw->o_window,
-                                     "e,state,unfocused", "e");
-             break;
-          }
-     }
-
-   return ECORE_CALLBACK_PASS_ON;
-}
-
-static Eina_Bool
-_pager_cb_event_client_property(void *data EINA_UNUSED, int type EINA_UNUSED, 
void *event)
-{
-   E_Event_Client_Property *ev = event;
-   Eina_List *l, *l2;
-   int found = 0;
-   Pager *p;
-   Pager_Win *pw;
-   Pager_Desk *pd;
-
-   if (!(ev->property & E_CLIENT_PROPERTY_NETWM_STATE)) return 
ECORE_CALLBACK_RENEW;
-   EINA_LIST_FOREACH(pagers, l, p)
-     {
-        if (p->zone != ev->ec->zone) continue;
-
-        EINA_LIST_FOREACH(p->desks, l2, pd)
-          {
-             pw = _pager_desk_window_find(pd, ev->ec);
-             if (pw)
-               {
-                  found = 1;
-                  if (ev->ec->netwm.state.skip_pager)
-                    {
-                       pd->wins = eina_list_remove(pd->wins, pw);
-                       _pager_window_free(pw);
-                    }
-               }
-          }
-     }
-   if (found) return ECORE_CALLBACK_PASS_ON;
-
-   /* If we did not find this window in the pager, then add it because
-    * the skip_pager state may have changed to 1 */
-   EINA_LIST_FOREACH(pagers, l, p)
-     {
-        if ((p->zone != ev->ec->zone) ||
-            (_pager_window_find(p, ev->ec)))
-          continue;
-        if (!ev->ec->sticky)
-          {
-             pd = _pager_desk_find(p, ev->ec->desk);
-             if ((pd) && (!_pager_desk_window_find(pd, ev->ec)))
-               {
-                  pw = _pager_window_new(pd, ev->ec);
-                  if (pw)
-                    {
-                       Pager_Win *pw2 = NULL;
-                       E_Client *ec;
-
-                       pd->wins = eina_list_append(pd->wins, pw);
-                       ec = e_util_desk_client_above(pw->client);
-                       if (ec)
-                         pw2 = _pager_desk_window_find(pd, ec);
-                       if (pw2)
-                         e_layout_child_lower_below(pw->o_window, 
pw2->o_window);
-                       else
-                         e_layout_child_raise(pw->o_window);
-                       _pager_window_move(pw);
-                    }
-               }
-          }
-        else
-          {
-             EINA_LIST_FOREACH(p->desks, l2, pd)
-               {
-                  if (_pager_desk_window_find(pd, ev->ec)) continue;
-                  pw = _pager_window_new(pd, ev->ec);
-                  if (pw)
-                    {
-                       Pager_Win *pw2 = NULL;
-                       E_Client *ec;
-
-                       pd->wins = eina_list_append(pd->wins, pw);
-                       ec = e_util_desk_client_above(pw->client);
-                       if (ec)
-                         pw2 = _pager_desk_window_find(pd, ec);
-                       if (pw2)
-                         e_layout_child_lower_below(pw->o_window, 
pw2->o_window);
-                       else
-                         e_layout_child_raise(pw->o_window);
-                       _pager_window_move(pw);
-                    }
-               }
-          }
-     }
-
-   return ECORE_CALLBACK_PASS_ON;
-}
-
-static Eina_Bool
-_pager_cb_event_zone_desk_count_set(void *data EINA_UNUSED, int type 
EINA_UNUSED, void *event EINA_UNUSED)
-{
-   Eina_List *l;
-   Pager *p;
-
-   EINA_LIST_FOREACH(pagers, l, p)
-     {
-        _pager_empty(p);
-        _pager_fill(p, p->inst ? p->inst->gcc->gadcon : NULL);
-        if (p->inst) _gc_orient(p->inst->gcc, p->inst->gcc->gadcon->orient);
-     }
-
-   return ECORE_CALLBACK_PASS_ON;
-}
-
-static Eina_Bool
-_pager_cb_event_desk_show(void *data EINA_UNUSED, int type EINA_UNUSED, void 
*event)
-{
-   E_Event_Desk_Show *ev = event;
-   Eina_List *l;
-   Pager *p;
-   Pager_Popup *pp;
-   Pager_Desk *pd;
-
-   EINA_LIST_FOREACH(pagers, l, p)
-     {
-        if (p->zone != ev->desk->zone) continue;
-        pd = _pager_desk_find(p, ev->desk);
-        if (pd) _pager_desk_select(pd);
-
-        if (p->popup)
-          edje_object_part_text_set(p->popup->o_bg, "e.text.label", 
ev->desk->name);
-     }
-
-   if ((pager_config->popup) && (!act_popup))
-     {
-        if ((pp = _pager_popup_find(ev->desk->zone)))
-          evas_object_show(pp->popup);
-        else
-          pp = _pager_popup_new(ev->desk->zone, 0);
-        if (pp->timer)
-          ecore_timer_loop_reset(pp->timer);
-        else
-          pp->timer = ecore_timer_loop_add(pager_config->popup_speed,
-                                      _pager_popup_cb_timeout, pp);
-     }
-
-   return ECORE_CALLBACK_PASS_ON;
-}
-
-static Eina_Bool
-_pager_cb_event_desk_name_change(void *data EINA_UNUSED, int type EINA_UNUSED, 
void *event)
-{
-   E_Event_Desk_Name_Change *ev = event;
-   Eina_List *l;
-   Pager *p;
-
-   EINA_LIST_FOREACH(pagers, l, p)
-     {
-        Pager_Desk *pd;
-
-        if (p->zone != ev->desk->zone) continue;
-        pd = _pager_desk_find(p, ev->desk);
-        if (pager_config->show_desk_names)
-          {
-             if (pd)
-               edje_object_part_text_set(pd->o_desk, "e.text.label",
-                                         ev->desk->name);
-          }
-        else
-          {
-             if (pd)
-               edje_object_part_text_set(pd->o_desk, "e.text.label", "");
-          }
-     }
-
-   return ECORE_CALLBACK_PASS_ON;
-}
-
-static Eina_Bool
-_pager_cb_event_bg_update(void *data EINA_UNUSED, int type EINA_UNUSED, void 
*event)
-{
-   E_Event_Bg_Update *ev = event;
-   Eina_List *l, *ll;
-   Pager *p;
-   Pager_Desk *pd;
-   E_Zone *zone;
-   E_Desk *desk;
-
-   if (ev->zone == -1)
-     {
-        EINA_LIST_FOREACH(pagers, l, p)
-          EINA_LIST_FOREACH(p->desks, ll, pd)
-            _pager_desk_livethumb_setup(pd);
-        return ECORE_CALLBACK_RENEW;
-     }
-   zone = eina_list_nth(e_comp->zones, ev->zone);
-   if (!zone) return ECORE_CALLBACK_RENEW;
-   desk = e_desk_at_xy_get(zone, ev->desk_x, ev->desk_y);
-   if (!desk) return ECORE_CALLBACK_RENEW;
-   EINA_LIST_FOREACH(pagers, l, p)
-     {
-        pd = _pager_desk_find(p, desk);
-        if (!pd) continue;
-        _pager_desk_livethumb_setup(pd);
-        continue;
-     }
-   return ECORE_CALLBACK_RENEW;
-}
-
-static Eina_Bool
-_pager_cb_event_compositor_resize(void *data EINA_UNUSED, int type 
EINA_UNUSED, void *event EINA_UNUSED)
-{
-   Eina_List *l;
-   Pager *p;
-
-   EINA_LIST_FOREACH(pagers, l, p)
-     {
-        Eina_List *l2;
-        Pager_Desk *pd;
-
-        EINA_LIST_FOREACH(p->desks, l2, pd)
-          e_layout_virtual_size_set(pd->o_layout, pd->desk->zone->w,
-                                    pd->desk->zone->h);
-
-        if (p->inst) _gc_orient(p->inst->gcc, p->inst->gcc->gadcon->orient);
-        /* TODO if (p->popup) */
-     }
-
-   return ECORE_CALLBACK_PASS_ON;
-}
-
-static void
-_pager_window_cb_mouse_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED, void *event_info)
-{
-   Evas_Event_Mouse_Down *ev;
-   Pager_Win *pw;
-
-   ev = event_info;
-   pw = data;
-
-   if (!pw) return;
-   if (pw->desk->pager->popup && !act_popup) return;
-   if (!pw->desk->pager->popup && ev->button == 3) return;
-   if (e_client_util_ignored_get(pw->client) || 
e_client_util_is_popup(pw->client)) return;
-   if (ev->button == (int)pager_config->btn_desk) return;
-   if ((ev->button == (int)pager_config->btn_drag) ||
-       (ev->button == (int)pager_config->btn_noplace))
-     {
-        Evas_Coord ox, oy;
-
-        evas_object_geometry_get(pw->o_window, &ox, &oy, NULL, NULL);
-        pw->drag.in_pager = 1;
-        pw->drag.x = ev->canvas.x;
-        pw->drag.y = ev->canvas.y;
-        pw->drag.dx = ox - ev->canvas.x;
-        pw->drag.dy = oy - ev->canvas.y;
-        pw->drag.start = 1;
-        pw->drag.button = ev->button;
-     }
-}
-
-static void
-_pager_window_cb_mouse_up(void *data, Evas *e EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED, void *event_info)
-{
-   Evas_Event_Mouse_Up *ev;
-   Pager_Win *pw;
-   Pager *p;
-
-   ev = event_info;
-   pw = data;
-   if (!pw) return;
-
-   p = pw->desk->pager;
-
-   if (pw->desk->pager->popup && !act_popup) return;
-   if (ev->button == (int)pager_config->btn_desk) return;
-   if ((ev->button == (int)pager_config->btn_drag) ||
-       (ev->button == (int)pager_config->btn_noplace))
-     {
-        if (!pw->drag.from_pager)
-          {
-             edje_object_signal_emit(pw->desk->o_desk, "e,action,drag,out", 
"e");
-             e_comp_object_effect_unclip(pw->client->frame);
-             if (!pw->drag.start) p->just_dragged = 1;
-             pw->drag.in_pager = 0;
-             pw->drag.start = 0;
-             p->dragging = 0;
-          }
-     }
-}
-
-static void
-_pager_window_cb_mouse_move(void *data, Evas *e EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED, void *event_info)
-{
-   Evas_Event_Mouse_Move *ev = event_info;
-   Pager_Win *pw = data;
-   E_Drag *drag;
-   Evas_Object *o, *oo;
-   Evas_Coord x, y, w, h;
-   const char *drag_types[] =
-   { "enlightenment/pager_win", "enlightenment/border" };
-   Evas_Coord dx, dy;
-   unsigned int resist = 0;
-   Evas_Coord mx, my, vx, vy;
-   Pager_Desk *pd;
-
-   if (pw->client->lock_user_location) return;
-   if ((pw->desk->pager->popup) && (!act_popup)) return;
-
-   /* prevent drag for a few pixels */
-   if (pw->drag.start)
-     {
-        dx = pw->drag.x - ev->cur.output.x;
-        dy = pw->drag.y - ev->cur.output.y;
-        resist = pager_config->drag_resist;
-
-        if ((unsigned int)(dx * dx) + (unsigned int)(dy * dy) <= resist * 
resist)
-          return;
-
-        pw->desk->pager->dragging = 1;
-        edje_object_signal_emit(pw->desk->o_desk, "e,action,drag,in", "e");
-        pw->desk->pager->active_drop_pd = pw->desk;
-        pw->drag.start = 0;
-        e_comp_object_effect_clip(pw->client->frame);
-     }
-
-   /* dragging this win around inside the pager */
-   if (pw->drag.in_pager)
-     {
-        /* m for mouse */
-        mx = ev->cur.canvas.x;
-        my = ev->cur.canvas.y;
-
-        /* find desk at pointer */
-        pd = _pager_desk_at_coord(pw->desk->pager, mx, my);
-        if (pd)
-          {
-             int zx, zy, zw, zh;
-             E_Client *ec = pw->client;
-
-             e_zone_useful_geometry_get(pd->desk->zone, &zx, &zy, &zw, &zh);
-             e_layout_coord_canvas_to_virtual(pd->o_layout,
-                                              mx + pw->drag.dx,
-                                              my + pw->drag.dy, &vx, &vy);
-             if (pd != pw->desk)
-               {
-                  E_Desk *old_desk = ec->desk;
-                  Eina_Bool was_focused = e_client_stack_focused_get(ec);
-
-                  edje_object_signal_emit(pw->desk->o_desk, 
"e,action,drag,out", "e");
-                  ec->hidden = 0;
-                  e_client_desk_set(ec, pd->desk);
-                  if (was_focused)
-                    e_desk_last_focused_focus(old_desk);
-                  edje_object_signal_emit(pd->o_desk, "e,action,drag,in", "e");
-                  pd->pager->active_drop_pd = pd;
-               }
-             mx = E_CLAMP(vx + zx, zx, zx + zw - ec->w);
-             my = E_CLAMP(vy + zy, zy, zy + zh - ec->h);
-             evas_object_move(ec->frame, mx, my);
-          }
-        else
-          {
-             evas_object_geometry_get(pw->o_window, &x, &y, &w, &h);
-             evas_object_hide(pw->o_window);
-
-             drag = e_drag_new(x, y, drag_types, 2, pw, -1,
-                               _pager_window_cb_drag_convert,
-                               _pager_window_cb_drag_finished);
-             drag->button_mask = 
evas_pointer_button_down_mask_get(e_comp->evas);
-
-             o = edje_object_add(drag->evas);
-             e_theme_edje_object_set(o, "base/theme/modules/pager",
-                                     "e/modules/pager/window");
-             evas_object_show(o);
-
-             oo = e_client_icon_add(pw->client, drag->evas);
-             if (oo)
-               {
-                  evas_object_show(oo);
-                  edje_object_part_swallow(o, "e.swallow.icon", oo);
-               }
-
-             e_drag_object_set(drag, o);
-             e_drag_resize(drag, w, h);
-             e_drag_start(drag, x - pw->drag.dx, y - pw->drag.dy);
-             e_comp_object_util_del_list_append(drag->comp_object, oo);
-
-             /* this prevents the desk from switching on drags */
-             pw->drag.from_pager = pw->desk->pager;
-             pw->drag.from_pager->dragging = 1;
-             pw->drag.in_pager = 0;
-          }
-     }
-}
-
-static void *
-_pager_window_cb_drag_convert(E_Drag *drag, const char *type)
-{
-   Pager_Win *pw;
-
-   pw = drag->data;
-   if (!strcmp(type, "enlightenment/pager_win")) return pw;
-   if (!strcmp(type, "enlightenment/border")) return pw->client;
-   return NULL;
-}
-
-static void
-_pager_window_cb_drag_finished(E_Drag *drag, int dropped)
-{
-   Pager_Win *pw;
-   E_Zone *zone;
-   E_Desk *desk;
-   int x = 0, y = 0, dx, dy;
-
-   pw = drag->data;
-   if (!pw) return;
-   evas_object_show(pw->o_window);
-   if (!dropped)
-     {
-        int zx, zy, zw, zh;
-        E_Client *ec = pw->client;
-
-        /* wasn't dropped (on pager). move it to position of mouse on screen */
-        zone = e_zone_current_get();
-        desk = e_desk_current_get(zone);
-
-        e_client_zone_set(ec, zone);
-        if ((ec->desk != desk) && desk->visible)
-          {
-             ec->hidden = 0;
-             e_client_desk_set(ec, desk);
-          }
-
-#ifndef HAVE_WAYLAND_ONLY
-        ecore_x_pointer_last_xy_get(&x, &y);
-#endif
-
-        dx = (ec->w / 2);
-        dy = (ec->h / 2);
-
-        e_zone_useful_geometry_get(zone, &zx, &zy, &zw, &zh);
-
-        /* offset so that center of window is on mouse, but keep within desk 
bounds */
-        if (dx < x)
-          {
-             x -= dx;
-             if ((ec->w < zw) && (x + ec->w > zx + zw))
-               x -= x + ec->w - (zx + zw);
-          }
-        else x = 0;
-
-        if (dy < y)
-          {
-             y -= dy;
-             if ((ec->h < zh) && (y + ec->h > zy + zh))
-               y -= y + ec->h - (zy + zh);
-          }
-        else y = 0;
-        evas_object_move(ec->frame, x, y);
-
-        if (!(ec->lock_user_stacking)) evas_object_raise(ec->frame);
-     }
-   if (pw->desk->pager->active_drop_pd)
-     {
-        edje_object_signal_emit(pw->desk->pager->active_drop_pd->o_desk, 
"e,action,drag,out", "e");
-        pw->desk->pager->active_drop_pd = NULL;
-     }
-   if (pw->drag.from_pager) pw->drag.from_pager->dragging = 0;
-   pw->drag.from_pager = NULL;
-   e_comp_object_effect_unclip(pw->client->frame);
-   if (act_popup)
-     {
-        if (e_comp->comp_type == E_PIXMAP_TYPE_X)
-          e_grabinput_get(input_window, 0, input_window);
-        else
-          e_comp_grab_input(1, 1);
-        if (!hold_count) _pager_popup_hide(1);
-     }
-}
-
-static void
-_pager_inst_cb_scroll(void *data)
-{
-   Pager *p;
-
-   p = data;
-   _pager_update_drop_position(p, p->dnd_x, p->dnd_y);
-}
-
-static void
-_pager_update_drop_position(Pager *p, Evas_Coord x, Evas_Coord y)
-{
-   Pager_Desk *pd;
-
-   p->dnd_x = x;
-   p->dnd_y = y;
-   pd = _pager_desk_at_coord(p, x, y);
-   if (pd == p->active_drop_pd) return;
-   if (pd)
-     edje_object_signal_emit(pd->o_desk, "e,action,drag,in", "e");
-   if (p->active_drop_pd)
-     edje_object_signal_emit(p->active_drop_pd->o_desk, "e,action,drag,out", 
"e");
-   p->active_drop_pd = pd;
-}
-
-static void
-_pager_drop_cb_enter(void *data, const char *type EINA_UNUSED, void 
*event_info EINA_UNUSED)
-{
-   Pager *p = data;
-
-   /* FIXME this fixes a segv, but the case is not easy
-    * reproduceable. this makes no sense either since
-    * the same 'pager' is passed to e_drop_handler_add
-    * and it works without this almost all the time.
-    * so this must be an issue with e_dnd code... i guess */
-   if (act_popup) p = act_popup->pager;
-
-   if (p->inst)
-     e_gadcon_client_autoscroll_cb_set(p->inst->gcc, _pager_inst_cb_scroll, p);
-}
-
-static void
-_pager_drop_cb_move(void *data, const char *type EINA_UNUSED, void *event_info)
-{
-   E_Event_Dnd_Move *ev;
-   Pager *p;
-
-   ev = event_info;
-   p = data;
-
-   if (act_popup) p = act_popup->pager;
-
-   _pager_update_drop_position(p, ev->x, ev->y);
-
-   if (p->inst)
-     e_gadcon_client_autoscroll_update(p->inst->gcc, ev->x, ev->y);
-}
-
-static void
-_pager_drop_cb_leave(void *data, const char *type EINA_UNUSED, void 
*event_info EINA_UNUSED)
-{
-   Pager *p = data;
-
-   if (act_popup) p = act_popup->pager;
-
-   if (p->active_drop_pd)
-     edje_object_signal_emit(p->active_drop_pd->o_desk, "e,action,drag,out", 
"e");
-   p->active_drop_pd = NULL;
-
-   if (p->inst) e_gadcon_client_autoscroll_cb_set(p->inst->gcc, NULL, NULL);
-}
-
-static void
-_pager_drop_cb_drop(void *data, const char *type, void *event_info)
-{
-   E_Event_Dnd_Drop *ev;
-   Pager_Desk *pd;
-   Pager_Desk *pd2 = NULL;
-   E_Client *ec = NULL;
-   Eina_List *l;
-   int dx = 0, dy = 0;
-   Pager_Win *pw = NULL;
-   Evas_Coord wx, wy, wx2, wy2;
-   Evas_Coord nx, ny;
-   Pager *p;
-
-   ev = event_info;
-   p = data;
-
-   if (act_popup) p = act_popup->pager;
-
-   pd = _pager_desk_at_coord(p, ev->x, ev->y);
-   if (pd)
-     {
-        if (!strcmp(type, "enlightenment/pager_win"))
-          {
-             pw = (Pager_Win *)(ev->data);
-             if (pw)
-               {
-                  ec = pw->client;
-                  dx = pw->drag.dx;
-                  dy = pw->drag.dy;
-               }
-          }
-        else if (!strcmp(type, "enlightenment/border"))
-          {
-             ec = ev->data;
-             e_layout_coord_virtual_to_canvas(pd->o_layout, ec->x, ec->y,
-                                              &wx, &wy);
-             e_layout_coord_virtual_to_canvas(pd->o_layout, ec->x + ec->w,
-                                              ec->y + ec->h, &wx2, &wy2);
-             dx = (wx - wx2) / 2;
-             dy = (wy - wy2) / 2;
-          }
-        else if (!strcmp(type, "enlightenment/vdesktop"))
-          {
-             pd2 = ev->data;
-             if (!pd2) return;
-             _pager_desk_switch(pd, pd2);
-          }
-        else
-          return;
-
-        if (ec)
-          {
-             E_Maximize max = ec->maximized;
-             E_Fullscreen fs = ec->fullscreen_policy;
-             Eina_Bool fullscreen = ec->fullscreen;
-             E_Desk *old_desk = ec->desk;
-             Eina_Bool was_focused = e_client_stack_focused_get(ec);
-
-             if (ec->iconic) e_client_uniconify(ec);
-             if (ec->maximized)
-               e_client_unmaximize(ec, E_MAXIMIZE_BOTH);
-             if (fullscreen) e_client_unfullscreen(ec);
-             if (pd->desk->visible)
-               ec->hidden = 0;
-             e_client_desk_set(ec, pd->desk);
-             if (was_focused)
-               e_desk_last_focused_focus(old_desk);
-             evas_object_raise(ec->frame);
-
-             if ((!max) && (!fullscreen))
-               {
-                  int zx, zy, zw, zh, mx, my;
-
-                  e_layout_coord_canvas_to_virtual(pd->o_layout,
-                                                   ev->x + dx,
-                                                   ev->y + dy,
-                                                   &nx, &ny);
-                  e_zone_useful_geometry_get(pd->desk->zone,
-                                             &zx, &zy, &zw, &zh);
-
-                  mx = E_CLAMP(nx + zx, zx, zx + zw - ec->w);
-                  my = E_CLAMP(ny + zy, zy, zy + zh - ec->h);
-                  evas_object_move(ec->frame, mx, my);
-               }
-             if (max) e_client_maximize(ec, max);
-             if (fullscreen) e_client_fullscreen(ec, fs);
-          }
-     }
-
-   EINA_LIST_FOREACH(p->desks, l, pd)
-     {
-        if (!p->active_drop_pd) break;
-        if (pd == p->active_drop_pd)
-          {
-             edje_object_signal_emit(pd->o_desk, "e,action,drag,out", "e");
-             p->active_drop_pd = NULL;
-          }
-     }
-
-   if (p->inst) e_gadcon_client_autoscroll_cb_set(p->inst->gcc, NULL, NULL);
-}
-
-static void
-_pager_desk_cb_mouse_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED, void *event_info)
-{
-   Evas_Event_Mouse_Down *ev;
-   Pager_Desk *pd;
-   Evas_Coord ox, oy;
-
-   ev = event_info;
-   pd = data;
-   if (!pd) return;
-   if ((!pd->pager->popup) && (ev->button == 3)) return;
-   if (ev->button == (int)pager_config->btn_desk)
-     {
-        evas_object_geometry_get(pd->o_desk, &ox, &oy, NULL, NULL);
-        pd->drag.start = 1;
-        pd->drag.in_pager = 1;
-        pd->drag.dx = ox - ev->canvas.x;
-        pd->drag.dy = oy - ev->canvas.y;
-        pd->drag.x = ev->canvas.x;
-        pd->drag.y = ev->canvas.y;
-        pd->drag.button = ev->button;
-     }
-   else
-     {
-        pd->drag.dx = pd->drag.dy = pd->drag.x = pd->drag.y = 0;
-     }
-   pd->pager->just_dragged = 0;
-}
-
-static void
-_pager_desk_cb_mouse_up(void *data, Evas *e EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED, void *event_info)
-{
-   Evas_Event_Mouse_Up *ev;
-   Pager_Desk *pd;
-   Pager *p;
-
-   ev = event_info;
-   pd = data;
-
-   if (!pd) return;
-   p = pd->pager;
-
-   /* FIXME: pd->pager->dragging is 0 when finishing a drag from desk to desk 
*/
-   if ((ev->button == 1) && (!pd->pager->dragging) &&
-       (!pd->pager->just_dragged))
-     {
-        current_desk = pd->desk;
-        e_desk_show(pd->desk);
-        pd->drag.start = 0;
-        pd->drag.in_pager = 0;
-        p->active_drop_pd = NULL;
-     }
-   else if (ev->button == (int)pager_config->btn_desk)
-     {
-        if (pd->pager->dragging) pd->pager->dragging = 0;
-        pd->drag.start = 0;
-        pd->drag.in_pager = 0;
-     }
-
-   if ((p->popup) && (p->popup->urgent)) _pager_popup_free(p->popup);
-}
-
-static void
-_pager_desk_cb_mouse_move(void *data, Evas *e EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED, void *event_info)
-{
-   Evas_Event_Mouse_Move *ev;
-   Pager_Desk *pd;
-   Evas_Coord dx, dy;
-   unsigned int resist = 0;
-   E_Drag *drag;
-   Evas_Object *o, *oo, *o_icon;
-   Evas_Coord x, y, w, h;
-   const char *drag_types[] = { "enlightenment/vdesktop" };
-   Pager_Win *pw;
-   Eina_List *l;
-
-   ev = event_info;
-
-   pd = data;
-   if (!pd) return;
-   /* prevent drag for a few pixels */
-   if (pd->drag.start)
-     {
-        dx = pd->drag.x - ev->cur.output.x;
-        dy = pd->drag.y - ev->cur.output.y;
-        if ((pd->pager) && (pd->pager->inst))
-          resist = pager_config->drag_resist;
-
-        if (((unsigned int)(dx * dx) + (unsigned int)(dy * dy)) <=
-            (resist * resist)) return;
-
-        if (pd->pager) pd->pager->dragging = 1;
-        pd->drag.start = 0;
-     }
-
-   if (pd->drag.in_pager && pd->pager)
-     {
-        evas_object_geometry_get(pd->o_desk, &x, &y, &w, &h);
-        drag = e_drag_new(x, y, drag_types, 1, pd, -1,
-                          NULL, _pager_desk_cb_drag_finished);
-        drag->button_mask = evas_pointer_button_down_mask_get(e_comp->evas);
-
-        /* redraw the desktop theme above */
-        o = edje_object_add(drag->evas);
-        e_theme_edje_object_set(o, "base/theme/modules/pager",
-                                "e/modules/pager/desk");
-        evas_object_show(o);
-        e_drag_object_set(drag, o);
-
-        /* and redraw is content */
-        oo = e_layout_add(drag->evas);
-        e_layout_virtual_size_set(oo, pd->pager->zone->w, pd->pager->zone->h);
-        edje_object_part_swallow(o, "e.swallow.content", oo);
-        e_comp_object_util_del_list_append(drag->comp_object, oo);
-        evas_object_show(oo);
-
-        EINA_LIST_FOREACH(pd->wins, l, pw)
-          {
-             int zx, zy;
-
-             if ((!pw) || (pw->client->iconic)
-                 || (pw->client->netwm.state.skip_pager))
-               continue;
-
-             o = edje_object_add(drag->evas);
-             e_theme_edje_object_set(o, "base/theme/modules/pager",
-                                     "e/modules/pager/window");
-             e_layout_pack(oo, o);
-             e_layout_child_raise(o);
-             e_zone_useful_geometry_get(pw->desk->desk->zone,
-                                        &zx, &zy, NULL, NULL);
-             e_layout_child_move(o, pw->client->x - zx, pw->client->y - zy);
-             e_layout_child_resize(o, pw->client->w, pw->client->h);
-             e_comp_object_util_del_list_append(drag->comp_object, o);
-             evas_object_show(o);
-
-             if ((o_icon = e_client_icon_add(pw->client, drag->evas)))
-               {
-                  evas_object_show(o_icon);
-                  edje_object_part_swallow(o, "e.swallow.icon", o_icon);
-                  e_comp_object_util_del_list_append(drag->comp_object, 
o_icon);
-               }
-          }
-        e_drag_resize(drag, w, h);
-        e_drag_start(drag, x - pd->drag.dx, y - pd->drag.dy);
-
-        pd->drag.from_pager = pd->pager;
-        pd->drag.from_pager->dragging = 1;
-        pd->drag.in_pager = 0;
-     }
-}
-
-static void
-_pager_desk_cb_drag_finished(E_Drag *drag, int dropped)
-{
-   Pager_Desk *pd;
-   Pager_Desk *pd2 = NULL;
-   Eina_List *l;
-   E_Desk *desk;
-   E_Zone *zone;
-   Pager *p;
-
-   pd = drag->data;
-   if (!pd) return;
-   if (!dropped)
-     {
-        /* wasn't dropped on pager, switch with current desktop */
-        if (!pd->desk) return;
-        zone = e_zone_current_get();
-        desk = e_desk_current_get(zone);
-        EINA_LIST_FOREACH(pagers, l, p)
-          {
-             pd2 = _pager_desk_find(p, desk);
-             if (pd2) break;
-          }
-        _pager_desk_switch(pd, pd2);
-     }
-   if (pd->drag.from_pager)
-     {
-        pd->drag.from_pager->dragging = 0;
-        pd->drag.from_pager->just_dragged = 0;
-     }
-   if (pd->pager->active_drop_pd)
-     {
-        edje_object_signal_emit(pd->pager->active_drop_pd->o_desk, 
"e,action,drag,out", "e");
-        pd->pager->active_drop_pd = NULL;
-     }
-   pd->drag.from_pager = NULL;
-
-   if (act_popup)
-     {
-        if (e_comp->comp_type == E_PIXMAP_TYPE_X)
-          e_grabinput_get(input_window, 0, input_window);
-        else
-          e_comp_grab_input(1, 1);
-        if (!hold_count) _pager_popup_hide(1);
-     }
-}
-
-static void
-_pager_desk_cb_mouse_wheel(void *data, Evas *e EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED, void *event_info)
-{
-   Evas_Event_Mouse_Wheel *ev;
-   Pager_Desk *pd;
-
-   ev = event_info;
-   pd = data;
-
-   if (pd->pager->popup) return;
-
-   if (pager_config->flip_desk)
-     e_zone_desk_linear_flip_by(pd->desk->zone, ev->z);
-}
-
-static Eina_Bool
-_pager_popup_cb_timeout(void *data)
-{
-   Pager_Popup *pp;
-
-   pp = data;
-   pp->timer = NULL;
-   _pager_popup_free(pp);
-
-#ifndef HAVE_WAYLAND_ONLY
-   if (e_comp->comp_type == E_PIXMAP_TYPE_X)
-     {
-        if (input_window)
-          {
-             e_grabinput_release(input_window, input_window);
-             ecore_x_window_free(input_window);
-             input_window = 0;
-          }
-     }
-#endif
-   if (e_comp->comp_type == E_PIXMAP_TYPE_WL)
-     {
-        e_comp_ungrab_input(1, 1);
-        input_window = 0;
-     }
-
-   return ECORE_CALLBACK_CANCEL;
-}
-
-/************************************************************************/
-/* popup-on-keyaction functions */
-static int
-_pager_popup_show(void)
-{
-   E_Zone *zone;
-   int x, y, w, h;
-   Pager_Popup *pp;
-   //const char *drop[] =
-   //{
-      //"enlightenment/pager_win", "enlightenment/border",
-      //"enlightenment/vdesktop"
-   //};
-
-   if ((act_popup) || (input_window)) return 0;
-
-   zone = e_zone_current_get();
-
-   pp = _pager_popup_find(zone);
-   if (pp) _pager_popup_free(pp);
-
-#ifndef HAVE_WAYLAND_ONLY
-   if (e_comp->comp_type == E_PIXMAP_TYPE_X)
-     {
-        input_window = ecore_x_window_input_new(e_comp->win, 0, 0, 1, 1);
-        ecore_x_window_show(input_window);
-        if (!e_grabinput_get(input_window, 0, input_window))
-          {
-             ecore_x_window_free(input_window);
-             input_window = 0;
-             return 0;
-          }
-     }
-#endif
-   if (e_comp->comp_type == E_PIXMAP_TYPE_WL)
-     {
-        input_window = e_comp->ee_win;
-        e_comp_grab_input(1, 1);
-     }
-
-   handlers = eina_list_append
-       (handlers, ecore_event_handler_add
-         (ECORE_EVENT_KEY_DOWN, _pager_popup_cb_key_down, NULL));
-   handlers = eina_list_append
-       (handlers, ecore_event_handler_add
-         (ECORE_EVENT_KEY_UP, _pager_popup_cb_key_up, NULL));
-   handlers = eina_list_append
-       (handlers, ecore_event_handler_add
-         (ECORE_EVENT_MOUSE_BUTTON_DOWN, _pager_popup_cb_mouse_down, NULL));
-   handlers = eina_list_append
-       (handlers, ecore_event_handler_add
-         (ECORE_EVENT_MOUSE_BUTTON_UP, _pager_popup_cb_mouse_up, NULL));
-   handlers = eina_list_append
-       (handlers, ecore_event_handler_add
-         (ECORE_EVENT_MOUSE_WHEEL, _pager_popup_cb_mouse_wheel, NULL));
-   handlers = eina_list_append
-       (handlers, ecore_event_handler_add
-         (ECORE_EVENT_MOUSE_MOVE, _pager_popup_cb_mouse_move, NULL));
-
-   act_popup = _pager_popup_new(zone, 1);
-
-   evas_object_geometry_get(act_popup->pager->o_table, &x, &y, &w, &h);
-
-   current_desk = e_desk_current_get(zone);
-
-   return 1;
-}
-
-static void
-_pager_popup_hide(int switch_desk)
-{
-   hold_count = 0;
-   hold_mod = 0;
-   while (handlers)
-     {
-        ecore_event_handler_del(handlers->data);
-        handlers = eina_list_remove_list(handlers, handlers);
-     }
-
-   act_popup->timer = ecore_timer_loop_add(0.1, _pager_popup_cb_timeout, 
act_popup);
-
-   if ((switch_desk) && (current_desk)) e_desk_show(current_desk);
-
-   act_popup = NULL;
-}
-
-static void
-_pager_popup_modifiers_set(int mod)
-{
-   if (!act_popup) return;
-   hold_mod = mod;
-   hold_count = 0;
-   if (hold_mod & ECORE_EVENT_MODIFIER_SHIFT) hold_count++;
-   if (hold_mod & ECORE_EVENT_MODIFIER_CTRL) hold_count++;
-   if (hold_mod & ECORE_EVENT_MODIFIER_ALT) hold_count++;
-   if (hold_mod & ECORE_EVENT_MODIFIER_WIN) hold_count++;
-}
-
-static void
-_pager_popup_desk_switch(int x, int y)
-{
-   int max_x, max_y, desk_x, desk_y;
-   Pager_Desk *pd;
-   Pager_Popup *pp = act_popup;
-
-   e_zone_desk_count_get(pp->pager->zone, &max_x, &max_y);
-
-   desk_x = current_desk->x + x;
-   desk_y = current_desk->y + y;
-
-   if (desk_x < 0)
-     desk_x = max_x - 1;
-   else if (desk_x >= max_x)
-     desk_x = 0;
-
-   if (desk_y < 0)
-     desk_y = max_y - 1;
-   else if (desk_y >= max_y)
-     desk_y = 0;
-
-   current_desk = e_desk_at_xy_get(pp->pager->zone, desk_x, desk_y);
-
-   pd = _pager_desk_find(pp->pager, current_desk);
-   if (pd) _pager_desk_select(pd);
-
-   edje_object_part_text_set(pp->o_bg, "e.text.label", current_desk->name);
-}
-
-static void
-_pager_popup_cb_action_show(E_Object *obj EINA_UNUSED, const char *params 
EINA_UNUSED, Ecore_Event_Key *ev EINA_UNUSED)
-{
-   if (_pager_popup_show())
-     _pager_popup_modifiers_set(ev->modifiers);
-}
-
-static void
-_pager_popup_cb_action_switch(E_Object *obj EINA_UNUSED, const char *params, 
Ecore_Event_Key *ev)
-{
-   int max_x, max_y, desk_x;
-   int x = 0, y = 0;
-
-   if (!act_popup)
-     {
-        if (_pager_popup_show())
-          _pager_popup_modifiers_set(ev->modifiers);
-        else
-          return;
-     }
-
-   e_zone_desk_count_get(act_popup->pager->zone, &max_x, &max_y);
-   desk_x = current_desk->x /* + x <=this is always 0 */;
-
-   if (!strcmp(params, "left"))
-     x = -1;
-   else if (!strcmp(params, "right"))
-     x = 1;
-   else if (!strcmp(params, "up"))
-     y = -1;
-   else if (!strcmp(params, "down"))
-     y = 1;
-   else if (!strcmp(params, "next"))
-     {
-        x = 1;
-        if (desk_x == max_x - 1)
-          y = 1;
-     }
-   else if (!strcmp(params, "prev"))
-     {
-        x = -1;
-        if (desk_x == 0)
-          y = -1;
-     }
-
-   _pager_popup_desk_switch(x, y);
-}
-
-static Eina_Bool
-_pager_popup_cb_mouse_down(void *data EINA_UNUSED, int type EINA_UNUSED, void 
*event)
-{
-   Ecore_Event_Mouse_Button *ev;
-   Pager_Popup *pp = act_popup;
-
-   ev = event;
-   if (ev->window != input_window) return ECORE_CALLBACK_PASS_ON;
-
-   evas_event_feed_mouse_down(evas_object_evas_get(pp->popup), ev->buttons,
-                              0, ev->timestamp, NULL);
-   return ECORE_CALLBACK_PASS_ON;
-}
-
-static Eina_Bool
-_pager_popup_cb_mouse_up(void *data EINA_UNUSED, int type EINA_UNUSED, void 
*event)
-{
-   Ecore_Event_Mouse_Button *ev;
-   Pager_Popup *pp = act_popup;
-
-   ev = event;
-   if (ev->window != input_window) return ECORE_CALLBACK_PASS_ON;
-
-   evas_event_feed_mouse_up(evas_object_evas_get(pp->popup), ev->buttons,
-                            0, ev->timestamp, NULL);
-   return ECORE_CALLBACK_PASS_ON;
-}
-
-static Eina_Bool
-_pager_popup_cb_mouse_move(void *data EINA_UNUSED, int type EINA_UNUSED, void 
*event)
-{
-   Ecore_Event_Mouse_Move *ev;
-   Pager_Popup *pp = act_popup;
-   int x, y;
-
-   ev = event;
-   if (ev->window != input_window) return 1;
-
-   evas_object_geometry_get(pp->popup, &x, &y, NULL, NULL);
-   evas_event_feed_mouse_move(evas_object_evas_get(pp->popup),
-                              ev->x - x + pp->pager->zone->x,
-                              ev->y - y + pp->pager->zone->y,
-                              ev->timestamp, NULL);
-   return ECORE_CALLBACK_PASS_ON;
-}
-
-static Eina_Bool
-_pager_popup_cb_mouse_wheel(void *data EINA_UNUSED, int type EINA_UNUSED, void 
*event)
-{
-   Ecore_Event_Mouse_Wheel *ev = event;
-   Pager_Popup *pp = act_popup;
-   int max_x;
-
-   e_zone_desk_count_get(pp->pager->zone, &max_x, NULL);
-
-   if (current_desk->x + ev->z >= max_x)
-     _pager_popup_desk_switch(1, 1);
-   else if (current_desk->x + ev->z < 0)
-     _pager_popup_desk_switch(-1, -1);
-   else
-     _pager_popup_desk_switch(ev->z, 0);
-
-   return ECORE_CALLBACK_PASS_ON;
-}
-
-static Eina_Bool
-_pager_popup_cb_key_down(void *data EINA_UNUSED, int type EINA_UNUSED, void 
*event)
-{
-   Ecore_Event_Key *ev;
-
-   ev = event;
-   if (ev->window != input_window) return ECORE_CALLBACK_PASS_ON;
-   if (!strcmp(ev->key, "Up"))
-     _pager_popup_desk_switch(0, -1);
-   else if (!strcmp(ev->key, "Down"))
-     _pager_popup_desk_switch(0, 1);
-   else if (!strcmp(ev->key, "Left"))
-     _pager_popup_desk_switch(-1, 0);
-   else if (!strcmp(ev->key, "Right"))
-     _pager_popup_desk_switch(1, 0);
-   else if (!strcmp(ev->key, "Escape"))
-     _pager_popup_hide(0);
-   else if ((!strcmp(ev->key, "Return")) || (!strcmp(ev->key, "KP_Enter")) ||
-            (!strcmp(ev->key, "space")))
-     {
-        Pager_Popup *pp = act_popup;
-
-        if (pp)
-          {
-             E_Desk *desk;
-             
-             desk = e_desk_at_xy_get(pp->pager->zone,
-                                     current_desk->x, current_desk->y);
-             if (desk) e_desk_show(desk);
-          }
-        _pager_popup_hide(0);
-     }
-   else
-     {
-        E_Config_Binding_Key *binding;
-        Eina_List *l;
-
-        EINA_LIST_FOREACH(e_bindings->key_bindings, l, binding)
-          {
-             E_Binding_Modifier mod = 0;
-
-             if ((binding->action) && (strcmp(binding->action, 
"pager_switch")))
-               continue;
-
-             if (ev->modifiers & ECORE_EVENT_MODIFIER_SHIFT)
-               mod |= E_BINDING_MODIFIER_SHIFT;
-             if (ev->modifiers & ECORE_EVENT_MODIFIER_CTRL)
-               mod |= E_BINDING_MODIFIER_CTRL;
-             if (ev->modifiers & ECORE_EVENT_MODIFIER_ALT)
-               mod |= E_BINDING_MODIFIER_ALT;
-             if (ev->modifiers & ECORE_EVENT_MODIFIER_WIN)
-               mod |= E_BINDING_MODIFIER_WIN;
-
-             if (binding->key && (!strcmp(binding->key, ev->key)) &&
-                 ((binding->modifiers == mod)))
-               {
-                  E_Action *act;
-
-                  act = e_action_find(binding->action);
-
-                  if (act)
-                    {
-                       if (act->func.go_key)
-                         act->func.go_key(NULL, binding->params, ev);
-                    }
-               }
-          }
-     }
-   return ECORE_CALLBACK_PASS_ON;
-}
-
-static Eina_Bool
-_pager_popup_cb_key_up(void *data EINA_UNUSED, int type EINA_UNUSED, void 
*event)
-{
-   Ecore_Event_Key *ev;
-
-   ev = event;
-   if (!(act_popup)) return ECORE_CALLBACK_PASS_ON;
-
-   if (hold_mod)
-     {
-        if ((hold_mod & ECORE_EVENT_MODIFIER_SHIFT) &&
-            (!strcmp(ev->key, "Shift_L"))) hold_count--;
-        else if ((hold_mod & ECORE_EVENT_MODIFIER_SHIFT) &&
-                 (!strcmp(ev->key, "Shift_R")))
-          hold_count--;
-        else if ((hold_mod & ECORE_EVENT_MODIFIER_CTRL) &&
-                 (!strcmp(ev->key, "Control_L")))
-          hold_count--;
-        else if ((hold_mod & ECORE_EVENT_MODIFIER_CTRL) &&
-                 (!strcmp(ev->key, "Control_R")))
-          hold_count--;
-        else if ((hold_mod & ECORE_EVENT_MODIFIER_ALT) &&
-                 (!strcmp(ev->key, "Alt_L")))
-          hold_count--;
-        else if ((hold_mod & ECORE_EVENT_MODIFIER_ALT) &&
-                 (!strcmp(ev->key, "Alt_R")))
-          hold_count--;
-        else if ((hold_mod & ECORE_EVENT_MODIFIER_ALT) &&
-                 (!strcmp(ev->key, "Meta_L")))
-          hold_count--;
-        else if ((hold_mod & ECORE_EVENT_MODIFIER_ALT) &&
-                 (!strcmp(ev->key, "Meta_R")))
-          hold_count--;
-        else if ((hold_mod & ECORE_EVENT_MODIFIER_ALT) &&
-                 (!strcmp(ev->key, "Super_L")))
-          hold_count--;
-        else if ((hold_mod & ECORE_EVENT_MODIFIER_ALT) &&
-                 (!strcmp(ev->key, "Super_R")))
-          hold_count--;
-        else if ((hold_mod & ECORE_EVENT_MODIFIER_WIN) &&
-                 (!strcmp(ev->key, "Super_L")))
-          hold_count--;
-        else if ((hold_mod & ECORE_EVENT_MODIFIER_WIN) &&
-                 (!strcmp(ev->key, "Super_R")))
-          hold_count--;
-        else if ((hold_mod & ECORE_EVENT_MODIFIER_WIN) &&
-                 (!strcmp(ev->key, "Mode_switch")))
-          hold_count--;
-        else if ((hold_mod & ECORE_EVENT_MODIFIER_WIN) &&
-                 (!strcmp(ev->key, "Meta_L")))
-          hold_count--;
-        else if ((hold_mod & ECORE_EVENT_MODIFIER_WIN) &&
-                 (!strcmp(ev->key, "Meta_R")))
-          hold_count--;
-        if ((hold_count <= 0) && (!act_popup->pager->dragging))
-          {
-             _pager_popup_hide(1);
-             return ECORE_CALLBACK_PASS_ON;
-          }
-     }
-
-   return ECORE_CALLBACK_PASS_ON;
-}
-
-/***************************************************************************/
-/* module setup */
-E_API E_Module_Api e_modapi =
-{
-   E_MODULE_API_VERSION, "Pager"
-};
-
-E_API void *
-e_modapi_init(E_Module *m)
-{
-   E_Module *p;
-
-   p = e_module_find("pager");
-   if (p && p->enabled)
-     {
-        e_util_dialog_show(_("Error"), _("Pager Plain module cannot be loaded 
at the same time as Pager!"));
-        return NULL;
-     }
-   conf_edd = E_CONFIG_DD_NEW("Pager_Config", Config);
-#undef T
-#undef D
-#define T Config
-#define D conf_edd
-   E_CONFIG_VAL(D, T, popup, UINT);
-   E_CONFIG_VAL(D, T, popup_speed, DOUBLE);
-   E_CONFIG_VAL(D, T, popup_urgent, UINT);
-   E_CONFIG_VAL(D, T, popup_urgent_stick, UINT);
-   E_CONFIG_VAL(D, T, popup_urgent_speed, DOUBLE);
-   E_CONFIG_VAL(D, T, show_desk_names, UINT);
-   E_CONFIG_VAL(D, T, popup_height, INT);
-   E_CONFIG_VAL(D, T, popup_act_height, INT);
-   E_CONFIG_VAL(D, T, drag_resist, UINT);
-   E_CONFIG_VAL(D, T, btn_drag, UCHAR);
-   E_CONFIG_VAL(D, T, btn_noplace, UCHAR);
-   E_CONFIG_VAL(D, T, btn_desk, UCHAR);
-   E_CONFIG_VAL(D, T, flip_desk, UCHAR);
-   E_CONFIG_VAL(D, T, disable_live_preview, UCHAR);
-
-   pager_config = e_config_domain_load("module.pager_plain", conf_edd);
-
-   if (!pager_config)
-     {
-        pager_config = E_NEW(Config, 1);
-        pager_config->popup = 1;
-        pager_config->popup_speed = 1.0;
-        pager_config->popup_urgent = 0;
-        pager_config->popup_urgent_stick = 0;
-        pager_config->popup_urgent_speed = 1.5;
-        pager_config->show_desk_names = 0;
-        pager_config->popup_height = 60;
-        pager_config->popup_act_height = 60;
-        pager_config->drag_resist = 3;
-        pager_config->btn_drag = 1;
-        pager_config->btn_noplace = 2;
-        pager_config->btn_desk = 2;
-        pager_config->flip_desk = 0;
-        pager_config->disable_live_preview = 1;
-     }
-   E_CONFIG_LIMIT(pager_config->popup, 0, 1);
-   E_CONFIG_LIMIT(pager_config->popup_speed, 0.1, 10.0);
-   E_CONFIG_LIMIT(pager_config->popup_urgent, 0, 1);
-   E_CONFIG_LIMIT(pager_config->popup_urgent_stick, 0, 1);
-   E_CONFIG_LIMIT(pager_config->popup_urgent_speed, 0.1, 10.0);
-   E_CONFIG_LIMIT(pager_config->show_desk_names, 0, 1);
-   E_CONFIG_LIMIT(pager_config->popup_height, 20, 200);
-   E_CONFIG_LIMIT(pager_config->popup_act_height, 20, 200);
-   E_CONFIG_LIMIT(pager_config->drag_resist, 0, 50);
-   E_CONFIG_LIMIT(pager_config->flip_desk, 0, 1);
-   E_CONFIG_LIMIT(pager_config->btn_drag, 0, 32);
-   E_CONFIG_LIMIT(pager_config->btn_noplace, 0, 32);
-   E_CONFIG_LIMIT(pager_config->btn_desk, 0, 32);
-   E_CONFIG_LIMIT(pager_config->disable_live_preview, 0, 1);
-
-   E_LIST_HANDLER_APPEND(pager_config->handlers, E_EVENT_CLIENT_RESIZE, 
_pager_cb_event_client_resize, NULL);
-   E_LIST_HANDLER_APPEND(pager_config->handlers, E_EVENT_CLIENT_MOVE, 
_pager_cb_event_client_move, NULL);
-   E_LIST_HANDLER_APPEND(pager_config->handlers, E_EVENT_CLIENT_ADD, 
_pager_cb_event_client_add, NULL);
-   E_LIST_HANDLER_APPEND(pager_config->handlers, E_EVENT_CLIENT_REMOVE, 
_pager_cb_event_client_remove, NULL);
-   E_LIST_HANDLER_APPEND(pager_config->handlers, E_EVENT_CLIENT_ICONIFY, 
_pager_cb_event_client_iconify, NULL);
-   E_LIST_HANDLER_APPEND(pager_config->handlers, E_EVENT_CLIENT_UNICONIFY, 
_pager_cb_event_client_uniconify, NULL);
-   E_LIST_HANDLER_APPEND(pager_config->handlers, E_EVENT_CLIENT_PROPERTY, 
_pager_cb_event_client_stick, NULL);
-   E_LIST_HANDLER_APPEND(pager_config->handlers, E_EVENT_CLIENT_PROPERTY, 
_pager_cb_event_client_unstick, NULL);
-   E_LIST_HANDLER_APPEND(pager_config->handlers, E_EVENT_CLIENT_DESK_SET, 
_pager_cb_event_client_desk_set, NULL);
-   E_LIST_HANDLER_APPEND(pager_config->handlers, E_EVENT_CLIENT_STACK, 
_pager_cb_event_client_stack, NULL);
-   E_LIST_HANDLER_APPEND(pager_config->handlers, E_EVENT_CLIENT_PROPERTY, 
_pager_cb_event_client_icon_change, NULL);
-   E_LIST_HANDLER_APPEND(pager_config->handlers, E_EVENT_CLIENT_PROPERTY, 
_pager_cb_event_client_urgent_change, NULL);
-   E_LIST_HANDLER_APPEND(pager_config->handlers, E_EVENT_CLIENT_FOCUS_IN, 
_pager_cb_event_client_focus_in, NULL);
-   E_LIST_HANDLER_APPEND(pager_config->handlers, E_EVENT_CLIENT_FOCUS_OUT, 
_pager_cb_event_client_focus_out, NULL);
-   E_LIST_HANDLER_APPEND(pager_config->handlers, E_EVENT_CLIENT_PROPERTY, 
_pager_cb_event_client_property, NULL);
-   E_LIST_HANDLER_APPEND(pager_config->handlers, E_EVENT_ZONE_DESK_COUNT_SET, 
_pager_cb_event_zone_desk_count_set, NULL);
-   E_LIST_HANDLER_APPEND(pager_config->handlers, E_EVENT_DESK_SHOW, 
_pager_cb_event_desk_show, NULL);
-   E_LIST_HANDLER_APPEND(pager_config->handlers, E_EVENT_DESK_NAME_CHANGE, 
_pager_cb_event_desk_name_change, NULL);
-   E_LIST_HANDLER_APPEND(pager_config->handlers, E_EVENT_COMPOSITOR_UPDATE, 
_pager_cb_event_compositor_resize, NULL);
-   E_LIST_HANDLER_APPEND(pager_config->handlers, E_EVENT_BG_UPDATE, 
_pager_cb_event_bg_update, NULL);
-
-   pager_config->module = m;
-
-   e_gadcon_provider_register(&_gadcon_class);
-
-   e_configure_registry_item_add("extensions/pager", 40, _("Pager"), NULL,
-                                 "preferences-pager", _pager_config_dialog);
-
-   act_popup_show = e_action_add("pager_show");
-   if (act_popup_show)
-     {
-        act_popup_show->func.go_key = _pager_popup_cb_action_show;
-        e_action_predef_name_set(N_("Pager"), N_("Show Pager Popup"),
-                                 "pager_show", "<none>", NULL, 0);
-     }
-   act_popup_switch = e_action_add("pager_switch");
-   if (act_popup_switch)
-     {
-        act_popup_switch->func.go_key = _pager_popup_cb_action_switch;
-        e_action_predef_name_set(N_("Pager"), N_("Popup Desk Right"),
-                                 "pager_switch", "right", NULL, 0);
-        e_action_predef_name_set(N_("Pager"), N_("Popup Desk Left"),
-                                 "pager_switch", "left", NULL, 0);
-        e_action_predef_name_set(N_("Pager"), N_("Popup Desk Up"),
-                                 "pager_switch", "up", NULL, 0);
-        e_action_predef_name_set(N_("Pager"), N_("Popup Desk Down"),
-                                 "pager_switch", "down", NULL, 0);
-        e_action_predef_name_set(N_("Pager"), N_("Popup Desk Next"),
-                                 "pager_switch", "next", NULL, 0);
-        e_action_predef_name_set(N_("Pager"), N_("Popup Desk Previous"),
-                                 "pager_switch", "prev", NULL, 0);
-     }
-
-   return m;
-}
-
-E_API int
-e_modapi_shutdown(E_Module *m EINA_UNUSED)
-{
-   e_gadcon_provider_unregister(&_gadcon_class);
-
-   if (pager_config->config_dialog)
-     e_object_del(E_OBJECT(pager_config->config_dialog));
-   E_FREE_LIST(pager_config->handlers, ecore_event_handler_del);
-
-   e_configure_registry_item_del("extensions/pager");
-
-   e_action_del("pager_show");
-   e_action_del("pager_switch");
-
-   e_action_predef_name_del("Pager", "Popup Desk Right");
-   e_action_predef_name_del("Pager", "Popup Desk Left");
-   e_action_predef_name_del("Pager", "Popup Desk Up");
-   e_action_predef_name_del("Pager", "Popup Desk Down");
-   e_action_predef_name_del("Pager", "Popup Desk Next");
-   e_action_predef_name_del("Pager", "Popup Desk Previous");
-
-   E_FREE(pager_config);
-   E_CONFIG_DD_FREE(conf_edd);
-   return 1;
-}
-
-E_API int
-e_modapi_save(E_Module *m EINA_UNUSED)
-{
-   e_config_domain_save("module.pager_plain", conf_edd, pager_config);
-   return 1;
-}
-
diff --git a/src/modules/pager_plain/e_mod_main.h 
b/src/modules/pager_plain/e_mod_main.h
deleted file mode 100644
index 49eb5c084..000000000
--- a/src/modules/pager_plain/e_mod_main.h
+++ /dev/null
@@ -1,63 +0,0 @@
-#ifndef E_MOD_MAIN_H
-#define E_MOD_MAIN_H
-
-typedef struct _Config Config;
-typedef struct _Config_Item Config_Item;
-
-#define PAGER_RESIZE_NONE 0
-#define PAGER_RESIZE_HORZ 1
-#define PAGER_RESIZE_VERT 2
-#define PAGER_RESIZE_BOTH 3
-
-#define PAGER_DESKNAME_NONE 0
-#define PAGER_DESKNAME_TOP 1
-#define PAGER_DESKNAME_BOTTOM 2
-#define PAGER_DESKNAME_LEFT 3
-#define PAGER_DESKNAME_RIGHT 4
-
-struct _Config
-{
-   unsigned int popup;
-   double popup_speed;
-   unsigned int popup_urgent;
-   unsigned int popup_urgent_stick;
-   unsigned int popup_urgent_focus;
-   double popup_urgent_speed;
-   unsigned int show_desk_names;
-   int popup_act_height; /*keyaction popup */
-   int popup_height;    /* urgent/on-deskswitch popup*/
-   unsigned int drag_resist;
-   unsigned int btn_drag;
-   unsigned int btn_noplace;
-   unsigned int btn_desk;
-   unsigned int flip_desk;
-   unsigned int disable_live_preview;
-
-   /* just config state */
-   E_Module *module;
-   E_Config_Dialog *config_dialog;
-   Eina_List *instances, *handlers;
-};
-
-E_API extern E_Module_Api e_modapi;
-
-E_API void *e_modapi_init(E_Module *m);
-E_API int e_modapi_shutdown(E_Module *m);
-E_API int e_modapi_save(E_Module *m);
-
-EINTERN void _pager_cb_config_updated(void);
-EINTERN void _config_pager_module(Config_Item *ci);
-extern Config *pager_config;
-
-/**
- * @addtogroup Optional_Gadgets
- * @{
- *
- * @defgroup Module_Pager Virtual Desktop Pager
- *
- * Shows the grid of virtual desktops and allows changing between
- * them.
- *
- * @}
- */
-#endif
diff --git a/src/modules/pager_plain/meson.build 
b/src/modules/pager_plain/meson.build
deleted file mode 100644
index 5b450ed2c..000000000
--- a/src/modules/pager_plain/meson.build
+++ /dev/null
@@ -1,5 +0,0 @@
-src = files(
-  'e_mod_main.c',
-  'e_mod_config.c',
-  'e_mod_main.h'
- )
diff --git a/src/modules/pager_plain/module.desktop 
b/src/modules/pager_plain/module.desktop
deleted file mode 100644
index dea0d4299..000000000
--- a/src/modules/pager_plain/module.desktop
+++ /dev/null
@@ -1,35 +0,0 @@
-[Desktop Entry]
-Type=Link
-Name=Pager Plain
-Name[ca]=Paginador Plain
-Name[cs]=Přepínač ploch Plain
-Name[de]=Pager Plain
-Name[eo]=Tabulpaĝilo Plain
-Name[es]=Paginador Plain
-Name[fr]=Miniature des bureaux ordinaire
-Name[gl]=Paxinador Plain
-Name[hu]=Lapozó Plain
-Name[it]=Pager (senza miniature)
-Name[ms]=Penghalaman Plain
-Name[pt]=Paginador Plain
-Name[ru]=Простой пейджер
-Name[sr]=Страничник Plain
-Name[tr]=Sayfalayıcı Plain
-Comment=Gadget to allow you to visualize your virtual desktops and the windows 
they contain.
-Comment[ca]=Permet visualitzar els escriptoris virtuals i les finestres que 
contenen.
-Comment[cs]=Gadget pro zobrazení/přepínání virtuálních ploch a oken, které 
obsahují.
-Comment[de]=Visualisiert die virtuellen Desktops und die enthaltenen Fenster.
-Comment[eo]=Vidigi siajn virtualajn labortablojn kaj ties fenestrojn.
-Comment[es]=Dispositivo que permite visualizar los escritorios virtuales y las 
ventanas que contienen.
-Comment[fr]=Visualise les bureaux virtuels et les fenêtres qu'ils contiennent.
-Comment[gl]=Gadget que lle permite visualizar os escritorios virtuais e as 
xanelas que conteñen.
-Comment[hu]=Ez a modul lehetővé teszi számunkra a látványos, virtuális 
munkaasztalok közötti váltást.
-Comment[it]=Modulo che permette di visualizzare i desktop virtuali e le 
finestre che contengono.
-Comment[ms]=Gadjet yang membolehkan anda visualkan desktop maya anda dan 
tetingkap didalamnya.
-Comment[nl]=Programmaatje om uw virtuele bureaubladen te visualiseren en de 
vensters die ze bevatten.
-Comment[pt]=Permite-lhe visualizar as áreas virtuais e as janelas que nelas 
existem
-Comment[ru]=Гаджет для отображения виртуальных столов и содержащихся на них 
окон.
-Comment[sr]=Справица која дочарава нестварне површи и прозоре које оне садрже.
-Comment[tr]=Sanal masaüstlerini ve içerisindeki pencereleri görselleştirmenizi 
sağlayan araç.
-Icon=e-module-pager_plain
-X-Enlightenment-ModuleType=utils

-- 


Reply via email to