Modified Patch from hannes Janetzek (jeffdame1h) for fixing pager popup always having

same size as shelf & problem of having 2 pagers in one zone.


SVN revision: 33139
This commit is contained in:
Christopher Michael 2007-12-14 22:30:44 +00:00
parent 73fe916ef6
commit 9cf5076159
3 changed files with 335 additions and 262 deletions

View File

@ -16,6 +16,7 @@ struct _E_Config_Dialog_Data
int show_popup_urgent;
int popup_urgent_stick;
double popup_urgent_speed;
int popup_pager_height;
int drag_resist;
unsigned int btn_drag;
unsigned int btn_noplace;
@ -85,6 +86,7 @@ _fill_data(Config_Item *ci, E_Config_Dialog_Data *cfdata)
cfdata->show_popup_urgent = pager_config->popup_urgent;
cfdata->popup_urgent_stick = pager_config->popup_urgent_stick;
cfdata->popup_urgent_speed = pager_config->popup_urgent_speed;
cfdata->popup_pager_height = pager_config->popup_pager_height;
cfdata->drag_resist = pager_config->drag_resist;
cfdata->btn_drag = pager_config->btn_drag;
cfdata->btn_noplace = pager_config->btn_noplace;
@ -169,6 +171,10 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data
of = e_widget_framelist_add(evas, _("Pager Popup Settings"), 0);
ob = e_widget_check_add(evas, _("Show Popup on desktop change"), &(cfdata->show_popup));
e_widget_framelist_object_append(of, ob);
ob = e_widget_label_add(evas, _("Popup Pager Height"));
e_widget_framelist_object_append(of, ob);
ob = e_widget_slider_add(evas, 1, 0, _("%.0f px"), 20.0, 200.0, 0.1, 0, NULL, &(cfdata->popup_pager_height), 200);
e_widget_framelist_object_append(of, ob);
ob = e_widget_label_add(evas, _("Popup Speed"));
e_widget_framelist_object_append(of, ob);
ob = e_widget_slider_add(evas, 1, 0, _("%1.1f seconds"), 0.1, 10.0, 0.1, 0, &(cfdata->popup_speed), NULL, 200);
@ -202,6 +208,7 @@ _advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
pager_config->popup_urgent = cfdata->show_popup_urgent;
pager_config->popup_urgent_stick = cfdata->popup_urgent_stick;
pager_config->popup_urgent_speed = cfdata->popup_urgent_speed;
pager_config->popup_pager_height = cfdata->popup_pager_height;
pager_config->drag_resist = cfdata->drag_resist;
pager_config->btn_drag = cfdata->btn_drag;
pager_config->btn_noplace = cfdata->btn_noplace;

View File

@ -1,11 +1,10 @@
/*
* vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
*/
#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);
@ -23,15 +22,9 @@ static const E_Gadcon_Client_Class _gadcon_class =
},
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;
@ -53,7 +46,6 @@ struct _Pager
E_Zone *zone;
int xnum, ynum;
Evas_List *desks;
Pager_Popup *popup;
unsigned char dragging : 1;
unsigned char just_dragged : 1;
Evas_Coord dnd_x, dnd_y;
@ -69,6 +61,7 @@ struct _Pager_Desk
Evas_Object *o_layout;
int xpos, ypos;
int current : 1;
int urgent;
struct {
Pager *from_pager;
unsigned char in_pager : 1;
@ -101,7 +94,7 @@ struct _Pager_Win
struct _Pager_Popup
{
E_Popup *popup;
Pager *pager, *src_pager;
Pager *pager;
Evas_Object *o_bg;
Ecore_Timer *timer;
unsigned char urgent : 1;
@ -164,10 +157,13 @@ 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_Border *border);
static Pager_Win *_pager_desk_window_find(Pager_Desk *pd, E_Border *border);
static Pager_Popup *_pager_popup_new(Pager *p, int urgent);
static Pager_Popup *_pager_popup_new(E_Zone *zone, int urgent);
static void _pager_popup_free(Pager_Popup *pp);
static Pager_Popup *_pager_popup_find(E_Zone *zone);
static E_Config_Dialog *_pager_config_dialog(E_Container *con, const char *params);
static E_Config_DD *conf_edd = NULL;
static Evas_List *pager_popups = NULL;
Config *pager_config = NULL;
@ -258,11 +254,6 @@ _gc_id_new(void)
return _gadcon_class.name;
}
/**/
/***************************************************************************/
/***************************************************************************/
/**/
static Pager *
_pager_new(Evas *evas, E_Zone *zone)
{
@ -312,7 +303,7 @@ _pager_fill(Pager *p)
static void
_pager_empty(Pager *p)
{
if (p->popup) _pager_popup_free(p->popup);
// if (p->popup) _pager_popup_free(p->popup);
while (p->desks)
{
@ -335,6 +326,8 @@ _pager_desk_new(Pager *p, E_Desk *desk, int xpos, int ypos)
pd->xpos = xpos;
pd->ypos = ypos;
pd->urgent = 0;
pd->desk = desk;
e_object_ref(E_OBJECT(desk));
pd->pager = p;
@ -454,7 +447,7 @@ _pager_desk_switch(Pager_Desk *pd1, Pager_Desk *pd2)
Pager_Win *pw;
Evas_List *l;
if (!pd1 || !pd2 || !pd1->desk || !pd2->desk) return;
if ((!pd1) || (!pd2) || (!pd1->desk) || (!pd2->desk)) return;
if (pd1 == pd2) return;
desk1 = pd1->desk;
@ -533,7 +526,6 @@ _pager_desk_switch(Pager_Desk *pd1, Pager_Desk *pd2)
}
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))
{
@ -656,44 +648,46 @@ _pager_desk_window_find(Pager_Desk *pd, E_Border *border)
}
static Pager_Popup *
_pager_popup_new(Pager *p, int urgent)
_pager_popup_new(E_Zone *zone, int urgent)
{
Pager_Popup *pp;
Evas_Coord w, h;
int x, y, height, width;
E_Desk *desk;
pp = E_NEW(Pager_Popup, 1);
if (!pp) return NULL;
/* Show popup */
pp->popup = e_popup_new(p->zone, 0, 0, 1, 1);
pp->popup = e_popup_new(zone, 0, 0, 1, 1);
if (!pp->popup)
{
free(pp);
return NULL;
}
e_popup_layer_set(pp->popup, 999);
pp->src_pager = p;
e_popup_layer_set(pp->popup, 255);
p->popup = pp;
pp->pager = _pager_new(pp->popup->evas, zone);
evas_object_geometry_get(p->o_table, NULL, NULL, &w, &h);
pp->pager = _pager_new(pp->popup->evas, p->zone);
pp->pager->inst = p->inst;
pp->pager->is_popup = 1;
e_zone_desk_count_get(zone, &x, &y);
height = pager_config->popup_pager_height * y;
width = ((zone->w * x)/(zone->h * y)) * height;
evas_object_move(pp->pager->o_table, 0, 0);
evas_object_resize(pp->pager->o_table, w, h);
evas_object_resize(pp->pager->o_table, width, height);
pp->o_bg = edje_object_add(pp->popup->evas);
e_theme_edje_object_set(pp->o_bg,
"base/theme/modules/pager",
"e/widgets/pager/popup");
desk = e_desk_current_get(p->zone);
desk = e_desk_current_get(zone);
if (desk)
edje_object_part_text_set(pp->o_bg, "text", desk->name);
evas_object_show(pp->o_bg);
edje_extern_object_min_size_set(pp->pager->o_table, w, h);
edje_extern_object_min_size_set(pp->pager->o_table, width, height);
edje_object_part_swallow(pp->o_bg, "pager", pp->pager->o_table);
edje_object_size_min_calc(pp->o_bg, &w, &h);
@ -701,8 +695,8 @@ _pager_popup_new(Pager *p, int urgent)
evas_object_resize(pp->o_bg, w, h);
e_popup_edje_bg_object_set(pp->popup, pp->o_bg);
//e_popup_ignore_events_set(pp->popup, 1);
e_popup_move_resize(pp->popup, ((p->zone->w - w) / 2),
((p->zone->h - h) / 2), w, h);
e_popup_move_resize(pp->popup, ((zone->w - w) / 2),
((zone->h - h) / 2), w, h);
e_bindings_mouse_grab(E_BINDING_CONTEXT_POPUP, pp->popup->evas_win);
e_bindings_wheel_grab(E_BINDING_CONTEXT_POPUP, pp->popup->evas_win);
e_popup_show(pp->popup);
@ -720,22 +714,39 @@ _pager_popup_new(Pager *p, int urgent)
}
pp->urgent = urgent;
pager_popups = evas_list_append(pager_popups, pp);
return pp;
}
static void
_pager_popup_free(Pager_Popup *pp)
{
pp->src_pager->popup = NULL;
if (pp->timer) ecore_timer_del(pp->timer);
evas_object_del(pp->o_bg);
_pager_free(pp->pager);
e_bindings_mouse_ungrab(E_BINDING_CONTEXT_POPUP, pp->popup->evas_win);
e_bindings_wheel_ungrab(E_BINDING_CONTEXT_POPUP, pp->popup->evas_win);
e_object_del(E_OBJECT(pp->popup));
pager_popups = evas_list_remove(pager_popups, pp);
free(pp);
}
static Pager_Popup *
_pager_popup_find(E_Zone *zone)
{
Pager_Popup *pp;
Evas_List *l;
for(l = pager_popups; l; l = l->next)
{
pp = l->data;
pp->pager->zone == zone;
return pp;
}
return NULL;
}
static void
_pager_cb_obj_moveresize(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
@ -804,6 +815,16 @@ _pager_inst_cb_menu_configure(void *data, E_Menu *m, E_Menu_Item *mi)
_config_pager_module(NULL);
}
static E_Config_Dialog *
_pager_config_dialog(E_Container *con, const char *params)
{
if (!pager_config) return;
if (pager_config->config_dialog) return;
/* 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, E_Menu *m, E_Menu_Item *mi)
{
@ -1300,14 +1321,24 @@ _pager_cb_event_border_urgent_change(void *data, int type, void *event)
{
E_Event_Border_Urgent_Change *ev;
Evas_List *l, *l2;
Pager_Popup *pp;
E_Zone *zone;
int urgent;
int urgent_cnt = 0;
ev = event;
zone = ev->border->zone;
urgent = ev->border->client.icccm.urgent;
/* this didnt handle the case when two windows became urgent at
the same time */
for (l = pager_config->instances; l; l = l->next)
{
Instance *inst;
inst = l->data;
if (inst->pager->zone != ev->border->zone) continue;
if (inst->pager->zone != zone) continue;
for (l2 = inst->pager->desks; l2; l2 = l2->next)
{
Pager_Desk *pd;
@ -1317,35 +1348,67 @@ _pager_cb_event_border_urgent_change(void *data, int type, void *event)
pw = _pager_desk_window_find(pd, ev->border);
if (pw)
{
if (ev->border->client.icccm.urgent)
if (urgent)
{
if (!(ev->border->iconic))
edje_object_signal_emit(pd->o_desk,
"e,state,urgent", "e");
edje_object_signal_emit(pw->o_window,
"e,state,urgent", "e");
if (pager_config->popup_urgent &&
!inst->pager->popup)
{
_pager_popup_new(inst->pager, 1);
}
}
else
{
/* FIXME this seems to be wrong - why set the
desk to not urgent when iconic, while
another window on that desk could still be urgent? */
if (!(ev->border->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");
}
}
}
}
if (inst->pager->popup &&
inst->pager->popup->urgent)
if (pager_config->popup_urgent)
{
_pager_popup_free(inst->pager->popup);
pp = _pager_popup_find(zone);
if ((!pp) && (urgent))
_pager_popup_new(zone, 1);
else if (pp)
{
for (l = pp->pager->desks; l; l = l->next)
{
Pager_Desk *pd;
Pager_Win *pw;
pd = l->data;
pw = _pager_desk_window_find(pd, ev->border);
if (!pw) continue;
if (urgent)
{
edje_object_signal_emit(pd->o_desk,
"e,state,urgent", "e");
edje_object_signal_emit(pw->o_window,
"e,state,urgent", "e");
pd->urgent++;
}
else
{
pd->urgent--;
if (!(pd->urgent))
edje_object_signal_emit(pd->o_desk,
"e,state,not_urgent", "e");
edje_object_signal_emit(pw->o_window,
"e,state,not_urgent", "e");
}
urgent_cnt += pd->urgent;
}
if (urgent_cnt == 0) _pager_popup_free(pp);
}
}
@ -1455,10 +1518,11 @@ static int
_pager_cb_event_zone_desk_count_set(void *data, int type, void *event)
{
Evas_List *l;
Instance *inst;
for (l = pager_config->instances; l; l = l->next)
{
Instance *inst;
inst = l->data;
_pager_empty(inst->pager);
_pager_fill(inst->pager);
@ -1472,29 +1536,34 @@ _pager_cb_event_desk_show(void *data, int type, void *event)
{
E_Event_Desk_Show *ev;
Evas_List *l;
Pager_Desk *pd;
Pager_Popup *pp;
ev = event;
for (l = pager_config->instances; l; l = l->next)
{
Instance *inst;
Pager_Desk *pd;
inst = l->data;
if (inst->pager->zone != ev->desk->zone) continue;
pd = _pager_desk_find(inst->pager, ev->desk);
if (pd)
{
_pager_desk_select(pd);
if (pd->pager->popup) _pager_popup_free(pd->pager->popup);
if (pd) _pager_desk_select(pd);
}
if (pager_config->popup)
{
Pager_Popup *pp;
if (!(pp = _pager_popup_find(ev->desk->zone)))
_pager_popup_new(ev->desk->zone, 0);
else
{
pd = _pager_desk_find(pp->pager, ev->desk);
if (pd) _pager_desk_select(pd);
ecore_timer_del(pp->timer);
pp->timer = ecore_timer_add(pager_config->popup_speed,
_pager_popup_cb_timeout, pp);
}
}
pp = _pager_popup_new(pd->pager, 0);
}
}
}
return 1;
}
@ -1629,6 +1698,15 @@ _pager_window_cb_mouse_move(void *data, Evas *e, Evas_Object *obj, void *event_i
{
Evas_Event_Mouse_Move *ev;
Pager_Win *pw;
E_Drag *drag;
Evas_Object *o, *oo;
Evas_Coord x, y, w, h;
const char *file = NULL, *part = NULL;
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;
ev = event_info;
pw = data;
@ -1638,9 +1716,6 @@ _pager_window_cb_mouse_move(void *data, Evas *e, Evas_Object *obj, void *event_i
/* prevent drag for a few pixels */
if (pw->drag.start)
{
Evas_Coord dx, dy;
unsigned int resist = 0;
dx = pw->drag.x - ev->cur.output.x;
dy = pw->drag.y - ev->cur.output.y;
if (pw->desk && pw->desk->pager && pw->desk->pager->inst)
@ -1655,9 +1730,6 @@ _pager_window_cb_mouse_move(void *data, Evas *e, Evas_Object *obj, void *event_i
/* dragging this win around inside the pager */
if (pw->drag.in_pager)
{
Evas_Coord mx, my, vx, vy;
Pager_Desk *pd;
/* m for mouse */
mx = ev->cur.canvas.x;
my = ev->cur.canvas.y;
@ -1677,12 +1749,6 @@ _pager_window_cb_mouse_move(void *data, Evas *e, Evas_Object *obj, void *event_i
}
else
{
E_Drag *drag;
Evas_Object *o, *oo;
Evas_Coord x, y, w, h;
const char *file = NULL, *part = NULL;
const char *drag_types[] = { "enlightenment/pager_win", "enlightenment/border" };
evas_object_geometry_get(pw->o_window, &x, &y, &w, &h);
evas_object_hide(pw->o_window);
@ -1729,6 +1795,10 @@ static void
_pager_window_cb_drag_finished(E_Drag *drag, int dropped)
{
Pager_Win *pw;
E_Container *cont;
E_Zone *zone;
E_Desk *desk;
int x, y, dx, dy;
pw = drag->data;
if (!pw) return;
@ -1736,11 +1806,6 @@ _pager_window_cb_drag_finished(E_Drag *drag, int dropped)
if (!dropped)
{
/* wasn't dropped (on pager). move it to position of mouse on screen */
int x, y, dx, dy;
E_Container *cont;
E_Zone *zone;
E_Desk *desk;
cont = e_container_current_get(e_manager_current_get());
zone = e_zone_current_get(cont);
desk = e_desk_current_get(zone);
@ -1873,6 +1938,8 @@ _pager_inst_cb_drop(void *data, const char *type, void *event_info)
Pager_Win *pw = NULL;
Evas_Coord xx, yy;
int x, y;
Evas_Coord wx, wy, wx2, wy2;
Evas_Coord nx, ny;
ev = event_info;
inst = data;
@ -1894,8 +1961,6 @@ _pager_inst_cb_drop(void *data, const char *type, void *event_info)
}
else if (!strcmp(type, "enlightenment/border"))
{
Evas_Coord wx, wy, wx2, wy2;
bd = ev->data;
e_layout_coord_virtual_to_canvas(pd->o_layout, bd->x, bd->y, &wx, &wy);
e_layout_coord_virtual_to_canvas(pd->o_layout, bd->x + bd->w, bd->y + bd->h, &wx2, &wy2);
@ -1913,8 +1978,6 @@ _pager_inst_cb_drop(void *data, const char *type, void *event_info)
if (bd)
{
Evas_Coord nx, ny;
if (bd->iconic) e_border_uniconify(bd);
e_border_desk_set(bd, pd->desk);
if ((!pw) || ((pw) && (!pw->drag.no_place)))
@ -1946,14 +2009,13 @@ _pager_desk_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_inf
{
Evas_Event_Mouse_Down *ev;
Pager_Desk *pd;
Evas_Coord ox, oy;
ev = event_info;
pd = data;
if (!pd) return;
if (ev->button == pager_config->btn_desk)
{
Evas_Coord ox, oy;
evas_object_geometry_get(pd->o_desk, &ox, &oy, NULL, NULL);
pd->drag.start = 1;
pd->drag.in_pager = 1;
@ -1978,13 +2040,13 @@ _pager_desk_cb_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info)
if (!pd) return;
p = pd->pager;
if ( p->is_popup &&
/* if ( p->is_popup &&
(pd->desk == e_desk_current_get(pd->pager->zone)) )
{
if (p->inst->pager->popup)
_pager_popup_free(p->inst->pager->popup);
}
*/
/* 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))
@ -2001,6 +2063,14 @@ _pager_desk_cb_mouse_move(void *data, Evas *e, Evas_Object *obj, void *event_inf
{
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;
Evas_List *l;
ev = event_info;
pd = data;
@ -2008,9 +2078,6 @@ _pager_desk_cb_mouse_move(void *data, Evas *e, Evas_Object *obj, void *event_inf
/* prevent drag for a few pixels */
if (pd->drag.start)
{
Evas_Coord dx, dy;
unsigned int resist = 0;
dx = pd->drag.x - ev->cur.output.x;
dy = pd->drag.y - ev->cur.output.y;
if (pd->pager && pd->pager->inst)
@ -2024,13 +2091,6 @@ _pager_desk_cb_mouse_move(void *data, Evas *e, Evas_Object *obj, void *event_inf
if (pd->drag.in_pager)
{
E_Drag *drag;
Evas_Object *o, *oo, *o_icon;
Evas_Coord x, y, w, h;
const char *drag_types[] = { "enlightenment/vdesktop" };
Pager_Win *pw;
Evas_List *l;
evas_object_geometry_get(pd->o_desk, &x, &y, &w, &h);
drag = e_drag_new(pd->pager->inst->gcc->gadcon->zone->container,
x, y, drag_types, 1, pd, -1,
@ -2094,21 +2154,19 @@ static void
_pager_desk_cb_drag_finished(E_Drag *drag, int dropped)
{
Pager_Desk *pd;
Pager_Desk *pd2 = NULL;
Evas_List *l;
E_Desk *desk;
E_Zone *zone;
pd = drag->data;
if (!pd) return;
if (!dropped)
{
/* wasn't dropped on pager, switch with current desktop */
Pager_Desk *pd2 = NULL;
Evas_List *l;
E_Desk *desk;
if (!pd->desk) return;
desk = e_desk_current_get(
e_zone_current_get(
e_container_current_get(
e_manager_current_get())));
zone = e_util_zone_current_get(e_manager_current_get());
desk = e_desk_current_get(zone);
for (l = pager_config->instances; l && !pd2; l = l->next)
{
Instance *inst;
@ -2175,6 +2233,7 @@ e_modapi_init(E_Module *m)
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, popup_pager_height, INT);
E_CONFIG_VAL(D, T, drag_resist, UINT);
E_CONFIG_VAL(D, T, scale, UCHAR);
E_CONFIG_VAL(D, T, resize, UCHAR);
@ -2193,6 +2252,7 @@ e_modapi_init(E_Module *m)
pager_config->popup_urgent = 0;
pager_config->popup_urgent_stick = 0;
pager_config->popup_urgent_speed = 1.5;
pager_config->popup_pager_height = 60;
pager_config->drag_resist = 3;
pager_config->scale = 1;
pager_config->resize = PAGER_RESIZE_BOTH;
@ -2206,6 +2266,7 @@ e_modapi_init(E_Module *m)
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->popup_pager_height, 20, 200);
E_CONFIG_LIMIT(pager_config->drag_resist, 0, 50);
E_CONFIG_LIMIT(pager_config->resize, PAGER_RESIZE_HORZ, PAGER_RESIZE_BOTH);
E_CONFIG_LIMIT(pager_config->flip_desk, 0, 1);
@ -2270,6 +2331,10 @@ e_modapi_init(E_Module *m)
pager_config->module = m;
e_gadcon_provider_register(&_gadcon_class);
e_configure_registry_item_add("extensions/pager", 40, N_("Pager"), NULL,
"enlightenment/pager", _pager_config_dialog);
return m;
}
@ -2292,6 +2357,9 @@ e_modapi_shutdown(E_Module *m)
e_object_del(E_OBJECT(pager_config->menu));
pager_config->menu = NULL;
}
e_configure_registry_item_del("extensions/pager");
E_FREE(pager_config);
E_CONFIG_DD_FREE(conf_edd);
return 1;
@ -2303,6 +2371,3 @@ e_modapi_save(E_Module *m)
e_config_domain_save("module.pager", conf_edd, pager_config);
return 1;
}
/**/
/***************************************************************************/

View File

@ -26,6 +26,7 @@ struct _Config
unsigned int popup_urgent;
unsigned int popup_urgent_stick;
double popup_urgent_speed;
int popup_pager_height;
unsigned int drag_resist;
unsigned int scale;
unsigned char resize;