raster pushed a commit to branch master.

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

commit 3e4ff27c19289b8dc9b196ca7632100a860e64e9
Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
Date:   Thu Sep 19 19:17:12 2019 +0100

    pager - more direct config from right click menu
---
 TODO                           |  3 ---
 src/modules/pager/e_mod_main.c | 33 ++++++++++++++++++++++++++++++++-
 2 files changed, 32 insertions(+), 4 deletions(-)

diff --git a/TODO b/TODO
index 12be817cc..627398b40 100644
--- a/TODO
+++ b/TODO
@@ -147,9 +147,6 @@ TODO:
 * efm: partitioning front end
 * efm: filesystem formatting front-end
 * efm: tune2fs/fsck front-end
-* pager: add "Set desktop name" on right click on desktop in pager
-  * turn on desktop names when setting one here
-* pager: add "Set wallpaper" on right clikc on desktop in pager
 * start: start menu could do with more featured content
   * like you see on windows for example (search and multiple columns etc.)
   * a touch screen android-style scrolling fullscreen app icon style
diff --git a/src/modules/pager/e_mod_main.c b/src/modules/pager/e_mod_main.c
index a3f00d28b..e6fdc1f7a 100644
--- a/src/modules/pager/e_mod_main.c
+++ b/src/modules/pager/e_mod_main.c
@@ -45,6 +45,9 @@ struct _Pager
    int             xnum, ynum;
    Eina_List      *desks;
    Pager_Desk     *active_pd;
+   struct {
+      int zone_num, desk_x, desk_y;
+   } menu;
    unsigned char   dragging E_BITFIELD;
    unsigned char   just_dragged E_BITFIELD;
    Evas_Coord      dnd_x, dnd_y;
@@ -106,6 +109,7 @@ static void             _pager_cb_obj_moveresize(void 
*data, Evas *e 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_inst_cb_menu_virtual_desktop_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_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);
@@ -876,6 +880,7 @@ _button_cb_mouse_down(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_UNU
    E_Menu *m;
    E_Menu_Item *mi;
    int cx, cy;
+   Pager_Desk *pd;
 
    inst = data;
    ev = event_info;
@@ -889,13 +894,28 @@ _button_cb_mouse_down(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_UNU
    e_menu_item_callback_set(mi, _pager_inst_cb_menu_configure, NULL);
 
    m = e_gadcon_client_util_menu_items_append(inst->gcc, m, 0);
+
+   mi = e_menu_item_new_relative(m, NULL);
+   e_menu_item_separator_set(mi, 1);
+
    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_menu_item_label_set(mi, _("All desktop 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);
      }
+   if (e_configure_registry_exists("internal/desk"))
+     {
+        pd = _pager_desk_at_coord(inst->pager, ev->canvas.x, ev->canvas.y);
+        inst->pager->menu.zone_num = inst->pager->zone->num;
+        inst->pager->menu.desk_x = pd->desk->x;
+        inst->pager->menu.desk_y = pd->desk->y;
+        mi = e_menu_item_new_relative(m, NULL);
+        e_menu_item_label_set(mi, _("This desktop name and wallpaper 
settings"));
+        e_util_menu_item_theme_icon_set(mi, "preferences-desktop");
+        e_menu_item_callback_set(mi, 
_pager_inst_cb_menu_virtual_desktop_dialog, inst);
+     }
 
    e_gadcon_canvas_zone_geometry_get(inst->gcc->gadcon, &cx, &cy,
                                      NULL, NULL);
@@ -931,6 +951,17 @@ _pager_inst_cb_menu_virtual_desktops_dialog(void *data 
EINA_UNUSED, E_Menu *m EI
    e_configure_registry_call("screen/virtual_desktops", NULL, NULL);
 }
 
+static void
+_pager_inst_cb_menu_virtual_desktop_dialog(void *data, E_Menu *m EINA_UNUSED, 
E_Menu_Item *mi EINA_UNUSED)
+{
+   Instance *inst = data;
+   char buf[256];
+
+   snprintf(buf, sizeof(buf), "%i %i %i", inst->pager->menu.zone_num,
+            inst->pager->menu.desk_x, inst->pager->menu.desk_y);
+   e_configure_registry_call("internal/desk", NULL, buf);
+}
+
 static void
 _pager_instance_drop_zone_recalc(Instance *inst)
 {

-- 


Reply via email to